tech-kern archive

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

Re: nfs server lockup (again)

I think the sodopendfree() call in sodisconnect() can be either
a) removed, or
b) moved to the very end of soclose() (after sounlock())

uipc_socket.c Rev. 1.63 introduced the loaning code & thorpej@
sprinkled sodopendfree().  I see no strong reason why sodopendfree()
has to be called from sodisconnect().

Anyway, thanks for this, I really enjoyed reading your analysis. :)

On Thu, Jun 23, 2011 at 11:23 PM, Manuel Bouyer 
<> wrote:
> On Thu, Jun 23, 2011 at 09:26:36AM +0200, Adam Hamsik wrote:
>> [...]
>> Wouldn't be workqueue be better solution ? No need to setup anything
>> just create wq and use it where is it needed.
> I'm not familiar enough with workqueues. How well does it deal with
> frequent calls (under heavy network load I guess this can be called
> very often). What happens when the thread blocks, does this defer other,
> unrelated workqueues ?
> Also there is (from worqueue_enqueue(9)):
> "The enqueued work will be processed in a thread context.  A work must not
>  be enqueued again until the callback is called by the workqueue(9) frame-
>  work."
> so it's not as easy as a persistent thread and cv_broadcast() ...
> --
> Manuel Bouyer <>
>     NetBSD: 26 ans d'experience feront toujours la difference
> --

Home | Main Index | Thread Index | Old Index