Dear Dev Mail-list! In my small experiment, I would like to extend the shared_info stuct of the hypervisor in the xen/include/public/xen.h with few variables. I already made a try, but I failed. I like to do this, because I want to store/read public values between the guests and the domain0. I tried to add these fields to the end of the shared_info. I did “make” it and install it. (I avoid the size checker of the shared_info). As I know, the guest operation system should know this modification, so I modified the guest op system at include/xen/interface/xen.h (ubuntu 11.04). I was a bit surprised because the two interface (xen.h) was not the same, even in the shared_info stuct there was some different (in the pvclock_wall wc definition). The operation system of the domain0 should be changed as well ?? Just in case I made the same modification. (ubuntu 12.04) I tried out the system with an already existing virtual machine to add it with the xm create with the following variables: modified xen + modified dom0 kernel + modified guest kernel => failed to boot modified xen + original dom0 kernel + modified guest kernel => failed to boot modified xen + original dom0 kernel + original guest kernel => failed to boot original xen + original dom0 kernel + original guest kernel => successfully boot So my question is that how can I add extra fields to the shared_info? what do I need to modify in the guest kernel? do I need any modification in dom0? Thank you! Csaba
>>> On 30.07.12 at 16:24, Kerti Csaba <csocskos@hotmail.com> wrote: > In my small experiment, I would like to extend the shared_info stuct of the > hypervisor in the xen/include/public/xen.h with few variables. I already made > a try, but I failed. I like to do this, because I want to store/read public > values between the guests and the domain0. > I tried to add these fields to the end of the shared_info. I did “make” it > and install it. (I avoid the size checker of the shared_info).Avoiding the size checker is certainly a mistake - it's there for a reason.> As I know, the guest operation system should know this modification, so I > modified the guest op system at include/xen/interface/xen.h (ubuntu 11.04). I > was a bit surprised because the two interface (xen.h) was not the same, even > in the shared_info stuct there was some different (in the pvclock_wall wc > definition). > > The operation system of the domain0 should be changed as well ?? Just in > case I made the same modification. (ubuntu 12.04) > > I tried out the system with an already existing virtual machine to add it > with the xm create with the following variables: > modified xen + modified dom0 kernel + modified guest kernel => failed to boot > modified xen + original dom0 kernel + modified guest kernel => failed to boot > modified xen + original dom0 kernel + original guest kernel => failed to bootYou fail to say what failed to boot - Dom0 or DomU.> original xen + original dom0 kernel + original guest kernel => successfully > boot > > So my question is that how can I add extra fields to the shared_info? > what do I need to modify in the guest kernel? > do I need any modification in dom0?Of course all modifications must be done uniformly to every component using the PV ABI. Nothing else should be required, provided you do the changes correctly (which includes not extending the shared info structure beyond a page in size). Perhaps the better approach for your purposes would be to have the domains actively register a separate shared data region with the hypervisor, similar to the extension of being able to register the per-vCPU info area to a location outside of the shared info page. Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
----------------------------------------> Date: Mon, 30 Jul 2012 15:59:39 +0100 > From: JBeulich@suse.com > To: csocskos@hotmail.com > CC: xen-devel@lists.xen.org > Subject: Re: [Xen-devel] extend shared_info stuct > > >>> On 30.07.12 at 16:24, Kerti Csaba <csocskos@hotmail.com> wrote: > > In my small experiment, I would like to extend the shared_info stuct of the > > hypervisor in the xen/include/public/xen.h with few variables. I already made > > a try, but I failed. I like to do this, because I want to store/read public > > values between the guests and the domain0. > > I tried to add these fields to the end of the shared_info. I did “make” it > > and install it. (I avoid the size checker of the shared_info). > > Avoiding the size checker is certainly a mistake - it''s there for a > reason. > > > As I know, the guest operation system should know this modification, so I > > modified the guest op system at include/xen/interface/xen.h (ubuntu 11.04). I > > was a bit surprised because the two interface (xen.h) was not the same, even > > in the shared_info stuct there was some different (in the pvclock_wall wc > > definition). > > > > The operation system of the domain0 should be changed as well ?? Just in > > case I made the same modification. (ubuntu 12.04) > > > > I tried out the system with an already existing virtual machine to add it > > with the xm create with the following variables: > > modified xen + modified dom0 kernel + modified guest kernel => failed to boot > > modified xen + original dom0 kernel + modified guest kernel => failed to boot > > modified xen + original dom0 kernel + original guest kernel => failed to boot > > You fail to say what failed to boot - Dom0 or DomU. > > > original xen + original dom0 kernel + original guest kernel => successfully > > boot > > > > So my question is that how can I add extra fields to the shared_info? > > what do I need to modify in the guest kernel? > > do I need any modification in dom0? > > Of course all modifications must be done uniformly to every > component using the PV ABI. Nothing else should be required, > provided you do the changes correctly (which includes not > extending the shared info structure beyond a page in size). > > Perhaps the better approach for your purposes would be to > have the domains actively register a separate shared data > region with the hypervisor, similar to the extension of being > able to register the per-vCPU info area to a location outside > of the shared info page. > > JanThank you Jan! I''m looking up this per-vCPU info area! Anyway, always the guest domain was which failed to boot. Csaba