[lkml]   [2000]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Q: sock output serialization


>>>>> "kuznet" == kuznet <> writes:

>> Anyway, it seems that I can already make use the lock_sock()
>> infrastructure for fixing the output serialization, even
>> without making the whole protocol stack SMP-aware at once.

kuznet> Actually, the last task is not a rocket science as well.

Yes. It seems the most critical part is changing timer events
to honor sk->lock.users and doing sock_hold/put(). There might be
timer events where the protocol specs require immediate reaction and
which need to change socket state. For such events, it might not
be obvious how to defer them when sk->lock.users != 0.

While deferring socket input is explictly supported (by processing
the sk->backlog queue in release_sock()), there is no special support for
deferring non-input events. Maybe in addition to processing the sk->backlog
queue, release_sock could also run a backlog task_queue? Such
task_queue could be used by other events to defer actions
when sk->lock.users!=0. Is there a particular reason why such task queue
does not exist?


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:38    [W:0.067 / U:1.880 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site