Re: plans for user-backed device support

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

 



On 02/04/2015 03:31 PM, Andy Grover wrote:
On 02/04/2015 12:21 PM, Alex Elsayed wrote:
Maybe we step back and define a DBus interface

I'd be quite happy with that - I considered suggesting it, in fact, but
wasn't sure of the prevailing opinion re: dbus around here.

What would you do re: discovery, though?

(Explaining some DBus things, which readers may already be aware of)

In DBus, there's a two-level hierarchy of busnames holding objects.
Busnames are either the inherent, connection-level one of the :\d+.\d+
form,
or the human-readable well-known name form (reverse DNS). Objects, then,
implement interfaces.

However, well-known names can only have a single owner - so discovering
which busnames have objects which implement an interface is non-trivial.

The approach taken by KDE is to suffix the well-known name with the PID
(org.kde.StatusNotifierItem-2055 or whatever), call ListNames, and
filter in
the client. This has the drawback of making DBus activation impossible.

Another approach is for every implementor to try to claim the well-known
name, and on failure contact the existing owner to republish their
objects
(possibly under a namespaced object path). This has the drawback of
complicating the implementation somewhat, as well as making bus
activation
only able to activate a single 'default' implementation.

A third approach would be to explicitly define a multiplexor, which
backends
ask to republish their objects. This simplifies implementations, and it
could also provide its own API that requests a backend by name, and
ensures
that backend's object is available. This could be driven by something as
simple as a key-value mapping from backend name to a well-known DBus name
specific to that backend, which the multiplexor calls to trigger service
activation.

Thoughts?

It really seems to come down to: will multiple independent user-handler
daemons be needed? Because I'm trying really hard to make tcmu-runner
good enough so that the answer is no :-)

Hi Alex,

Given the interest that Rancher and QEMU have expressed for integrating processing of user handlers into their own event loops, it's clear now that we *do* need to support multiple implementors. The third approach you describe above is looking very desirable, to present users with a unified view of what handlers are available.

One interesting wrinkle is that Oleg from Rancher is already making progress libifying bits of tcmu-runner. This gives us the opportunity to implement backend-to-multiplexor coordination in a library that backends just have to link to and use.

So...this is turning into a whole big thing after all. I just wanted to ping you since we started discussing this back in February, and see if you had any more advice on how best to proceed, either about the design or the implementation.

Thoughts?

Are there any other projects we should be using as a model?

Thanks -- Regards -- Andy

--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux