[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 03/22] x86/xstate: re-size save area when CPUID policy changes
On 11.05.2021 18:41, Andrew Cooper wrote: > On 03/05/2021 15:22, Jan Beulich wrote: >>> Another consequence is that we need to rethink our hypercall behaviour. >>> There is no such thing as supervisor states in an uncompressed XSAVE >>> image, which means we can't continue with that being the ABI. >> I don't think the hypercall input / output blob needs to follow any >> specific hardware layout. > > Currently, the blob is { xcr0, xcr0_accum, uncompressed image }. > > As we haven't supported any compressed states yet, we are at liberty to > create a forward compatible change by logically s/xcr0/xstate/ and > permitting an uncompressed image. > > Irritatingly, we have xcr0=0 as a permitted state and out in the field, > for "no xsave state". This contributes a substantial quantity of > complexity in our xstate logic, and invalidates the easy fix I had for > not letting the HVM initpath explode. > > The first task is to untangle the non-architectural xcr0=0 case, and to > support compressed images. Size parsing needs to be split into two, as > for compressed images, we need to consume XSTATE_BV and XCOMP_BV to > cross-check the size. Not sure about the need to eliminate the xcr0=0 (or xstates=0) case. Which isn't to say I'm opposed if you want to do so and it's not overly intrusive. > I think we also want a rule that Xen will always send compressed if it > is using XSAVES (/XSAVEC in the interim?) If this is sufficiently neutral to tool stack code, why not (albeit I don't think there needs to be a "rule" - Xen should be free to provide what it deems best, with consumers in the position to easily recognize the format; similarly Xen should be consuming whatever it gets handed, as long as that's valid state). Luckily the layout is visible just through tool-stack-only interfaces. > We do not want to be working > with uncompressed images at all, now that MPX is a reasonable sized hole > in the middle. They're together no larger (128 bytes) than the LWP hole right ahead of them (at 0x340). I agree avoiding uncompressed format is worthwhile, but perhaps quite a bit more so for systems with higher components following unavailable even bigger ones. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |