Re: [PATCH] x86/sgx: Fix deadloop in __sgx_alloc_epc_page()
From: Jarkko Sakkinen
Date: Thu Aug 29 2024 - 12:44:33 EST
On Thu Aug 29, 2024 at 5:38 AM EEST, Aaron Lu wrote:
> When current node doesn't have a EPC section configured by firmware and
> all other EPC sections memory are used up, CPU can stuck inside the
> while loop in __sgx_alloc_epc_page() forever and soft lockup will happen.
> Note how nid_of_current will never equal to nid in that while loop because
~~~~
Oh *that* while loop ;-) Please be more specific.
> nid_of_current is not set in sgx_numa_mask.
>
> Also worth mentioning is that it's perfectly fine for firmware to not
> seup an EPC section on a node. Setting an EPC section on each node can
> be good for performance but that's not a requirement functionality wise.
This lacks any description of what is done to __sgx_alloc_epc_page().
>
> Fixes: 901ddbb9ecf5 ("x86/sgx: Add a basic NUMA allocation scheme to sgx_alloc_epc_page()")
> Reported-by: Zhimin Luo <zhimin.luo@xxxxxxxxx>
> Tested-by: Zhimin Luo <zhimin.luo@xxxxxxxxx>
> Signed-off-by: Aaron Lu <aaron.lu@xxxxxxxxx>
BR, Jarkko