Re: [RFC][v8][PATCH 0/10] Implement clone3() system call
flat view
From: H. Peter Anvin <hidden>
Date: 2009-10-14 01:24:45
Also in:
lkml
On 10/13/2009 04:53 PM, Roland McGrath wrote:
quoted
My only concern is the support of 64-bit clone flags on 32-bit architectures.Oy. I didn't realize there was serious consideration of having more than 32 flags. IMHO it would be a bad choice, since they could only be used via clone3. Having high-bit flags work in clone on 64-bit machines but not on 32-bit machines just seems like a wrongly confusing way for things to be. If any high-bits flags are constrained even on 64-bit machines to uses in clone3 calls for sanity purposes, then it seems questionable IMHO to have them be more flags in the same u64 at all. Since all new features will be via this struct, various new kinds of things could potentially be done by other new struct fields independent of flags. But that would of course require putting enough reserved fields in now and requiring that they be zero-filled now in anticipation of such future uses, which is not very pleasant either. In short, I guess I really am saying that "clone_flags_high" (or "more_flags" or something) does seem better to me than any of the possibilities for having more than 32 CLONE_* in the current flags word.
Overall it seems sane to: a) make it an actual 3-argument call; b) make the existing flags a u32 forever, and make it a separate argument; c) any new expansion can be via the struct, which may want to have an "c3_flags" field first in the structure. -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf.