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

Re: [Xen-devel] xenfs aka /proc/xen



On Sat, Jun 05, 2010 at 05:48:21PM -0700, Jeremy Fitzhardinge wrote:
> On 06/05/2010 09:29 AM, Bastian Blank wrote:
> > Okay. I thought about it and would settle for the following:
> > * $SYSFS/hypervisor/properties/guest_capabilites
> >   It includes the same value then $XENFS/capabilities. Or should that be
> >   changed as the meaning of "control_d" is not really clear (like
> >   "control-domain")?
> The general rule for sysfs is one value per file.  It would probably be
> more consistent to have a (guest_)capabilities directory, with a file
> per capability (containing 1/0, or some other value if appropriate).

You are right. However, the current sys/hypervisor interface already
uses multi-valued items.

> > * $DEV/xen/xenbus
> >   Merge into builtin xenbus support or own module xenbus-user
> Would you expect to change the actual ABI/protocol?

To reduce the complexity, partial messages could be disallowed.

> > * $DEV/xen/privcmd
> >   - Module xen-control or so
> >   - *Needs to check for CAP_ADMIN*
> > * $DEV/xen/xenstored
> >   - Module xen-control or so
> >   - Merges xsd_kva and xsd_port
> >   - Supports:
> >     - mmap, only support pagesized maps
> >     - ioctl: get event channel port, get size (page size may be different)
> Yes, the interface of exposing the xenstore mfn to userspace has always
> seemed a bit mad.  The kernel driver should do the mapping for
> usermode.  Does it also need to expose the xs event channel?  Or can the
> kernel just handle it internally and expose a normal blocking interface.

Sure, it can. However it moves the complexity from the userspace into
the kernel. As there are only two users right now, I doubt that the
easier userspace implementations would outweigh the possible problems.

> In fact, does it needs its own separate driver?  This is just
> symmetrical with /{proc,dev}/xen/xenbus.  Can that driver be made to
> handle both ends?  Or at least a driver which looks symmetric to the
> guest-side xenbus?

Not sure if this is worth the problems: Only one access-control path for
both client and server access.

However, if you want to go this way, I would propose a different
solution that looks the same in all the different access paths from
userspace: Netlink. This is than a complete overhaul.[1]

> >   - Security constraints needs check. What can a user with access to
> >     this device do?
> Policy should be enforced by xenstored itself.  Guests are not
> trustworthy in general, so there's no point in enforcing anything within
> the guest kernel.

I thought about the capacity of the server part to do damage.

> > * Core kernel may trigger loading of xen-control module by some means
> >   (to be defined).
> All a bit awkward, since there's no obvious trigger to hang the load
> event off.  Maybe key them off Xen or xenbus bringup as some kind of
> adjunct pseudo device?

Yeah. Something like that. Maybe just use the control domain capability
in the sys/hypervisor tree for that. The uevent response can set
MODALIAS.

Bastian

[1]: The problem is that this interface would be completely asynchron
with no notion of a statefull connection. However it would be a large
reduction in complexity and state.

Currently xenstore supports three types of messages: Transactional,
Read/Write and Watch. Transactional commands would go away. Every
message woule be its own transaction as such a protocol can not handle
long running transactions (are they really needed anyway?). Read/Write
would just work. Watch would be replaced by relayed change requests like
udev uses to acknowledge its work finished on an event.

-- 
Klingon phaser attack from front!!!!!
100% Damage to life support!!!!

_______________________________________________
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®.