From: Steven Smith <sos22-xen@srcf.ucam.org>
To: Markus Armbruster <armbru@redhat.com>
Cc: Jeremy Katz <katzj@redhat.com>,
aliguori <aliguori@mail.utexas.edu>,
Ewan Mellor <ewan@xensource.com>,
xen-devel <xen-devel@lists.xensource.com>,
sos22@srcf.ucam.org
Subject: Re: [PATCH] Paravirt framebuffer frontend kernel support [1/5]
Date: Thu, 2 Nov 2006 16:19:55 +0000 [thread overview]
Message-ID: <20061102161955.GA7065@cam.ac.uk> (raw)
In-Reply-To: <87slh2xc0m.fsf@pike.pond.sub.org>
[-- Attachment #1.1: Type: text/plain, Size: 2041 bytes --]
> Okay, thanks. Next stupid question: I'm looking for a *user space*
> xenbus_register_backend(). Where is it?
I don't think there is such a thing at the moment, just because we
don't currently have any userspace backends.
I think in your particularly case, the easiest thing is probably going
to be to get xend to set up a skeleton xenstore area for the frontend
in the usual way (see DevController.py and e.g. netif.py). With a
normal in-kernel driver you'd be able to watch the relevant location
to notice when a new device is created, but you don't have a
permanently-running daemon, which makes that a bit tricky. I think
it'd be okay to just fake the relevant entry in the store (set
${backend_path}/hotplug-status to connected) from the backend. It's a
little skanky, but it should be adequate and reasonably
straightforward to implement.
Once you've got that, it should be easy to just do the usual state
machine directly in the backend:
-- Both front and back are put into Initialising by xend.
-- When the backend is ready, it goes to state InitWait and triggers
the hotplug event.
-- When the frontend is ready, it sets up its area of the store, and goes to
Initialised.
-- The backend notices this, connects to the ring, and goes to state
Connected.
-- The frontend notices this, goes to Connected itself, and makes
itself available to the rest of the operating system.
Teardown is usually started by the frontend, and goes like this:
-- Frontend goes to state Closing
-- Backend disconnects from the ring and goes to state Closing
-- Frontend disconnects from the ring and goes to state Closed
-- Backend goes to Closed and destroys itself, unless online=1 in the
store, in which case it prepares for further connections.
Xend can also trigger backend teardown by simply deleting the frontend
area, e.g. if the frontend domain crashed. The normal in-kernel
infrastructure calls otherend_changed with the state
XenbusStateUnknown in that case, which causes the backends to destroy
themselves.
Steven.
[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
[-- Attachment #2: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
next prev parent reply other threads:[~2006-11-02 16:19 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-02 19:58 [PATCH] Paravirt framebuffer frontend kernel support [1/5] Jeremy Katz
2006-09-04 9:00 ` Steven Smith
2006-09-04 14:03 ` Keir Fraser
2006-09-05 16:11 ` Jeremy Katz
2006-09-06 9:11 ` Steven Smith
2006-09-06 15:56 ` Keir Fraser
2006-09-21 18:41 ` Markus Armbruster
2006-09-21 19:29 ` Keir Fraser
2006-09-21 19:33 ` Steven Smith
2006-09-10 7:39 ` Markus Armbruster
2006-09-10 9:38 ` Steven Smith
2006-09-30 8:52 ` Markus Armbruster
2006-11-02 10:10 ` Markus Armbruster
2006-11-02 10:36 ` Ewan Mellor
2006-11-02 12:34 ` Markus Armbruster
2006-11-02 16:19 ` Steven Smith [this message]
2006-11-02 16:31 ` Ewan Mellor
2006-11-03 14:18 ` Markus Armbruster
2006-11-03 17:01 ` Steven Smith
2006-11-02 15:02 ` Markus Armbruster
2006-11-02 15:38 ` Ewan Mellor
2006-11-02 7:53 ` Markus Armbruster
2006-11-02 7:58 ` Keir Fraser
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061102161955.GA7065@cam.ac.uk \
--to=sos22-xen@srcf.ucam.org \
--cc=aliguori@mail.utexas.edu \
--cc=armbru@redhat.com \
--cc=ewan@xensource.com \
--cc=katzj@redhat.com \
--cc=sos22@srcf.ucam.org \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.