[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] add HVMOP_get_mem_type hvmop



At 14:59 +0100 on 03 May (1304434768), Olaf Hering wrote:
> On Tue, May 03, Tim Deegan wrote:
> 
> > > +        rc = rcu_lock_remote_target_domain_by_id(a.domid, &d);
> > 
> > I thought this call was intended to be used from inside the guest in
> > question.  rcu_lock_remote_target_domain_by_id() explicitly refuses to
> > let a domain operate on itself. 
> 
> Hmm, I have to test it with xen-unstable too. I did copy&paste from
> other parts of the file. 4.0 used rcu_lock_target_domain_by_id, so can I
> use that function?

Yes; I think that's the right one for you.  It's the same except for the
check that the target isn't the caller. 

> > > +typedef enum {
> > > +    HVMMEM_ram_rw,             /* Normal read/write guest RAM */
> > > +    HVMMEM_ram_ro,             /* Read-only; writes are discarded */
> > > +    HVMMEM_mmio_dm,            /* Reads and write go to the device model 
> > > */
> > > +} hvmmem_type_t;
> > > +
> > 
> > This is now outside the #ifdef, when both of its users are inside it.
> > If that wasn't deliberate, please put it back. 
> 
> Should HVMOP_get_mem_type use hvmmem_type_t? Its outside the ifdef,

Looks to me like it's inside; at least, inside an equivalent one.  Did
you compile-test your kernel against this patch?

> otherwise unmodified_drivers/linux-2.6/platform-pci/platform-pci.c does
> not get the define.

OK; as long as both the typedef and its user are outside the ifdef,
that's fine.

> > > +#define HVMOP_get_mem_type    15
> > > +/* Return hvmmem_type_t for the specified pfn. */
> > > +struct xen_hvm_get_mem_type {
> > > +    /* Domain to be queried. */
> > > +    domid_t domid;
> > > +    /* OUT variable. */
> > > +    uint8_t mem_type;
> > > +    /* IN variable. */
> > > +    uint64_t pfn;
> > 
> > This structure will be laid out differently on 32-bit and 64-bit
> > builds. :(  Also, since the _set operation uses a 16-bit variable for
> > the type, you might as well do the same here. 
> 
> Good point. Should I use the same padding as in xen_hvm_pagetable_dying?
> 
> struct xen_hvm_get_mem_type {
>     /* Domain to be queried. */
>     domid_t domid;
>     /* OUT variable. */
>     uint16_t mem_type;
>     uint16_t pad[2];
>     /* IN variable. */
>     uint64_t pfn;
> };

Yes, that's fine.

Tim.

-- 
Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Principal Software Engineer, Xen Platform Team
Citrix Systems UK Ltd.  (Company #02937203, SL9 0BG)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.