On Thu, Jul 16, 2009 at 07:05:46PM +1000, Bojan Smojver wrote: > On Thu, 2009-07-16 at 09:27 +0100, Joe Orton wrote: > > In the past I have argued we should never do runtime platform feature > > detection, i.e., if accept4() works at build-time, we can presume it > > works at run-time. I think I need to soften that position now; use of > > a modern userspace on an older kernel seems to be very widespread in > > Xen hosting sites. I shipped socket(,SOCK_CLOEXEC) support in neon > > and got lots of complaints, from users across the spectrum of > > distributions. > > Shouldn't these people build their runtime using the older kernel then?
The problem is that these Xen hosting sites use a specific guest kernel which they have tuned/customised/whatever. Then they let people run an otherwise vanilla Linux distribution on top of that. > It is bad enough that we need to do "will it really work" gymnastics at > build time. If we go down the road of runtime checks, we'll soon be > testing for all kinds of stuff, wasting lots of CPU cycles. I know, I totally agree. The only mitigation is that those who waste CPU cycles are those who run with mismatched kernel/userspace. It's the added complexity which scares me the most. Maybe let's just do a release with this code as-is, and see how many people complain, and then revisit the decision if necessary. > PS. This is obviously some kind of Xen bug (i.e. inability to run the > latest kernel). Shouldn't they be fixing it? I think this situation arose because of the historical lack of a stable hypervisor/guest interface for running paravirt. guests, which did get fixed more recently ("VMI"?), but, I'm not really an expert here, to say the least. Regards, Joe