public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Manu Abraham <abraham.manu@gmail.com>
To: Greg KH <greg@kroah.com>
Cc: linux-kernel@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	Andrew de Quincey <adq_dvb@lidskialf.net>
Subject: Re: [RFC] Simple userspace interface for PCI drivers
Date: Wed, 30 Aug 2006 21:07:44 +0400	[thread overview]
Message-ID: <44F5C5E0.4050201@gmail.com> (raw)
In-Reply-To: <20060830062338.GA10285@kroah.com>

Greg KH wrote:
> A while ago, Thomas and I were sitting in the back of a conference
> presentation where the presenter was trying to describe what they did in
> order to add the ability to write a userspace PCI driver.  As was usual
> in a presentation like this, the presenter totaly ignored the real-world
> needs for such a framework, and only got it up and working on a single
> type of embedded system.  But the charts and graphs were quite pretty :)
> 
> Thomas and I lamented that we were getting tired of seeing stuff like
> this, and it was about time that we added the proper code to the kernel
> to provide everything that would be needed in order to write PCI drivers
> in userspace in a sane manner.  Really all that is needed is a way to
> handle the interrupt, everything else can already be done in userspace
> (look at X for an example of this...)


A while back, while we (myself and Andrew De Quincey) were struggling
with new DVB frontend devices that needed math operations to be
performed in the frontends themselves for frequency tracking / locking
etc, we found that eventually userspace was a much better place to have
such code, rather than being in kernel.

After quite some thoughts we found it would be much better to have them
implemented in userspace. We did finally draw up to some conclusions,
eventually.

We came up with some code eventually, but time was limited on our hands
that we went into discussion of the newer delivery systems that came
along, so development was a bit halted in that aspect.

http://www.thadathil.net/dvb/msg_transfer_interface
http://thadathil.net:8000/cgi-bin/hgwebdir.cgi/v4l-dvb-user
http://thadathil.net:8000/cgi-bin/hgwebdir.cgi/libdvbapi

> 
> Thomas mentioned that he had code to do all of this working in some
> customer sites already and that he would get it to me.
> 
> Fast forward to OLS of this year, and I bugged Thomas to send me the
> code.  He did, and then I sat on it for a while longer...
> 
> So, here's the code.  I think it does a bit too much all at once, but it
> is an example of how this can be done.  This is working today in some
> industrial environments, successfully handling hardware controls of very
> large and scary machines.  So it is possible to use this interface to
> successfully build your own laser wielding robot, all from userspace,
> allowing you to keep your special-secret-how-to-control-the-laser
> algorithm closed source if you so desire.
> 
> In looking at the proposed kevent interface, I think a few things in
> this proposed interface can be dropped in favor of using kevents
> instead, but I haven't looked at the latest version of that code to make
> sure of this.
> 
> And the name is a bit ackward, anyone have a better suggestion?
> 
> Thomas has also promised to come up with some userspace code that uses
> this interface to show how to use it, but seems to have forgotten.
> Consider this a reminder :)
> 
> Comments?


Being a bit excited and it is really interesting to have such a
proposal, it would simplify the matters that held us up even more,
probably. The name sounds fine though. All i was wondering whether there
would be any high latencies for the same using in such a context. But
since the transfers would occur in any way, even with a kernel mode
driver, i think it should be pretty much fine.


Manu



  parent reply	other threads:[~2006-08-30 17:07 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-30  6:23 [RFC] Simple userspace interface for PCI drivers Greg KH
2006-08-30 10:09 ` Thomas Gleixner
2006-08-30 14:34 ` Matt Porter
2006-08-30 16:25   ` Thomas Gleixner
2006-08-30 17:55   ` Greg KH
2006-08-30 20:32     ` Foli Ayivoh
2006-08-30 21:01     ` Matthias Schniedermeyer
2006-08-30 21:25       ` linux-os (Dick Johnson)
2006-08-30 22:08         ` Greg KH
2006-09-01  1:36     ` Brice Goglin
2006-09-01  3:22       ` Greg KH
2006-09-01  3:37         ` Brice Goglin
2006-09-01  4:27           ` Greg KH
2006-08-31 13:49   ` Andi Kleen
2006-09-01 18:16     ` Greg KH
2006-08-30 17:07 ` Manu Abraham [this message]
2006-08-30 17:52   ` Greg KH
2006-08-30 22:50     ` Manu Abraham
2006-08-31  0:17       ` Greg KH
2006-08-31 13:24         ` Manu Abraham
2006-08-31 22:42           ` Greg KH
2006-08-31  7:40 ` Andrew Morton
2006-08-31  8:05   ` Thomas Gleixner
2006-08-31  8:30 ` Xavier Bestel
2006-08-31 20:39   ` Lee Revell
2006-08-31 20:53     ` Chris Friesen
2006-08-31 21:39       ` Greg KH
2006-08-31 20:58     ` Xavier Bestel
2006-08-31 21:12       ` Lee Revell
2006-08-31 21:18         ` Xavier Bestel
2006-08-31 21:33           ` Manu Abraham
2006-08-31 21:40       ` Greg KH
2006-09-01 21:17 ` Pavel Machek
2006-09-03  8:34   ` Thomas Gleixner
2006-09-12 19:47 ` Sam Ravnborg
2006-09-14  5:57   ` Greg KH

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=44F5C5E0.4050201@gmail.com \
    --to=abraham.manu@gmail.com \
    --cc=adq_dvb@lidskialf.net \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.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