public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Chris Friesen <cfriesen@nortelnetworks.com>
To: Bernd Petrovitsch <bernd@firmix.at>
Cc: Oliver Neukum <oliver@neukum.org>,
	Steve French <smfltc@us.ibm.com>,
	linux-kernel@vger.kernel.org
Subject: Re: upcalls from kernel code to user space daemons
Date: Mon, 14 Jun 2004 18:22:48 -0400	[thread overview]
Message-ID: <40CE2538.4060603@nortelnetworks.com> (raw)
In-Reply-To: <1087250925.8828.3.camel@gimli.at.home>

Bernd Petrovitsch wrote:
> On Mon, 2004-06-14 at 23:57, Chris Friesen wrote:
>  > Oliver Neukum wrote:
>  >
>  > >  > userspace daemon loops on ioctl()
>  > >  > kernel portion of ioctl call goes to sleep until something to do
>  > >  > when needed, fill in data and return to userspace
>  > >  > userspace does stuff, then passes data back down via ioctl()
>  > >  > ioctl() puts userspace back to sleep and continues on with other 
> work
>  > >
>  > > You could just as well implement an ordinary read()
>  >
>  > Not quite.  The userspace is passing data down as well.  I don't know 
> how you'd
>  > do that with read().
> 
> For this you use write().

And you eat another syscall per userspace call.  For the ioctl() case, you only 
need to issue a single call to ioctl().  You pass the result of the previous 
request down, and then when it returns you get the data for the next request.

Although I have to admit it's not pretty, and the performance improvements may 
not be worth the obfuscation of the code.

Chris

  reply	other threads:[~2004-06-14 22:23 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-14 18:07 upcalls from kernel code to user space daemons Steve French
2004-06-14 18:30 ` Chris Friesen
2004-06-14 21:40   ` Oliver Neukum
2004-06-14 21:57     ` Chris Friesen
2004-06-14 22:08       ` Bernd Petrovitsch
2004-06-14 22:22         ` Chris Friesen [this message]
2004-06-14 22:54           ` Tim Hockin
2004-06-14 23:10             ` Randy.Dunlap
2004-06-14 22:54     ` Steve French
2004-06-15  9:06       ` Oliver Neukum
2004-06-18 23:08 ` H. Peter Anvin

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=40CE2538.4060603@nortelnetworks.com \
    --to=cfriesen@nortelnetworks.com \
    --cc=bernd@firmix.at \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oliver@neukum.org \
    --cc=smfltc@us.ibm.com \
    /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