On Tue, Nov 15, 2022 at 12:35:39AM +0000, Andrew Cooper wrote:
> I was really hoping to avoid this, but its now too late in the 4.17 freeze and
> we still don't have working fixes.

The fix I proposed still has some comments that have been unanswered,
but at any rate thit is now far too late to try to get this fixed.

FWIW that same fix was also posted to the security list way before
hitting xen-devel.

> The in-Xen calculations for assistance capabilities are buggy.  For the
> avoidance of doubt, the original intention was to be able to control every
> aspect of a APIC acceleration so we could comprehensively test Xen's support,
> as it has proved to be buggy time and time again.
> 
> Even after a protracted discussion on what the new API ought to mean, attempts
> to apply it to the existing logic have been unsuccessful, proving that the
> API/ABI is too complicated for most people to reason about.

Are you referring to the VMX hardware interface to setup the related
APIC assistance flags, or the hypervisor interface to control those
features?

> This reverts most of:
>   2ce11ce249a3981bac50914c6a90f681ad7a4222
>   6b2b9b3405092c3ad38d7342988a584b8efa674c
> 
> leaving in place the non-APIC specific changes (minimal as they are).
> 
> This takes us back to the behaviour of Xen 4.16 where APIC acceleration is
> configured on a per system basis.
> 
> This work will be revisited in due course.

I certainly regret having been involved in attempting to fix this, and
I have to admit I still don't understand what is broken with the
current API/ABI.

Do we want a flag to control the setting of the APIC register
virtualization feature?

Is the naming for the flag that we expose incorrect?

Is the field where the flag gets set incorrect?

There isn't that much to the current interface.

In the previous reply to the fix however I got the (maybe incorrect)
impression that current bugs in the implementation are used as a way
to justify why the interface is broken, and that is not accurate.  The
interface and the implementation are two different things, and bugs
in the implementation shouldn't automatically invalidate the
interface without further reasoning.

Also, for better or worse, the current domctl interface where all this
is implemented is unstable, and hence we are allowed to make further
changes as we implement more related features.

> Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>

I'm not going to oppose to the revert, but as said above it is still
not clean to me what is broken in the current approach apart from
implementation bugs, hence it's unlikely for me to revisit this work,
at least not until such uncertainty is solved.

Regards, Roger.

Reply via email to