public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <greg@kroah.com>
To: Robert Schwebel <r.schwebel@pengutronix.de>
Cc: linux-kernel@vger.kernel.org,
	daniel.krueger@systec-electronic.com,
	Michael Olbrich <mol@pengutronix.de>,
	Wolfram Sang <wsa@pengutronix.de>,
	Marc Kleine-Budde <mkl@pengutronix.de>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: The Linux Staging tree, what it is and is not.
Date: Thu, 19 Mar 2009 19:48:16 -0700	[thread overview]
Message-ID: <20090320024816.GA20213@kroah.com> (raw)
In-Reply-To: <20090320005808.GM5367@pengutronix.de>

On Fri, Mar 20, 2009 at 01:58:08AM +0100, Robert Schwebel wrote:
> Greg,
> 
> On Wed, Mar 18, 2009 at 11:32:32AM -0700, Greg KH wrote:
> > If anyone has any questions that this summary doesn't answer, please let me
> > know.
> 
> Let me take this as an opportunity to discuss the epl (Ethernet
> Powerlink) driver in staging. Taken aside the eye-cancer thing while
> looking at the code (this could be fixed in the staging model), I
> suppose the whole design is questionable.

Sure it's questionable, and it's horrid code, but it is being used by
people and is the only public implementation of EPL on Linux that I can
find.

> We have ported similar commercial EPL stacks to linux-rt in the past,
> and what we simply did is to implement the code completely in userspace,
> ontop of a raw socket. It worked out pretty well and with reasonable
> realtime performance. For the high level API, we used the process data
> model provided by libpv [1], which gives you an abstraction that follows
> both, automation-people's "process variable" concept and a modern object
> oriented desing (in C, modeled after the POSIX object model for example
> like pthread_create() & friends).
> 
> Doing this kind of network protocols in kernel space may be possible in
> general, but IMHO the first thing that has to be done for a sane design
> is:
> 
> 	"Invent proper APIs and abstractions"

Agreed.

> Unfortunately, industry people have somehow missed the last 10 years of
> software engineering, so even recent ethernet fieldbus designs like
> PowerLink or EtherCAT use the CANopen Object Dictionary [1] as their
> "abstraction" between the stack and the application. So writing
> applications in the EPL/CANopen/EtherCAT world works by PEEK and POKE on
> a variable-length global variable array. Welcome to software design of
> the 80es. Nevertheless, "Object Dictionary" is a standard API for
> industry people which cannot be discussed away, because automation
> people are used to this terminology.
> 
> So if we want to do any kind of EPL/CANopen/EtherCAT work in the kernel,
> let's start with the question what it buys us in comparism with a pure
> userspace solution like outlined above.

Are userspace solutions for this opensource today?

<snip>

> What do others think? Is it worth the effort to invent a proper objdict
> API for linux?

I suggest discussing this on netdev, that's the proper place for network
protocol discussions like this, right?

thanks,

greg k-h

  reply	other threads:[~2009-03-20  3:20 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-18 18:32 The Linux Staging tree, what it is and is not Greg KH
2009-03-20  0:58 ` Robert Schwebel
2009-03-20  2:48   ` Greg KH [this message]
2009-03-20  8:34     ` Daniel Krüger
2009-03-20  8:46       ` Robert Schwebel
2009-03-20 17:25       ` Greg KH
2009-03-20 10:01   ` Alan Cox
2009-03-20 10:35     ` Robert Schwebel
2009-03-20 10:55       ` Alan Cox
2009-03-20 11:15         ` Robert Schwebel
2009-03-20 15:16           ` Daniel Krüger
2009-03-20 15:37             ` Alan Cox
2009-03-20 20:32               ` david
2009-03-23  9:03                 ` Daniel Krüger
2009-03-23  9:16                   ` Robert Schwebel
2009-03-20  4:26 ` Dave Airlie
2009-03-20  4:46   ` Greg KH
2009-03-20 16:05   ` Lubomir Rintel

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=20090320024816.GA20213@kroah.com \
    --to=greg@kroah.com \
    --cc=daniel.krueger@systec-electronic.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mkl@pengutronix.de \
    --cc=mol@pengutronix.de \
    --cc=r.schwebel@pengutronix.de \
    --cc=tglx@linutronix.de \
    --cc=wsa@pengutronix.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox