Messages in this thread | | | Subject | Re: [RFC v2 14/32] x86/tdx: Handle port I/O | From | "Kuppuswamy, Sathyanarayanan" <> | Date | Tue, 11 May 2021 08:08:20 -0700 |
| |
On 5/11/21 7:39 AM, Dave Hansen wrote: > To what you do you refer by "this patch allocates this memory in ASM > code"? Could you point to the specific ASM code that "allocates memory"?
We use 40 bytes in stack for storing the output register values. It is in function tdg_inl().
subq $TDVMCALL_OUTPUT_SIZE, %rsp
+SYM_FUNC_START(tdg_inl) + io_save_registers + /* Set data width to 4 bytes */ + mov $4, %rsi +1: + mov %rdx, %rcx + /* Set 0 in RDX to select in operation */ + mov $0, %rdx + /* Set TDVMCALL function id in RDI */ + mov $EXIT_REASON_IO_INSTRUCTION, %rdi + /* Set TDVMCALL type info (0 - Standard, > 0 - vendor) in R10 */ + xor %r10, %r10 + /* Allocate memory in stack for Output */ + subq $TDVMCALL_OUTPUT_SIZE, %rsp + /* Move tdvmcall_output pointer to R9 */ + movq %rsp, %r9 + + call do_tdvmcall
-- Sathyanarayanan Kuppuswamy Linux Kernel Developer
| |