Hi :) This is a patch series taking advantage of the proposed MIG change to inline the x_server_routine functions into the demuxer functions. It actually seems to improve our performance :)
The time needed to compile half (I don't build the udeb variant) a Hurd package using fakeroot-tcp on my main Hurd vm dropped from a little over 80 minutes (somewhat stable) to 79 minutes with the x_server_routine patch series (I've never seen a build this fast up to this point) to 75 minutes with this patch series. On my real-hw box I run this little benchmark. It involves untarring gnumach-1.4 to a tmpfs and compiling it w/o any device drivers. I've been running this benchmark for some time now, always on a freshly booted system. The results are quite stable. Untarring went from 6.48s to 6.29s, compiling from 418.00s to 415.89s. As always, ymmv, but I tend to be carefully optimistic that there is some room for improvement in our rpc path. Samuel, with respect to your comment about recompiling code if the definition of the protocol changes, I believe that this series actually addresses this nicely by explicitly #including e. g. "../libports/notify_S.h". Our build system should handle this just fine. Justus