[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20201117173506.GB8524@kernel.org>
Date: Tue, 17 Nov 2020 19:35:06 +0200
From: Jarkko Sakkinen <jarkko@...nel.org>
To: Hillf Danton <hdanton@...a.com>
Cc: x86@...nel.org, linux-sgx@...r.kernel.org,
linux-kernel@...r.kernel.org,
Sean Christopherson <sean.j.christopherson@...el.com>,
Jethro Beekman <jethro@...tanix.com>,
Serge Ayoun <serge.ayoun@...el.com>, akpm@...ux-foundation.org
Subject: Re: [PATCH v41 12/24] x86/sgx: Add SGX_IOC_ENCLAVE_CREATE
On Sun, Nov 15, 2020 at 12:40:44PM +0800, Hillf Danton wrote:
> On Fri, 13 Nov 2020 00:01:23 +0200 Jarkko Sakkinen wrote:
> >
> > +long sgx_ioctl(struct file *filep, unsigned int cmd, unsigned long arg)
> > +{
> > + struct sgx_encl *encl = filep->private_data;
> > + int ret;
> > +
> > + if (test_and_set_bit(SGX_ENCL_IOCTL, &encl->flags))
> > + return -EBUSY;
>
> Looks like encl->ioctl_mutex is needed to exlusively serialize
> concurrent ioctl threads and make encl->flags free of the duty.
> Plus it can cut the confusing EBUSY in userspace as it is not
> a critical path in any form.
The reason it is there was lock juggling with sgx_encl_grow() [*].
Andd since you never should use these ioctl's in parallel so why not
explicitly signal it to the user space?
[*] https://lore.kernel.org/linux-sgx/20190827001128.25066-4-sean.j.christopherson@intel.com/
/Jarkko
Powered by blists - more mailing lists