Re: [RFC/RFT PATCH 0/2] x86: sgx_vepc: implement ioctl to EREMOVE all pages

Yang Zhong
2021-09-15T08:43:02Z

On Tue, Sep 14, 2021 at 12:19:31PM +0200, Paolo Bonzini wrote:
> On 14/09/21 09:10, Yang Zhong wrote:
> >On Mon, Sep 13, 2021 at 09:11:51AM -0400, Paolo Bonzini wrote:
> >>Based on discussions from the previous week(end), this series implements
> >>a ioctl that performs EREMOVE on all pages mapped by a /dev/sgx_vepc
> >>file descriptor. Other possibilities, such as closing and reopening
> >>the device, are racy.
> >>
> >>The patches are untested, but I am posting them because they are simple
> >>and so that Yang Zhong can try using them in QEMU.
> >>
> >
> > Paolo, i re-implemented one reset patch in the Qemu side to call this ioctl(),
> > and did some tests on Windows and Linux guest, the Windows/Linux guest reboot
> > work well.
> >
> > So, it is time for me to send this reset patch to Qemu community? or wait for
> > this kernel patchset merged? thanks!
>
> Let's wait for this patch to be accepted first. I'll wait a little
> more for Jarkko and Dave to comment on this, and include your
> "Tested-by".
>
> I will also add cond_resched() on the final submission.
>

Thanks Paolo, i will send Qemu patch once this patchset is accepted.

This day, i also did corner cases test and updated related Qemu reset patch.

do {
ret = ioctl(fd, SGX_IOC_VEPC_REMOVE);
/* this printf is only for debug*/
printf("-------sgx ret=%d and n=%d---\n", ret, n++);
if(ret)
sleep(1);
} while (ret);

(1). The VEPC size=10M, start 4 enclaves(each ~2G size) in the VM side.
then do the 'system_reset' in the Qemu monitor tool.

(2). The VEPC size=10G, start 500 enclaves(each ~20M size) in the VM side.
then do the 'system_reset' in the Qemu monitor tool.

The ret will show the failures number(SECS pages number, 4 and 500) got from kernel side,
after sleep 1s, the ioctl will return 0 failures.

If this reset is triggered by guest bios, there is 0 SECS page got from kernel, which will
not block VM booting.

So, until now, the kernel patches work well. If any new issue, i will update it to all. thanks!

Yang

> Paolo