[OpenAFS-devel] What makes volserver special?

Adam Thornton adam@fsf.net
Fri, 2 Feb 2001 10:29:57 -0600


On the S/390 port, installing the server works fine right up until I
start the volserver as part of fs; then it aborts with "PRE_Block not
1".  If I turn on debugging it seems as if there's a process waiting to
dispatch that never gets scheduled. 

I notice in the ARLA code there is no way to get lwp to work without a
process.S implementing savecontext and returnto.  We have the process.c
code in OpenAFS, which should skirt the issue, but it's not clear that
it works right on S/390 Linux.  I've already changed the stack pointer
register to the correct offset in the setjmp buffer; I see that 1.0.2
adds a frame pointer under Sparc Linux.  Am I likely to need that too?
Or am I just better off implementing savecontext and returnto in
assembly code?

The client is failing in interesting ways and generating oopses when the
(nonfunctional) afsd processes are killed.  I'm betting all of this is
due to incorrect LWP management somehow.

However, I would like to know what is special about the volserver
process, as opposed to the other server processes, such that they start
(and at least the kaserver works well enough that I can create an admin
entry), but it doesn't.  If the answer is something about how it uses
child processes or threads, well, that's valuable to know.

Adam