Re: [PATCH 2 of 4] Introduce i386 fibril scheduling
From: Davide Libenzi
Date: Mon Feb 05 2007 - 19:15:51 EST
On Mon, 5 Feb 2007, David Miller wrote:
> From: Davide Libenzi <davidel@xxxxxxxxxxxxxxx>
> Date: Mon, 5 Feb 2007 10:24:34 -0800 (PST)
>
> > Yes, no need for the above. We can just host a poll/epoll in an async()
> > operation, and demultiplex once that gets ready.
>
> I can hear Evgeniy crying 8,000 miles away.
>
> I strongly encourage a lot of folks commenting in this thread to
> familiarize themselves with kevent and how it handles this stuff. I
> see a lot of suggestions for things he has totally implemented and
> solved already in kevent.
David, I'm sorry but I only briefly looked at the work Evgeniy did on
kevent. So excuse me if I say something broken in the next few sentences.
Zab's async syscall interface is a pretty simple one. It accepts the
syscall number, the parameters for the syscall, and a cookie. It returns a
syscall result code, and your cookie (that's the meat of it, at least).
IMO its interface should be optimized for what it does.
Could this submission/retrieval be inglobated inside a "generic"
submission/retrieval API? Sure you can. But then you end up having
submission/event structures with 17 members, 3 of which are valid at each
time. The API becomes more difficult to use IMO, because suddendly you
have to know which field are good for each event you're submitting/fetching.
IMHO, genericity can be built in userspace, *if* one really wants it and,
of course, provided that the OS gives you the tools to build it.
The problem before, was that it was hard to bridge something like poll/epoll
with other "by nature" sync operations. Evgeniy kevent is one attempt,
Zab's async is another one. IMO the async syscall is a *very poweful* one,
since it allows for *total coverage* async support w/out "plugs" all over
the kernel paths.
But as Zab said, the kernel implementation is more important ATM.
- Davide
-
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/