Re: [PATCH v4 04/19] x86/cea: Export per CPU array 'cea_exception_stacks' for KVM to use

From: Xin Li
Date: Fri Apr 11 2025 - 12:19:03 EST


On 4/10/2025 7:18 AM, Dave Hansen wrote:
On 4/10/25 01:53, Christoph Hellwig wrote:
On Fri, Mar 28, 2025 at 10:11:50AM -0700, Xin Li (Intel) wrote:
The per CPU array 'cea_exception_stacks' points to per CPU stacks
+/*
+ * FRED introduced new fields in the host-state area of the VMCS for
+ * stack levels 1->3 (HOST_IA32_FRED_RSP[123]), each respectively
+ * corresponding to per CPU stacks for #DB, NMI and #DF. KVM must
+ * populate these each time a vCPU is loaded onto a CPU.
+ */
+EXPORT_PER_CPU_SYMBOL(cea_exception_stacks);
Exporting data vs accessors for it is usually a bad idea. Doing a
non-_GPl for such a very low level data struture is even worse.

Big ack on this.

I don't even see a single caller of __this_cpu_ist_top_va() that's
remotely performance sensitive or that needs to be inline.

Just make the __this_cpu_ist_top/bottom_va() macros into real functions
and export __this_cpu_ist_top_va(). It's going to be a pretty tiny
function but I think that's tolerable.


Right, that does make sense to me.