tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: how can the nfs timer work?



On Thu, Dec 11, 2008 at 01:55:33AM +0200, Antti Kantee wrote:

> I've been trying to figure out why the nfs timer (nfs_timer() in
> nfs_socket.c) works.
> 
> 1) I don't really see what good splsoftnet does, as the queue is
>    never messed with in network interrupt context AFAICT.  Even if
>    this holds for the queue, there is nothing protecting the actual
>    requests apart from biglock.

That is a problem. There is work on a branch to make the nfs client MPSAFE.

> 2) It does a call to solock(), which pretty clearly can block and
>    therefore the request currently being processed can be invalidated
>    and freed during the call to solock().  (are callouts even allowed
>    to block??)

Callouts can block, yup.
 
> But I'm really curious why this doesn't trigger in the kernel pretty much
> instantly.

Luck?

Andrew


Home | Main Index | Thread Index | Old Index