|
From: Jeremy F. <je...@go...> - 2005-02-24 17:33:56
|
Julian Seward wrote:
>Yes, that's the kludge we have at present. It's almost plausible, but
>I have been unable to figure out the boundary conditions that have to
>be observed to *guarantee* there will never be an infinite recursion.
>I don't much like the idea of a fixed-sized table either, but I have
>yet to be convinced the "early enough" scheme can be made reliable.
>
>
Well, the current code waits until the existing superblock has no space
at all for the new allocation, and then it allocates a new superblock.
If each superblock had some reserved space, enough to describe its
successor, there wouldn't be a problem.
>> What problems are there, and how are they avoided by this scheme?
>>
>>
>
>* big-bang shadow allocation causes problems on kernels that don't
> do overcommitment
>
>* a fixed partitioning scheme is less appropriate if we move towards
> compressed representations of shadow memory, since that compression
> ratio could be variable
>
>
OK.
>I think what bothers me is -- on a 64-bit platform we will have to
>generate two temporary mappings that together cover almost all
>of the 2^64 bytes of address space. So are we assured that the kernel
>will not barf at this point? Particularly given that on RH8 we had
>kernels barfing on allocating a 1.5GB shadow area all in one go.
>
>
Fortunately, the 64-bit PC world is pretty new, and people are using
recent kernels and are more likely to upgrade (because the existing
kernels are relatively buggy). I've been talking to the kernel people
to make sure we can get the kind of functionality we need, like being
able to create terabyte mappings if we promise not to touch them. (Oh,
and its *only* 2^48ish bytes.)
>IOW - padding is fine if it's reliable and portable(ish). So, exactly
>how reliable and portable is it? On non-Linux kernels?
>That I don't know.
>
Yep, it's a concern. We might need to do things like construct the
padding incrementally to sneak under the kernel's radar. If the kernel
has an absolute prohibition on overcommit, we pretty screwed.
J
|