Re: race condition?
tab-mTI/[email protected] (Vincent Hanquez)
| Newsgroups | gmane.linux.cluster.openmosix.devel |
|---|---|
| Message-ID | <[email protected]> |
On Mon, May 22, 2006 at 06:34:29PM -0600, Matt Dew wrote: > This makes sense. > Plus if it were ever desired, adding things to a central place would be > easier.. Things like: > 1) encrypting the traffic between nodes. yes, and authentification as well. > 2) d-bus messages on migration events I'm not sure what d-bus is useful for here ? care to elaborate ? > Does having kcomd help in the smp case? At the moment, having only one kcomd would help the smp case indeed. And at a later time kcomd can be threaded to scale the smp case correctly. > Does the preempt case matter? om is ran on servers where preempty is > usually disabled. Probably a good idea to make it work anyway. ?? Altough I don't care about preempt, om could be made preemptable. since network and preempt doesn't mix really well, kcomd would help. altough the solution is probably to call preempt_disable, preempt_enable before doing anything useful in kcomd ;) > I'm quite happy to go the kcomd way. It makes sense. I'm just trying to > play devil's advocate, (poorly :)). no problem. that's better to discuss stuff ! > I need some help on kernel internals. Specifically, what's the best way > for send_with_*() to interact with kcomd? Do we set up a queue/list and > have send_with_ack()/reply() add to that queue and then kcomd processes > the queue? Signals? (are there signals from kernelthread to > kernelthread?) Other? I'm not yet sure on the best way to interact with kcomd .. altough kcomd will have a queue of messages to send tagged with the mode of sending (do we put the process for sleeping waiting for ACK, ...), and the pid of the sender. For receving, there's 2 differents things: - expected replies - unexpected replies. In the former case, the process has been put to sleep, since it has used send_with_ack()/reply(). kcomd will just put the process in the running list. the process will wake up with new data or a ack/nack. In the later case, the process poll is there's message pending for itself and do something with packet if there is any. (this is actually done in remote_pre_usermode, but currently check for data in socket instead of the new way). -- Vincent Hanquez ------------------------------------------------------- All the advantages of Linux Managed Hosting--Without the Cost and Risk! Fully trained technicians. The highest number of Red Hat certifications in the hosting industry. Fanatical Support. Click to learn more http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642