On 12/9/23 16:07, Paolo Bonzini wrote:
On 9/11/23 23:13, Philippe Mathieu-Daudé wrote:
Too many system-specific code (and in particular KVM related)
is pulled in user-only build. This led to adding unjustified
stubs as kludge to unagressive linker non-optimizations.
This series restrict x86 system-specific features to sysemu,
so we don't require any stub, and remove all x86 KVM declarations
from user emulation code (to trigger compile failure instead of
link one).
Philippe Mathieu-Daudé (3):
target/i386: Check kvm_hyperv_expand_features() return value
RFC target/i386: Restrict system-specific features from user emulation
target/i386: Prohibit target specific KVM prototypes on user emulation
At least, patch 2 should be changed so that the #ifdef'ery is done at a
higher level.
I can try to improve it with your comments, but I have no idea of
x86 CPU features.
However, the dependency of user-mode emulation on KVM is really an
implementation detail of QEMU. It's very much baked into linux-user and
hard to remove, but I'm not sure it's a good idea to add more #ifdef
CONFIG_USER_ONLY around KVM code.
Do you rather v3 then?
https://lore.kernel.org/qemu-devel/20230911142729.25548-1-philmd@xxxxxxxxxx/