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

Reply via email to