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

Re: [Xen-devel] libxl/xl memory paging/sharing/ballooning/etc proposal.



On Thu, 2012-03-15 at 16:00 +0000, Olaf Hering wrote:
> On Thu, Mar 15, Ian Campbell wrote:
> 
> 
> > > Is memory/target below /local/domain/X or /vm/<uuid> in use by the guet?
> > 
> > /local/domain/X. The is no such key under /vm/<uuid>
> 
> Its just "/vm/<uuid>/memory", after 'xm mem-set dom 2G'. This what I had
> in mind.

# xenstore-ls -fp| grep memory
/local/domain/0/memory = ""   (n0)
/local/domain/0/memory/target = "524288"   (n0)
/local/domain/0/memory/static-max = "4294967292"   (n0)
/local/domain/0/memory/freemem-slack = "629049"   (n0)
/local/domain/32/memory = ""   (n0,r32)
/local/domain/32/memory/static-max = "524288"   (n0,r32)
/local/domain/32/memory/target = "516096"   (n0,r32)
/local/domain/32/memory/videoram = "8192"   (n0,r32)
/local/domain/33/memory = ""   (n0,r33)
/local/domain/33/memory/static-max = "32768"   (n0,r33)
/local/domain/33/memory/target = "32769"   (n0,r33)
/local/domain/33/memory/videoram = "-1"   (n0,r33)
/local/domain/47/memory = ""   (n0,r47)
/local/domain/47/memory/static-max = "524288"   (n0,r47)
/local/domain/47/memory/target = "516096"   (n0,r47)
/local/domain/47/memory/videoram = "8192"   (n0,r47)
#

> 
> > > I'm sure the latter can only be used to set a watch for example (dont
> > > have a guest at hand to verify).
> > > Also the guest would have to proactivly parse the "links" to find its
> > > domid, to later browse /local/domain/X.
> > 
> > No, /local/domain/X is the domains "home directory", it is what relative
> > paths are relative to -- so to access /local/domain/X/memory/target a
> > domain just accesses "memory/target"
> 
> Hmm, really?

I am reasonably sure.
# xenstore-ls -fp| grep ijc-foo
# xenstore-write ijc-foo/bar baz
# xenstore-ls -fp| grep ijc-foo
/local/domain/0/ijc-foo = ""   (n0)
/local/domain/0/ijc-foo/bar = "baz"   (n0)
#

See also tools/xenstore/xenstored_domain.c:talloc_domain_path() which
creates the path returned by get_implicit_path():
        static char *talloc_domain_path(void *context, unsigned int
        domid)
        {
                return talloc_asprintf(context, "/local/domain/%u",
        domid);
        }

> When I worked on xenbus_reset_state() for kdump the guest started in
> /vm/<uuid> for relative paths.
> 
> > > What would it protect if /local/domain/X/memory (and other parts) are not 
> > > accesible?
> > 
> > XS has a permissions scheme which allows per domain r/w, r/o or none.
> > 
> > Something like the paging target should not even be r/o for the guest
> > IMHO. In general we try to keep stuff which the domain should not even
> > be looking at separate from the stuff which it should.
> 
> The target could very well go below /local/domain/X/xenpaging, and this
> directory can get the proper permissions to be r/w only for the tools.

My point was that but is much better to segregate non-guest visible
stuff outside of this path in order to avoid mistake.

Things have a tendency to leak into the guest visible world and become
an ABI otherwise.

Ian.



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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