WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] Paravirt framebuffer frontend kernel support [1/

On Thu, Nov 02, 2006 at 04:02:48PM +0100, Markus Armbruster wrote:

> Ewan Mellor <ewan@xxxxxxxxxxxxx> writes:
> 
> > On Thu, Nov 02, 2006 at 11:10:12AM +0100, Markus Armbruster wrote:
> >
> >> I'm now looking into a conversion to xenbus_driver API.  I started
> >> with copying some voodoo from blkfront.c.  My
> >> xenbus_register_frontend() succeeds.  Stupid question: what triggers
> >> running of the probe function?  Because mine doesn't.
> >
> > Either the watch firing when the correct entries in the store are written 
> > (for
> > hotplugging) or it probes those paths at startup.
> >
> > xenbus/xenbus_probe.c:
> >
> > frontend_changed ->
> > dev_changed ->
> > xenbus_probe_node ->
> > device_register
> >
> > or
> >
> > xenbus_probe_init ->
> > xenbus_probe ->
> > xenbus_probe_devices ->
> > xenbus_probe_device_type ->
> > bus->probe ->
> > xenbus_probe_frontend ->
> > xenbus_probe_node ->
> > device_register
> >
> > The device_register causes a the specific frontend device to be registered,
> > which triggers the probe.
> 
> Err, I still don't get it.  What exactly makes the guest run the
> frontend's probe?  I figure you're trying to tell me that it runs when
> a certain xenstore entry is present at startup, or when it gets
> created later.  Corrrect?  Which entry exactly?  I tried a few (more
> voodoo), but no luck.

/local/domain/<domid>/device/<devclass>/<devid>

<devclass> is the string that you've put in xenbus_driver.name when
registering it with xenbus_register_frontend.  The xenbus driver registers a
watch on /local/domain/<domid>/device, and whenever that fires, dev_changed
looks through the registered drivers, looking for the one with the right
<devclass>, and it all gets kicked off from there.

Ewan.

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