From: Ingo Molnar <mingo@elte.hu>
To: linux-kernel@vger.kernel.org
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Arjan van de Ven <arjan@infradead.org>,
Christoph Hellwig <hch@infradead.org>,
Andrew Morton <akpm@zip.com.au>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
Ulrich Drepper <drepper@redhat.com>,
Zach Brown <zach.brown@oracle.com>,
Evgeniy Polyakov <johnpol@2ka.mipt.ru>,
"David S. Miller" <davem@davemloft.net>,
Suparna Bhattacharya <suparna@in.ibm.com>,
Davide Libenzi <davidel@xmailserver.org>,
Thomas Gleixner <tglx@linutronix.de>
Subject: [patch 00/14] Syslets, generic asynchronous system call support, v2
Date: Thu, 15 Feb 2007 17:51:51 +0100 [thread overview]
Message-ID: <20070215165151.GA4285@elte.hu> (raw)
this is the v2 release of the syslet subsystem. This is an interim
release, not all known and pending items are fixed/changed yet - the
tree is still work in progress:
http://redhat.com/~mingo/syslet-patches/
The biggest conceptual change in v2 is the ability of cachemiss threads
to be turned into user threads. This fixes signal handling, makes them
ptrace-eable, etc. (I've updated the sample userspace code at the URL
above to also do user-space cachemiss processing - just Ctrl-Z the
async-test.c run to trigger it action.)
Things not yet done in v2 and planned for v3:
- multiple completion rings support
- share the 'spare thread' between multiple rings, to further reduce
startup costs.
- remove mlock() reliance
Changes since v1:
- FPU support fixed: detach FPU state from kernel thread state
(implemented by Arjan van de Ven)
- remove superfluous CLONE_VM from create_async_thread()
(noticed by Jens Axboe)
- sys_umem_add() does not ignore -EFAULT of __put_user()
(noticed by Andrew Morton)
- use VERIFY_READ instead of VERIFY_WRITE in copy_uatom()
(noticed by Andrew Morton)
- move schedule() to tail of loop in cachemiss_loop()
(noticed by Andrew Morton)
- added move_user_context() arch op
- added async_syscall() and recursion protection against re-entry of
sys_async_exec(), sys_fork()/sys_clone(), etc.
- added sys_async_thread() call - a user-space thread can thus call
back into the syslet subsystem and continue cachemiss work.
- further cleanups in the include files
- race fixes to sys_async_wait()
- optimized out the kmalloc()/kfree() of the async_head
- async_thread structure not on the kernel stack anymore, to allow
async contexts to run user-space.
- added support for head_stack and head_eip to enable the initial
thread/task to run a cachemiss user context too, if it gets turned
into a cachemiss thread.
As always, comments, suggestions, reports are welcome.
Ingo
next reply other threads:[~2007-02-15 16:59 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-15 16:51 Ingo Molnar [this message]
2007-02-15 17:59 ` [patch 00/14] Syslets, generic asynchronous system call support, v2 Linus Torvalds
2007-02-18 10:31 ` Stephen Rothwell
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=20070215165151.GA4285@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@zip.com.au \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arjan@infradead.org \
--cc=davem@davemloft.net \
--cc=davidel@xmailserver.org \
--cc=drepper@redhat.com \
--cc=hch@infradead.org \
--cc=johnpol@2ka.mipt.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=suparna@in.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.