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