|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] Backend in user space, how is its kernel dev unregistere
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
drivers/xen/blkback/xenbus.c.
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
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|