Re: [PATCH] x86/paravirt: Fix build PARAVIRT_XXL=y without XEN_PV

From: Dave Hansen
Date: Wed Nov 17 2021 - 18:33:24 EST


On 11/17/21 3:04 PM, Sathyanarayanan Kuppuswamy wrote:
> 1. Directly substitute TDVMCALLs in places where we require emulation.
...
> Since option#1 is not a scalable approach,

Why is this not "scalable"? Just eyeballing the problem, here's my
laptop's kernel:

$ objdump -d vmlinux | grep 'hlt ' | awk -F: '{print $1}' | while read
addr; do addr2line -e vmlinux $addr; done
arch/x86/include/asm/irqflags.h:51
arch/x86/include/asm/irqflags.h:51
arch/x86/include/asm/irqflags.h:57
arch/x86/include/asm/irqflags.h:57
arch/x86/include/asm/irqflags.h:57
arch/x86/include/asm/irqflags.h:57
arch/x86/include/asm/irqflags.h:51
arch/x86/include/asm/irqflags.h:51
arch/x86/include/asm/irqflags.h:51
arch/x86/kernel/fpu/init.c:84
arch/x86/include/asm/irqflags.h:57

There are a grand total of 3 sites from which a hlt originates. With
only 11 possible instances and 3 sites to patch, I'm not sure anything
here needs to be "scalable".

I'd suspect half these sites aren't even reachable on a TDX system.