Hi, On Sun, Dec 26, 2010 at 10:27:30AM +0100, Richard Braun wrote:
> >From what I understand of the Hurd history, GNU Mach is based on Mach 4. > I read that this version was intended to include the result of research > work made at the university of Utah, the most important being thread > migration (for those not familiar with the concept, it means that > threads running in client tasks "migrate" into server tasks when > performing sync RPC). There is actually code about that in GNU Mach, > but I'm wondering if it's actually used in the Hurd. I couldn't find > anything related to this in the userspace servers, but the interface > change could be light, and I might have missed them. Does anyone know if > the Hurd servers actually use thread migration ? While I don't *know*, I have looked at most of the client- and server-side marshalling, multiplexing, and thread management code; and I'm pretty confident there is nothing about thread migration there... But then, I haven't really checked how thread migration works exactly -- so I might be missing something :-) Some of the RPC management code in Hurd is pretty complex. (Evidently the Hurd's use of Mach IPC is different from what the Mach inventors envisioned -- which is part of the reason why I believe that to get forward, we have to abandon Mach compatibility.) Corner cases like RPC cancellation, server death etc. will need some serious consideration I guess. Fredrik looked into the RPC cancellation and related stuff quite a bit recently, so I guess he might have a better idea about this... -antrik-
