[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070215165151.GA4285@elte.hu>
Date: Thu, 15 Feb 2007 17:51:51 +0100
From: Ingo Molnar <mingo@...e.hu>
To: linux-kernel@...r.kernel.org
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Arjan van de Ven <arjan@...radead.org>,
Christoph Hellwig <hch@...radead.org>,
Andrew Morton <akpm@....com.au>,
Alan Cox <alan@...rguk.ukuu.org.uk>,
Ulrich Drepper <drepper@...hat.com>,
Zach Brown <zach.brown@...cle.com>,
Evgeniy Polyakov <johnpol@....mipt.ru>,
"David S. Miller" <davem@...emloft.net>,
Suparna Bhattacharya <suparna@...ibm.com>,
Davide Libenzi <davidel@...ilserver.org>,
Thomas Gleixner <tglx@...utronix.de>
Subject: [patch 00/14] Syslets, generic asynchronous system call support, v2
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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists