Re: [PATCH] x86/sgx: Synchronize encl->srcu in sgx_encl_release().
From: Jarkko Sakkinen
Date: Tue Dec 15 2020 - 00:59:40 EST
On Mon, Dec 14, 2020 at 11:01:32AM -0800, Sean Christopherson wrote:
> On Fri, Dec 11, 2020, Jarkko Sakkinen wrote:
> > Each sgx_mmun_notifier_release() starts a grace period, which means that
>
> Should be sgx_mmu_notifier_release(), here and in the comment.
Thanks.
> > one extra synchronize_rcu() in sgx_encl_release(). Add it there.
> >
> > sgx_release() has the loop that drains the list but with bad luck the
> > entry is already gone from the list before that loop processes it.
>
> Why not include the actual analysis that "proves" the bug? The splat that
> Haitao reported would also be useful info.
True. I can include a snippet of dmesg to the commit message.
> > Fixes: 1728ab54b4be ("x86/sgx: Add a page reclaimer")
> > Cc: Borislav Petkov <bp@xxxxxxxxx>
> > Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
> > Reported-by: Sean Christopherson <seanjc@xxxxxxxxxx>
>
> Haitao reported the bug, and for all intents and purposes provided the fix. I
> just did the analysis to verify that there was a legitimate bug and that the
> synchronization in sgx_encl_release() was indeed necessary.
Good and valid point. The way I see it, the tags should be:
Reported-by: Haitao Huang <haitao.huang@xxxxxxxxxxxxxxx>
Suggested-by: Sean Christopherson <seanjc@xxxxxxxxxx>
Haitao pointed out the bug but from your analysis I could resolve that
this is the fix to implement, and was able to write the long
description for the commit.
Does this make sense to you?
/Jarkko