Skip to contentSkip to conversation

KBUS messaging subsystem

RFC PATCH In review Tony Ibbs 2 participants 3 messages Jan 28, 2011 – Feb 3, 2011

lore
Share & tools
lore

Tony Ibbs

author
#0 lore raw

RFC PATCH 1/1 KBUS messaging subsystem

KBUS is a lightweight Linux-kernel mediated message system, particularly intended for use in embedded environments.

It is meant to be simple to use and understand. It is particularly designed to provide predictable message delivery, deterministic message ordering, and a guaranteed reply for each request.

We have various customers using KBUS in real life, and believe it to be useful. I had a showcase table for KBUS at the ELCE in Cambridge, October last year, and there seemed to be interest.

We'd like some advice on how to submit this - I assume that submitting patches to the Embedded Linux mailing list first would be sensible, since we believe this to be an area that will find KBUS interesting.

The KBUS project home page is at http://kbus-messaging.org/
The KBUS specification can be found at
http://html.kbus.googlecode.com/hg/docs/html/specification.html

Userland support, plus unit tests for the kernel module, are in the Google code repositories. There's a GettingStarted page linked from the KBUS home page.

We've got a working repository with Linux 2.6.37 patched for KBUS, available via:

git pull git://github.com/crazyscot/linux-2.6-kbus.git kbus-2.6.37

Our tentative patch is at
http://kbus.googlecode.com/files/0001-KBUS-messaging-subsystem.patch

The diffstat for the patch is:

 Documentation/Kbus.txt     | 1189 ++++++++++
 include/linux/kbus_defns.h |  666 ++++++
 init/Kconfig               |    3 +
 ipc/Kconfig                |   99 +
 ipc/Makefile               |    1 +
 ipc/kbus.c                 | 5120 ++++++++++++++++++++++++++++++++++++++++++++
 ipc/kbus_internal.h        |  773 +++++++
 7 files changed, 7851 insertions(+), 0 deletions(-)

Should I just submit the patch to this list?

Tibs

#1 lore raw

[Edited cc: list as my smtp server refused to send the original reply]

Quoted 15 lines

Our tentative patch is at
http://kbus.googlecode.com/files/0001-KBUS-messaging-subsystem.patch

The diffstat for the patch is:

 Documentation/Kbus.txt     | 1189 ++++++++++
 include/linux/kbus_defns.h |  666 ++++++
 init/Kconfig               |    3 +
 ipc/Kconfig                |   99 +
 ipc/Makefile               |    1 +
 ipc/kbus.c                 | 5120 ++++++++++++++++++++++++++++++++++++++++++++
 ipc/kbus_internal.h        |  773 +++++++
 7 files changed, 7851 insertions(+), 0 deletions(-)
Quoted 1 line

Should I just submit the patch to this list?

You will get more feedback on lkml...
Looks like comprehensive descriptions - good!

Took a quick peek at the patch.

- use __u32 (and friends) in exported headers - not uint32_t.
- do not invent our own logging system. Use one of the standard methods.

If you post for review try to divide it up a little. Maybe kbus.c in one patch, Makefile + Kconfig in last patch. It is a large file to review already.

Sam

author
#2 lore raw
Quoted 1 line · On Fri, 28 Jan 2011 20:20:42 +0100 Sam Ravnborg <[email protected]> wrote:

[Edited cc: list as my smtp server refused to send the original reply]

Apologies - I had copied down Grant Likely's email address wrong at ELCE.

Quoted 3 lines
Quoted 1 line

Should I just submit the patch to this list?

You will get more feedback on lkml...

Indeed. I hoped to start small.

Quoted 1 line

- use __u32 (and friends) in exported headers - not uint32_t.

OK. I'd missed that. Presumably I should also be using u32 and friends inside the kernel module itself, instead of uint32_t...

Quoted 2 lines

- do not invent our own logging system. Use one of the standard methods.

I vaguely remember having a reason for that. Doubtless it was a bad one. I shall attend to it.

Quoted 3 lines

If you post for review try to divide it up a little. Maybe kbus.c in one patch, Makefile + Kconfig in last patch. It is a large file to review already.

That's useful guidance. I shall amend the code as suggested above and resubmit as smaller, inline patches.

Tibs