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/
Home Products Support Community News


Re: [Xen-devel] Backend in user space, how is its kernel dev unregistere

To: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Subject: Re: [Xen-devel] Backend in user space, how is its kernel dev unregistered?
From: Markus Armbruster <armbru@xxxxxxxxxx>
Date: Thu, 05 Mar 2009 13:40:30 +0100
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 05 Mar 2009 04:41:05 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <C5D4B13C.42F3%keir.fraser@xxxxxxxxxxxxx> (Keir Fraser's message of "Wed\, 04 Mar 2009 22\:29\:16 +0000")
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <C5D4B13C.42F3%keir.fraser@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.3 (gnu/linux)
Keir Fraser <keir.fraser@xxxxxxxxxxxxx> writes:

> On 04/03/2009 19:51, "Markus Armbruster" <armbru@xxxxxxxxxx> wrote:
>>>> But what if the device driver is in user space?  vfb and vkbd are.  I
>>>> can't see how their kernel devices can ever get unregistered.
>>> Presumably these should watch xenstore themselves and tear down state when
>>> they see state changes from the frontend, or the corresponding xenstore
>>> directory disappear completely. Just like in the kernel's xenbus_probe.c.
>>>  -- Keir
>> Stupid question: how can a user space driver get *kernel* devices
>> unregistered?
> Maybe I misunderstand the problem. I don't know much about pvfb or pvkbd.
>  -- Keir

Let me elaborate.

Backend device registration is split between xenbus_probe.c
(registering) and the backend device driver (unregistering).  When a
device node shows up in xenstore, xenbus_probe_node() calls
device_register().  When the backend driver sees the frontend shut down,
it calls device_unregister().  For an example see frontend_changed() in

The vfb and vkbd backends live in user space, i.e. there is no backend
driver in the kernel.  device_unregister() never gets called.  This is a
resource leak.

Does this explain the problem sufficienctly?

Xen-devel mailing list