From: Davide Libenzi <davidel@xmailserver.org>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: Zach Brown <zach.brown@oracle.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@elte.hu>, Ulrich Drepper <drepper@redhat.com>,
Arjan van de Ven <arjan@infradead.org>,
Andrew Morton <akpm@zip.com.au>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
Evgeniy Polyakov <johnpol@2ka.mipt.ru>,
"David S. Miller" <davem@davemloft.net>,
Suparna Bhattacharya <suparna@in.ibm.com>,
Jens Axboe <jens.axboe@oracle.com>,
Thomas Gleixner <tglx@linutronix.de>,
Dan Williams <dan.j.williams@gmail.com>,
Jeff Moyer <jmoyer@redhat.com>,
Simon Holm Thogersen <odie@cs.aau.dk>,
suresh.b.siddha@intel.com
Subject: Re: [PATCH 5/6] syslets: add generic syslets infrastructure
Date: Wed, 9 Jan 2008 15:15:49 -0800 (PST) [thread overview]
Message-ID: <Pine.LNX.4.64.0801091503270.13306@alien.or.mcafeemobile.com> (raw)
In-Reply-To: <200801100904.46842.rusty@rustcorp.com.au>
On Thu, 10 Jan 2008, Rusty Russell wrote:
> On Thursday 10 January 2008 05:16:57 Zach Brown wrote:
> > > The latter. A ring is optimal for processing a huge number of requests,
> > > but if you're really going to be firing off syslet threads all over the
> > > place you're not going to be optimal anyway. And being able to point the
> > > return value to the stack or into some datastructure is way nicer to code
> > > (zero setup == easy to understand and easy to convert).
> >
> > One of Linus' rhetorical requirements for the syslets work is that we be
> > able to wait for the result without spending overhead building up state
> > in some completion context. The userland rings in the current syslet
> > patches achieve that and don't seem outrageously complicated.
>
> I'd have to read his original statement, but eventfd doesn't build up state,
> so I think it qualifies.
I think you and Zach are talking about different issues ;)
Eventfd born for two different reasons. First, to be able to have
userspace to signal to a poll/select/epoll based listener an event. This
can elso be done with pipes, but eventfd has a few advantages over pipes
(3-4 times faster and *a lot* less memory footprint). Second, as a generic
way for kernel subsystems to signal completions to a poll/select/epoll
userspace listener. And this is what is used in the new KAIO eventfd
feature (patch was like 5 lines IIRC).
This allow for KAIO events to be signaled to poll/select/epoll in a pretty
easy way, using a simple extension of the AIO API.
What we talked originally with Ingo, when the first syslet code came up,
was the ability to do the reverse thing. That is, host an epoll_wait()
inside a syslet, and gather the completion using whatever the syslet code
was/is going to use for it.
Given that 1) the eventfd completion patch was trivial and immediately
available 2) the future of the whole syslet concept was/is still unclear,
I believe it makes/made sense. If the syslets will become mainline, it'll
mean that userspace will then be able to select the event-completion
"hosting" method that better suits their needs. That are, either AIO
completion hosted inside an epoll_wait() via an eventfd, or an
epoll_wait() hosted inside a syslet.
- Davide
next prev parent reply other threads:[~2008-01-09 23:16 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-06 23:20 syslets v7: back to basics Zach Brown
2007-12-06 23:20 ` [PATCH 1/6] indirect: use asmlinkage in i386 syscall table prototype Zach Brown
2007-12-06 23:20 ` [PATCH 2/6] syslet: asm-generic support to disable syslets Zach Brown
2007-12-06 23:20 ` [PATCH 3/6] syslet: introduce abi structs Zach Brown
2007-12-06 23:20 ` [PATCH 4/6] syslets: add indirect args Zach Brown
2007-12-06 23:20 ` [PATCH 5/6] syslets: add generic syslets infrastructure Zach Brown
2007-12-06 23:20 ` [PATCH 6/6] syslets: add both 32bit and 64bit x86 syslet support Zach Brown
2007-12-07 11:55 ` [PATCH 5/6] syslets: add generic syslets infrastructure Evgeniy Polyakov
2007-12-07 18:24 ` Zach Brown
2008-01-09 2:03 ` Rusty Russell
2008-01-09 3:00 ` Zach Brown
2008-01-09 3:48 ` Rusty Russell
2008-01-09 18:16 ` Zach Brown
2008-01-09 22:04 ` Rusty Russell
2008-01-09 22:58 ` Linus Torvalds
2008-01-09 23:05 ` Linus Torvalds
2008-01-09 23:47 ` Zach Brown
2008-01-10 1:18 ` Rusty Russell
2008-01-09 23:15 ` Davide Libenzi [this message]
2008-01-10 5:41 ` Jeff Garzik
2007-12-08 12:40 ` [PATCH 1/6] indirect: use asmlinkage in i386 syscall table prototype Simon Holm Thøgersen
2007-12-08 21:22 ` Zach Brown
2007-12-08 12:52 ` [PATCH] Fix casting on architectures with 32-bit pointers/longs Simon Holm Thøgersen
2007-12-10 19:46 ` syslets v7: back to basics Jens Axboe
2007-12-10 21:30 ` Phillip Susi
2007-12-10 22:15 ` Zach Brown
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=Pine.LNX.4.64.0801091503270.13306@alien.or.mcafeemobile.com \
--to=davidel@xmailserver.org \
--cc=akpm@zip.com.au \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arjan@infradead.org \
--cc=dan.j.williams@gmail.com \
--cc=davem@davemloft.net \
--cc=drepper@redhat.com \
--cc=jens.axboe@oracle.com \
--cc=jmoyer@redhat.com \
--cc=johnpol@2ka.mipt.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=odie@cs.aau.dk \
--cc=rusty@rustcorp.com.au \
--cc=suparna@in.ibm.com \
--cc=suresh.b.siddha@intel.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=zach.brown@oracle.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;
as well as URLs for NNTP newsgroup(s).