Re: [patch 00/11] ANNOUNCE: "Syslets", generic asynchronous system call support
- From: Evgeniy Polyakov <johnpol@xxxxxxxxxxx>
- Date: Tue, 13 Feb 2007 21:56:38 +0300
On Tue, Feb 13, 2007 at 05:56:42PM +0100, Ingo Molnar (mingo@xxxxxxx) wrote:
* Benjamin LaHaise <bcrl@xxxxxxxxx> wrote:
Open issues:
Let me add some more
Also: FPU state (especially important with the FPU and SSE memory copy
variants), segment register bases on x86-64, interaction with
set_fs()...
agreed - i'll fix this. But i can see no big conceptual issue here -
these resources are all attached to the user context, and that doesnt
change upon an 'async context-switch'. So it's "only" a matter of
properly separating the user execution context from the kernel execution
context. The hardest bit was getting the ptregs details right - the
FPU/SSE state is pretty much async already (in the hardware too) and
isnt even touched by any of these codepaths.
Good work, Ingo.
I have not received first mail with announcement yet, so I will place
my thoughts here if you do not mind.
First one is per-thread data like TID. What about TLS related kernel
data (is non-exec stack property stored in TLS block or in kernel)?
Should it be copied with regs too (or better introduce new clone flag,
which would force that info copy)?
Btw, does SSE?/MMX?/call-it-yourself really saved on context switch?
As far as I can see no syscalls (and kernel at all) use that registers.
Another one is more global AIO question - while this approach IMHO
outperforms micro-thread design (Zach and Linus created really good
starting points, but they too have fundamental limiting factor), it
still has a problem - syscall blocks and the same thread thus is not
allowed to continue execution and fill the pipe - so what if system
issues thousands of requests and there are only tens of working thread
at most. What Tux did, as far as I recall, (and some other similar
state machines do :) was to break blocking syscall issues and return
to the next execution entity (next syslet or atom). Is it possible to
extend exactly this state machine and interface to allow that (so that
some other state machine implementations would not continue its life :)?
Ingo
--
Evgeniy Polyakov
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- Re: [patch 00/11] ANNOUNCE: "Syslets", generic asynchronous system call support
- From: Ingo Molnar
- Re: [patch 00/11] ANNOUNCE: "Syslets", generic asynchronous system call support
- From: Evgeniy Polyakov
- Re: [patch 00/11] ANNOUNCE: "Syslets", generic asynchronous system call support
- References:
- [patch 00/11] ANNOUNCE: "Syslets", generic asynchronous system call support
- From: Ingo Molnar
- Re: [patch 00/11] ANNOUNCE: "Syslets", generic asynchronous system call support
- From: Alan
- Re: [patch 00/11] ANNOUNCE: "Syslets", generic asynchronous system call support
- From: Benjamin LaHaise
- Re: [patch 00/11] ANNOUNCE: "Syslets", generic asynchronous system call support
- From: Ingo Molnar
- [patch 00/11] ANNOUNCE: "Syslets", generic asynchronous system call support
- Prev by Date: Re: [PATCH] mfd: SM501 core driver (#3)
- Next by Date: Re: somebody dropped a (warning) bomb
- Previous by thread: Re: [patch 00/11] ANNOUNCE: "Syslets", generic asynchronous system call support
- Next by thread: Re: [patch 00/11] ANNOUNCE: "Syslets", generic asynchronous system call support
- Index(es):
Relevant Pages
|