Does it make sense to just allocate 4k of memory or so? Paolo
Il mer 28 dic 2022, 03:55 Wang, Wenchao <wenchao.w...@intel.com> ha scritto: > Hi, Paolo, > > > > Thanks for your reply. > > > > The reason why the variable xcr0 must be added to the header file of QEMU > is because HAXM needs QEMU to allocate memory from user space and pass it > to the kernel. This patch is only used to expand the buffer size of the > structure, and HAXM will use and maintain this variable. > > Without this patch, HAXM v7.8.0 will break support for QEMU and the HAXM > versions older than 7.8.0 cannot support QEMU with this patch, either. It > will work on any version since HAXM v7.8.0. I know QEMU treats the > structure as a black box, but HAXM never supported xcr0 before and the > structure size is not enough if it has been supported. We have verified the > patched QEMU and it can launch all guest OSes. Thanks. > > > > > > Best Regards, > > Wenchao > > > > *From:* Paolo Bonzini <pbonz...@redhat.com> > *Sent:* Tuesday, December 27, 2022 23:13 > *To:* Wang, Wenchao <wenchao.w...@intel.com> > *Cc:* Philippe Mathieu-Daudé <phi...@linaro.org>; qemu-devel < > qemu-devel@nongnu.org>; haxm-team <haxm-t...@intel.com> > *Subject:* Re: [PATCH] target/i386/hax: Add XCR0 support > > > > > > Il lun 28 nov 2022, 09:12 Wang, Wenchao <wenchao.w...@intel.com> ha > scritto: > > Hi, Philippe, > > It is just the full patch. Currently, the implementation of HAXM is > simple, we did not synchronize the vCPU register for xcr0 from QEMU. HAXM > will handle the xcr0 state within the kernel space, including > initialization, update, etc. This patch adds the xcr0 variable for > allocating extra 8-byte buffer occupation, which will be passed between > QEMU and HAXM when hax_sync_vcpu_state() is invoked. We have verified the > patched QEMU and it can launch all guest OSes. Thanks for your comments. > > > > I don't understand the patch very well, and I am on the phone so it's hard > to check QEMU's HAXM support sources right now. Did HAXM 7.8.0 break > support for QEMU without this patch, and likewise will QEMU with this patch > will HAXM versions older than 7.8.0? > > > > Or does this work on any version because QEMU treats the struct as a black > box? > > > > Paolo > > > > > > > > Best Regards, > Wenchao > > -----Original Message----- > From: Philippe Mathieu-Daudé <phi...@linaro.org> > Sent: Friday, November 25, 2022 21:37 > To: Wang, Wenchao <wenchao.w...@intel.com>; qemu-devel@nongnu.org > Cc: haxm-team <haxm-t...@intel.com>; Paolo Bonzini <pbonz...@redhat.com> > Subject: Re: [PATCH] target/i386/hax: Add XCR0 support > > Hi, > > On 25/11/22 13:18, Wang, Wenchao wrote: > > Hi, maintainers, > > > > As HAXM v7.8.0 is released and it added XCR0 support, could you help > > to merge this patch to add corresponding support into HAX user space > > of QEMU? The patch has been included in the attachment. Thanks. > > See > > https://www.qemu.org/docs/master/devel/submitting-a-patch.html#submitting-your-patches > on how to send patches to a mailing list. > > > > > Best Regards, > > > > Wenchao > > > > From b1789f2523d06798b8883664bfa9a9df797bfccf Mon Sep 17 00:00:00 > > 2001 > > > > From: Wenchao Wang <wenchao.w...@intel.com> > > > > Date: Fri, 25 Nov 2022 18:37:34 +0800 > > > > Subject: [PATCH] target/i386/hax: Add XCR0 support > > > > Introduce extended control register XCR0 to support XSAVE feature set. > > > > Note: This change requires at least HAXM v7.8.0 to support. > > > > Reviewed-by: Hang Yuan <hang.y...@intel.com> > > > > Signed-off-by: Wenchao Wang <wenchao.w...@intel.com> > > > > --- > > > > target/i386/hax/hax-interface.h | 2 ++ > > > > 1 file changed, 2 insertions(+) > > > > diff --git a/target/i386/hax/hax-interface.h > > b/target/i386/hax/hax-interface.h > > > > index 537ae084e9..1d13bb2380 100644 > > > > --- a/target/i386/hax/hax-interface.h > > > > +++ b/target/i386/hax/hax-interface.h > > > > @@ -201,6 +201,8 @@ struct vcpu_state_t { > > > > uint64_t _cr3; > > > > uint64_t _cr4; > > > > + uint64_t _xcr0; > > > > + > > > > uint64_t _dr0; > > > > uint64_t _dr1; > > > > uint64_t _dr2; > > > > -- > > > > 2.17.1 > > > > Is that the full patch? It is missing the register use in > hax_sync_vcpu_register()... > > Regards, > > Phil. > >