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

Re: [Xen-devel] Block device configuration


  • To: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
  • From: Mark Ryden <markryde@xxxxxxxxx>
  • Date: Fri, 21 Oct 2005 08:55:22 +0200
  • Cc: Xen Mailing List <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Fri, 21 Oct 2005 06:52:36 +0000
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=skXgzW7SrVWp887gaeZ+8IpLQdP+lRVAF2MtkF5B/1b8+h+/kWmTDpMXEigcsnwxXTK7U4X1TF9rY4Xq1OlhUNA5stVvEuRr/A/Jo7msdyLV5aKEzuJajKUDLSukr0OQ9gnAQHfpRPhl+xEYoJB07/UvuHN5lJMDBI0bhLijfDc=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Hi,

In this occasion, I want to add one question which is also about
this issue,if I may:

Can anyone explain in a few sentences and show exactly where in the code and
how the backend driver probe function and the frontend driver probe function
are called ? (blkfront_probe() and blkback_probe() in the case of a
block device).

I could not find the code which triggers these functions.

Is this have to do with udev/hotplug calling probe using generic linux
probe methods?

Or is it that merely setting values in XenStore triggers the probing
functions, using some callback?  I doubt this is the case.

Regards,
MR


On 10/21/05, Rusty Russell <rusty@xxxxxxxxxxxxxxx> wrote:
> Hi all,
>
>         Am trying to write a skeleton driver, so I'm trying to understand the
> store interface for block devices.  Is this correct, and what it's going
> to be in 3.0?
>
> Tool (eg. xend) creates two directories (with a single transaction ?):
>
>         <backend>/backend/vbd/<per-frontend-dir>/<device-id>/
>                 domain: name of frontend domain
>                 type: "phy" or "file"
>                 params: path of device (type=phy) or file (type=file)?
>                 dev: the device the frontend is going to see
>                 frontend: path of frontend device directory
>                 frontend-id: domain id of frontend directory.
>
>         <frontend>/device/vbd/<device-id>/
>                 virtual-device: same as "dev" in backend dir
>                 backend: path of backend device directory
>                 backend-id: domain id of backend
>
> Now, under Linux, the following happens on the backend:
>         xenbus notices new backend device appear, calls vbd backend
>         driver (which places a watch on itself), and invokes hotplug
>         script (or udev) in userspace.
>
>         hotplug script reads parameters from directory, and writes
>         physical-device node.
>
>         vbd backend notices creation of physical-device node.  It then
>         looks at frontend to "ring-ref" and "event-channel" values, then
>         and writes "sectors", "info" and "sector-size".
>
> Under Linux, the following happens on the frontend:
>         xenbus notices new device appear, calls vbd frontend driver, and
>         invokes hotplug/udev.
>
>         driver places watch on backend, reads "virtual-device" and
>         creates writes "ring-ref" and "event-channel".  Tries to read
>         "sectors", "info" and "sector-size" from backend.
>
> Is this the model the skeleton driver should follow, or are more changes
> anticipated?
>
> Rusty.
> --
> A bad analogy is like a leaky screwdriver -- Richard Braakman
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
>

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