Richard Braun, le Mon 02 Apr 2012 14:12:27 +0200, a écrit : > On Mon, Apr 02, 2012 at 01:57:31PM +0200, Samuel Thibault wrote: > > Richard Braun, le Mon 02 Apr 2012 13:46:08 +0200, a écrit : > > > How do they convert names from/to pointers ? Regular IPC space lookups ? > > > > Well, yes, just like GNU Mach does, in ipc_kmsg_copyin_header etc. > > So we'd loose the optimization, which doesn't seem to be a problem > considering it doesn't concern our main performance issues, and we'd > gain a cleaner interface between ports and names. From what I've seen, > the Hurd doesn't rely on the size of port names either, as it always > uses some lookup mechanism (actually ihash only if I'm right). Now, is > there a point having two types for kernel/user port names, or can't we > just stick to mach_port_t having the right size (the one which matters > for user tasks) ?
But then it needs some trick to convert to pointer everywhere needed. Trying to manage low-4GiB allocation to avoid the trick would make things nasty: remember that x86_64 does not have segmentation any more, only flat addressing space, so we'd still need a 4GiB User/Kernel separation, which was precisely what I wanted to avoid. Samuel