2022-08-31 17:49:31

by Jarkko Sakkinen

[permalink] [raw]
Subject: [PATCH v2 3/6] x86/sgx: Handle VA page allocation failure for EAUG on PF.

From: Haitao Huang <[email protected]>

VM_FAULT_NOPAGE is expected behaviour for -EBUSY failure path, when
augmenting a page, as this means that the reclaimer thread has been
triggered, and the intention is just to round-trip in ring-3, and
retry with a new page fault.

Fixes: 5a90d2c3f5ef ("x86/sgx: Support adding of pages to an initialized enclave")
Signed-off-by: Haitao Huang <[email protected]>
Tested-by: Vijay Dhanraj <[email protected]>
Reviewed-by: Reinette Chatre <[email protected]>
Signed-off-by: Jarkko Sakkinen <[email protected]>
---
v3:
* Added Reinette's ack.

v2:
* Removed reviewed-by, no other changes.
---
arch/x86/kernel/cpu/sgx/encl.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/cpu/sgx/encl.c b/arch/x86/kernel/cpu/sgx/encl.c
index f40d64206ded..c0fd98a1c658 100644
--- a/arch/x86/kernel/cpu/sgx/encl.c
+++ b/arch/x86/kernel/cpu/sgx/encl.c
@@ -347,8 +347,11 @@ static vm_fault_t sgx_encl_eaug_page(struct vm_area_struct *vma,
}

va_page = sgx_encl_grow(encl, false);
- if (IS_ERR(va_page))
+ if (IS_ERR(va_page)) {
+ if (PTR_ERR(va_page) == -EBUSY)
+ vmret = VM_FAULT_NOPAGE;
goto err_out_epc;
+ }

if (va_page)
list_add(&va_page->list, &encl->va_pages);
--
2.37.2


2022-08-31 18:11:32

by Reinette Chatre

[permalink] [raw]
Subject: Re: [PATCH v2 3/6] x86/sgx: Handle VA page allocation failure for EAUG on PF.

Hi Jarkko,

On 8/31/2022 10:38 AM, Jarkko Sakkinen wrote:
> From: Haitao Huang <[email protected]>
>
> VM_FAULT_NOPAGE is expected behaviour for -EBUSY failure path, when
> augmenting a page, as this means that the reclaimer thread has been
> triggered, and the intention is just to round-trip in ring-3, and
> retry with a new page fault.
>
> Fixes: 5a90d2c3f5ef ("x86/sgx: Support adding of pages to an initialized enclave")
> Signed-off-by: Haitao Huang <[email protected]>
> Tested-by: Vijay Dhanraj <[email protected]>
> Reviewed-by: Reinette Chatre <[email protected]>
> Signed-off-by: Jarkko Sakkinen <[email protected]>
> ---
> v3:
> * Added Reinette's ack.

The ack came with a caveat related to a white space issue that
you did not fix in this version.

Reinette

2022-08-31 18:33:45

by Jarkko Sakkinen

[permalink] [raw]
Subject: Re: [PATCH v2 3/6] x86/sgx: Handle VA page allocation failure for EAUG on PF.

On Wed, Aug 31, 2022 at 11:08:33AM -0700, Reinette Chatre wrote:
> Hi Jarkko,
>
> On 8/31/2022 10:38 AM, Jarkko Sakkinen wrote:
> > From: Haitao Huang <[email protected]>
> >
> > VM_FAULT_NOPAGE is expected behaviour for -EBUSY failure path, when
> > augmenting a page, as this means that the reclaimer thread has been
> > triggered, and the intention is just to round-trip in ring-3, and
> > retry with a new page fault.
> >
> > Fixes: 5a90d2c3f5ef ("x86/sgx: Support adding of pages to an initialized enclave")
> > Signed-off-by: Haitao Huang <[email protected]>
> > Tested-by: Vijay Dhanraj <[email protected]>
> > Reviewed-by: Reinette Chatre <[email protected]>
> > Signed-off-by: Jarkko Sakkinen <[email protected]>
> > ---
> > v3:
> > * Added Reinette's ack.
>
> The ack came with a caveat related to a white space issue that
> you did not fix in this version.

Reinette, I'm sorry but I might possibly have some sort of blind
spot here.

I looked at the diff and I could not see any issues, and did not
run into issues with checkpath.

Can you point out what exactly is the whitespace issue?

BR, Jarkko

2022-08-31 19:04:02

by Jarkko Sakkinen

[permalink] [raw]
Subject: Re: [PATCH v2 3/6] x86/sgx: Handle VA page allocation failure for EAUG on PF.

On Wed, Aug 31, 2022 at 11:33:26AM -0700, Reinette Chatre wrote:
> Hi Jarkko,
>
> On 8/31/2022 11:21 AM, Jarkko Sakkinen wrote:
> >
> > Can you point out what exactly is the whitespace issue?
>
> There is an extra space after the "=" in:
> vmret = VM_FAULT_NOPAGE;

Duh, I did look at it about million times but honestly
did not see it before you pointed it out.

BR, Jarkko

2022-08-31 19:06:47

by Reinette Chatre

[permalink] [raw]
Subject: Re: [PATCH v2 3/6] x86/sgx: Handle VA page allocation failure for EAUG on PF.

Hi Jarkko,

On 8/31/2022 11:21 AM, Jarkko Sakkinen wrote:
>
> Can you point out what exactly is the whitespace issue?

There is an extra space after the "=" in:
vmret = VM_FAULT_NOPAGE;

Reinette