All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Johannes Stezenbach <js@sig21.net>
Cc: arnd@arndb.de, ebiederm@xmission.com, gnomes@lxorguk.ukuu.org.uk,
	teg@jklm.no, jkosina@suse.cz, luto@amacapital.net,
	linux-api@vger.kernel.org, linux-kernel@vger.kernel.org,
	daniel@zonque.org, dh.herrmann@gmail.com, tixxdz@opendz.org
Subject: Re: [PATCH v3 00/13] Add kdbus implementation
Date: Tue, 20 Jan 2015 02:38:06 +0800	[thread overview]
Message-ID: <20150119183806.GA8479@kroah.com> (raw)
In-Reply-To: <20150119180642.GA27957@sig21.net>

On Mon, Jan 19, 2015 at 07:06:42PM +0100, Johannes Stezenbach wrote:
> Hi Greg and Daniel,

[Fixing Daniel's email, which I messed up originally...]

> On Fri, Jan 16, 2015 at 11:16:04AM -0800, Greg Kroah-Hartman wrote:
> > kdbus is a kernel-level IPC implementation that aims for resemblance to
> > the the protocol layer with the existing userspace D-Bus daemon while
> > enabling some features that couldn't be implemented before in userspace.
> > 
> > The documentation in the first patch in this series explains the
> > protocol and the API details.
> 
> How about the big picture?
> 
> > Reasons why this should be done in the kernel, instead of userspace as
> > it is currently done today include the following:
> [abbreviated]
> > - performance
> > - security
> > - semantics for apps with heavy data payloads
> 
> 
> First of all I wonder about the relationship with D-Bus.
> http://dbus.freedesktop.org/doc/dbus-specification.html says:
> 
>    D-Bus is designed for two specific use cases:
> 
>        A "system bus" for notifications from the system to user
>        sessions, and to allow the system to request input from
>        user sessions.
> 
>        A "session bus" used to implement desktop environments such
>        as GNOME and KDE. 
> 
>    D-Bus is not intended to be a generic IPC system for any
>    possible application, and intentionally omits many features
>    found in other IPC systems for this reason. 
> 
> Does this also apply to kdbus?  If not, what are the
> suggested uses of kdbus beyond those where D-Bus is
> currently used?

I don't really know.  I have heard from lots of random people who are
starting to look into kdbus as to if it will work for their use cases,
which seem quite varied.  I'll leave it to them to pop up and say if it
will work for them outside of the above specific ways.  But even then,
the above two things are something almost all Linux boxes rely on today,
so it's not like this is a solution searching for a problem to solve :)

> Another related quote by Havoc Pennington:
> http://lists.freedesktop.org/archives/dbus/2012-March/015024.html
> 
>    In general, reading this, I think in some cases there are
>    problems that make sense to fix in dbus, and in other cases
>    there are problems that are best solved by not using dbus.
>    ...
>    there are about 10000 IPC solutions already, from ICE (both of
>    them) to ZeroMQ to AMQP to CORBA to X11 to HTTP to SOAP to
>    WebSockets to SUN-RPC to whatever-the-heck. To me, trying to
>    make dbus configurable so that it can substitute for any of
>    these is a Bad Idea (tm).
> 
> Do you think it also applies to kdbus?

Yes, I do agree, there are lots of existing ipc solutions today that
kdbus is not designed for, nor would it be good to use it for.  The
majority of them being IPC that crosses the network layer, as there are
lots of good solutions today for that problem.  That being said, I do
know one research group that has kdbus working cross-network, just "to
try it out", but I don't know what ever came of it.

> Wrt the performance improvement achieved by kdbus, my impression
> about D-Bus is that the number of messages on my system is
> about a dozen per minute.  Are there actually any existing
> applications using D-Bus that have a performance issue?
> Or is this only about future possible uses?

There are a number of existing applications that have this performance
issue today.  The majority of them have been ported from other operating
systems that have a fast message bus, so their process model is all
about messages.  They use a library layer on Linux to turn that message
bus into D-Bus messages, and have suffered a huge hit in performance
from their previous operating system.  Using kdbus has brought it back
in line to make it reasonable to use.

These applications can be usually found in the Automotive sector, which
has been playing with light-weight dbus library implementations for a
while now, and have done some initial kdbus testing to verify this will
work for them.

> Linked from http://kroah.com/log/blog/2014/01/15/kdbus-details/,
> http://lwn.net/Articles/580194/ "The unveiling of kdbus" says:
> 
>    Unlike most other kernels, Linux has never had a well-designed
>    IPC mechanism. Windows and Mac OS have this feature; even
>    Android, based on Linux, has one in the form of the "binder"
>    subsystem. Linux, instead, has only had the primitives —
>    sockets, FIFOs, and shared memory — but those have never been
>    knitted together into a reasonable application-level API. Kdbus
>    is an attempt to do that knitting and create something that is
>    at least as good as the mechanisms found on other systems.
> 
> These are bold words. I'm not sure what Windows and Mac OS
> have in terms of IPC, but the above suggests that kdbus
> is *the* new Linux IPC that everyone will use for everything,
> rather than a special purpose facility.

Everyone uses D-Bus today for everything on their system, so by
replacing the underlying library with kdbus, they will continue to use
it for everything without having to change any application or library
code at all.

Hope this helps,

greg k-h

  reply	other threads:[~2015-01-19 18:38 UTC|newest]

Thread overview: 143+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-16 19:16 [PATCH v3 00/13] Add kdbus implementation Greg Kroah-Hartman
2015-01-16 19:16 ` Greg Kroah-Hartman
2015-01-16 19:16 ` [PATCH 01/13] kdbus: add documentation Greg Kroah-Hartman
     [not found]   ` <1421435777-25306-2-git-send-email-gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
2015-01-20 13:53     ` Michael Kerrisk (man-pages)
2015-01-20 13:53       ` Michael Kerrisk (man-pages)
     [not found]       ` <54BE5DC8.70706-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-01-20 14:31         ` David Herrmann
2015-01-20 14:31           ` David Herrmann
     [not found]           ` <CANq1E4SjfZOKqTsdkt519vKc1Poeah5McVJBb_spdHjbKv4=7g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-20 14:42             ` Josh Boyer
2015-01-20 14:42               ` Josh Boyer
     [not found]               ` <CA+5PVA46wVa-L9K1zgHzt=Fwn6YFBYhxJUjiozSH4XBY03WMVw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-20 14:53                 ` Djalal Harouni
2015-01-20 14:53                   ` Djalal Harouni
2015-01-20 16:08                   ` Johannes Stezenbach
     [not found]                     ` <20150120160842.GA9474-FF7aIK3TAVNeoWH0uzbU5w@public.gmane.org>
2015-01-20 17:00                       ` David Herrmann
2015-01-20 17:00                         ` David Herrmann
     [not found]                         ` <CANq1E4Q9m7JRXNYFY4okh3brM-kHVoVGOdF_SWjNoNURX930HQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-20 22:00                           ` Johannes Stezenbach
2015-01-20 22:00                             ` Johannes Stezenbach
2015-01-21 10:28             ` Michael Kerrisk (man-pages)
2015-01-21 10:28               ` Michael Kerrisk (man-pages)
2015-01-20 18:23         ` Daniel Mack
2015-01-20 18:23           ` Daniel Mack
     [not found]           ` <54BE9D08.7010804-cYrQPVfZoowdnm+yROfE0A@public.gmane.org>
2015-01-21 10:32             ` Michael Kerrisk (man-pages)
2015-01-21 10:32               ` Michael Kerrisk (man-pages)
     [not found]               ` <54BF805B.4000609-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-01-21 15:19                 ` Theodore Ts'o
2015-01-21 15:19                   ` Theodore Ts'o
2015-01-21 16:58                 ` Daniel Mack
2015-01-21 16:58                   ` Daniel Mack
     [not found]                   ` <54BFDAAA.50203-cYrQPVfZoowdnm+yROfE0A@public.gmane.org>
2015-01-22 10:18                     ` Michael Kerrisk (man-pages)
2015-01-22 10:18                       ` Michael Kerrisk (man-pages)
     [not found]                       ` <54C0CE8A.5080805-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-01-22 13:46                         ` David Herrmann
2015-01-22 13:46                           ` David Herrmann
2015-01-22 14:49                           ` Austin S Hemmelgarn
2015-01-23 16:08                             ` Greg Kroah-Hartman
     [not found]                               ` <20150123160854.GA5210-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-01-26 14:46                                 ` Michael Kerrisk (man-pages)
2015-01-26 14:46                                   ` Michael Kerrisk (man-pages)
     [not found]                                   ` <54C65346.5070504-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-01-27 15:05                                     ` David Herrmann
2015-01-27 15:05                                       ` David Herrmann
     [not found]                                       ` <CANq1E4SkHhs1pWUe-TzG7bzk1M-Q++mB2vmQGuYx0RMF53wg4Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-27 16:03                                         ` Andy Lutomirski
2015-01-27 16:03                                           ` Andy Lutomirski
     [not found]                                           ` <CALCETrU1O6LjhrXSH2aXWFt2WGh=ssrq4K9HD10f_Z55iT=Otw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-29  8:53                                             ` Daniel Mack
2015-01-29  8:53                                               ` Daniel Mack
2015-01-29 11:25                                               ` Andy Lutomirski
2015-01-29 11:42                                                 ` Daniel Mack
2015-01-29 12:09                                                   ` Andy Lutomirski
     [not found]                                                     ` <CALCETrXD41=ohFSkCmBD8zPHFVUtr49QXMhYnChAxqQtmUjJYw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-02  9:34                                                       ` Daniel Mack
2015-02-02  9:34                                                         ` Daniel Mack
     [not found]                                                         ` <54CF44B9.8000005-cYrQPVfZoowdnm+yROfE0A@public.gmane.org>
2015-02-02 20:12                                                           ` Andy Lutomirski
2015-02-02 20:12                                                             ` Andy Lutomirski
     [not found]                                                             ` <CALCETrUh1Mse4CBQ4bfkJf+ew=kdpn46hMLS2QafLhfRTzQoBQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-03 10:09                                                               ` Daniel Mack
2015-02-03 10:09                                                                 ` Daniel Mack
     [not found]                                                                 ` <54D09E6B.2020903-cYrQPVfZoowdnm+yROfE0A@public.gmane.org>
2015-02-04  0:41                                                                   ` Andy Lutomirski
2015-02-04  0:41                                                                     ` Andy Lutomirski
     [not found]                                                                     ` <CALCETrV_q9Y4OWC6fA78WsD+XFhsdGHrqH6OK-hc=Vvj2F5C5w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-04  2:47                                                                       ` Eric W. Biederman
2015-02-04  2:47                                                                         ` Eric W. Biederman
     [not found]                                                                         ` <87siemgzoo.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2015-02-04  3:14                                                                           ` Greg Kroah-Hartman
2015-02-04  3:14                                                                             ` Greg Kroah-Hartman
     [not found]                                                                             ` <20150204031437.GB32207-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-02-04  6:30                                                                               ` Eric W. Biederman
2015-02-04  6:30                                                                                 ` Eric W. Biederman
2015-02-04 23:03                                                                   ` Andy Lutomirski
2015-02-04 23:03                                                                     ` Andy Lutomirski
2015-02-05  0:16                                                                     ` David Herrmann
     [not found]                                                                       ` <CANq1E4ShseFuTp0wPrHM9mFmgA-y9Kqz1m0-FmU9qALuxQ8Qvg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-08 16:54                                                                         ` Andy Lutomirski
2015-02-08 16:54                                                                           ` Andy Lutomirski
2015-01-27 18:03                                         ` Michael Kerrisk (man-pages)
2015-01-27 18:03                                           ` Michael Kerrisk (man-pages)
     [not found]                           ` <CANq1E4S=3qNw599L85uj-8aXwxeV+mcurB_Nu_rHH8opAeePjw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-23 11:47                             ` Michael Kerrisk (man-pages)
2015-01-23 11:47                               ` Michael Kerrisk (man-pages)
2015-01-23 15:54                         ` Greg Kroah-Hartman
2015-01-23 15:54                           ` Greg Kroah-Hartman
     [not found]                           ` <20150123155402.GB2159-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-01-26 14:42                             ` Michael Kerrisk (man-pages)
2015-01-26 14:42                               ` Michael Kerrisk (man-pages)
2015-01-26 15:26                               ` Tom Gundersen
     [not found]                                 ` <CAG-2HqUCZjc4Ucc-L21uG6e-di4UcLJAT5mW_-5-c-uqmoJyzA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-26 16:44                                   ` christoph Hellwig
2015-01-26 16:44                                     ` christoph Hellwig
2015-01-26 16:45                                 ` Michael Kerrisk (man-pages)
2015-01-27 15:23                                   ` David Herrmann
2015-01-27 17:53                                     ` Michael Kerrisk (man-pages)
     [not found]                                       ` <54C7D0A3.4000900-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-01-27 18:14                                         ` Daniel Mack
2015-01-27 18:14                                           ` Daniel Mack
2015-01-28 10:46                                           ` Michael Kerrisk (man-pages)
2015-01-20 13:58     ` Michael Kerrisk (man-pages)
2015-01-20 13:58       ` Michael Kerrisk (man-pages)
2015-01-20 17:50       ` Daniel Mack
     [not found]         ` <54BE957A.60305-cYrQPVfZoowdnm+yROfE0A@public.gmane.org>
2015-01-21  8:57           ` Michael Kerrisk (man-pages)
2015-01-21  8:57             ` Michael Kerrisk (man-pages)
2015-01-21  9:07             ` Daniel Mack
     [not found]       ` <54BE5F1F.8070703-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-01-21  9:07         ` Michael Kerrisk (man-pages)
2015-01-21  9:07           ` Michael Kerrisk (man-pages)
     [not found]           ` <54BF6C67.7090909-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-01-21  9:12             ` Daniel Mack
2015-01-21  9:12               ` Daniel Mack
2015-01-23  6:28     ` Ahmed S. Darwish
2015-01-23  6:28       ` Ahmed S. Darwish
2015-01-23 13:19       ` Greg Kroah-Hartman
     [not found]         ` <20150123131946.GA26302-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-01-23 13:29           ` Greg Kroah-Hartman
2015-01-23 13:29             ` Greg Kroah-Hartman
2015-01-25  3:30           ` Ahmed S. Darwish
2015-01-25  3:30             ` Ahmed S. Darwish
2015-01-16 19:16 ` [PATCH 02/13] kdbus: add header file Greg Kroah-Hartman
     [not found] ` <1421435777-25306-1-git-send-email-gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
2015-01-16 19:16   ` [PATCH 03/13] kdbus: add driver skeleton, ioctl entry points and utility functions Greg Kroah-Hartman
2015-01-16 19:16     ` Greg Kroah-Hartman
2015-01-16 19:16   ` [PATCH 05/13] kdbus: add connection, queue handling and message validation code Greg Kroah-Hartman
2015-01-16 19:16     ` Greg Kroah-Hartman
2015-01-16 19:16   ` [PATCH 09/13] kdbus: add code for buses, domains and endpoints Greg Kroah-Hartman
2015-01-16 19:16     ` Greg Kroah-Hartman
2015-01-16 19:16   ` [PATCH 11/13] kdbus: add policy database implementation Greg Kroah-Hartman
2015-01-16 19:16     ` Greg Kroah-Hartman
2015-01-16 19:16   ` [PATCH 12/13] kdbus: add Makefile, Kconfig and MAINTAINERS entry Greg Kroah-Hartman
2015-01-16 19:16     ` Greg Kroah-Hartman
2015-01-16 22:07   ` [PATCH v3 00/13] Add kdbus implementation Josh Boyer
2015-01-16 22:07     ` Josh Boyer
2015-01-16 22:18     ` Greg Kroah-Hartman
     [not found]       ` <20150116221824.GA512-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-01-17  0:26         ` Daniel Mack
2015-01-17  0:26           ` Daniel Mack
     [not found]           ` <54B9AC3E.9070105-cYrQPVfZoowdnm+yROfE0A@public.gmane.org>
2015-01-17  0:41             ` Josh Boyer
2015-01-17  0:41               ` Josh Boyer
2015-01-19 18:06   ` Johannes Stezenbach
2015-01-19 18:06     ` Johannes Stezenbach
2015-01-19 18:38     ` Greg Kroah-Hartman [this message]
     [not found]       ` <20150119183806.GA8479-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-01-19 20:19         ` Johannes Stezenbach
2015-01-19 20:19           ` Johannes Stezenbach
2015-01-19 20:31           ` Greg Kroah-Hartman
     [not found]             ` <20150119203155.GA15441-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-01-19 23:38               ` Johannes Stezenbach
2015-01-19 23:38                 ` Johannes Stezenbach
     [not found]                 ` <20150119233812.GA1874-FF7aIK3TAVNeoWH0uzbU5w@public.gmane.org>
2015-01-20  1:13                   ` Greg Kroah-Hartman
2015-01-20  1:13                     ` Greg Kroah-Hartman
2015-01-20 10:57                     ` Johannes Stezenbach
     [not found]                       ` <20150120105712.GA6260-FF7aIK3TAVNeoWH0uzbU5w@public.gmane.org>
2015-01-20 11:26                         ` Greg Kroah-Hartman
2015-01-20 11:26                           ` Greg Kroah-Hartman
     [not found]                           ` <20150120112609.GA17198-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-01-20 13:24                             ` Johannes Stezenbach
2015-01-20 13:24                               ` Johannes Stezenbach
2015-01-20 14:12                               ` Michael Kerrisk (man-pages)
     [not found]                     ` <20150120011359.GE865-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-01-26 21:32                       ` One Thousand Gnomes
2015-01-26 21:32                         ` One Thousand Gnomes
2015-01-19 18:33   ` Johannes Stezenbach
2015-01-19 18:33     ` Johannes Stezenbach
2015-01-20 14:05   ` Michael Kerrisk (man-pages)
2015-01-20 14:05     ` Michael Kerrisk (man-pages)
2015-01-16 19:16 ` [PATCH 04/13] kdbus: add connection pool implementation Greg Kroah-Hartman
2015-01-16 19:16 ` [PATCH 06/13] kdbus: add node and filesystem implementation Greg Kroah-Hartman
2015-01-16 19:16 ` [PATCH 07/13] kdbus: add code to gather metadata Greg Kroah-Hartman
2015-01-16 19:16 ` [PATCH 08/13] kdbus: add code for notifications and matches Greg Kroah-Hartman
2015-01-16 19:16 ` [PATCH 10/13] kdbus: add name registry implementation Greg Kroah-Hartman
2015-01-16 19:16 ` [PATCH 13/13] kdbus: add selftests Greg Kroah-Hartman
2015-01-20 14:15 ` [PATCH v3 00/13] Add kdbus implementation Michael Kerrisk (man-pages)

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=20150119183806.GA8479@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=arnd@arndb.de \
    --cc=daniel@zonque.org \
    --cc=dh.herrmann@gmail.com \
    --cc=ebiederm@xmission.com \
    --cc=gnomes@lxorguk.ukuu.org.uk \
    --cc=jkosina@suse.cz \
    --cc=js@sig21.net \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=teg@jklm.no \
    --cc=tixxdz@opendz.org \
    /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.