From: "Jeff V. Merkey" <jmerkey@timpanogas.com>
To: Jamie Lokier <lk@tantalophile.demon.co.uk>
Cc: linux-kernel@vger.rutgers.edu, torvalds@transmeta.com
Subject: Re: Proposal for task_queue() WorkToDo Optimization for Network File Systems
Date: Mon, 15 May 2000 13:00:27 -0600 [thread overview]
Message-ID: <3920494B.CF6C93B7@timpanogas.com> (raw)
In-Reply-To: 20000515200543.A22270@pcep-jamie.cern.ch
Jamie Lokier wrote:
>
> Jeff V. Merkey wrote:
> > Work To Do Model in NetWare
> > ---------------------------
>
> Dynamic thread creation, where when one WTD thread blocks another is
> automatically created for the next task, would be useful in user space
> too. This has been discussed before but nothing much came of it.
It's very useful for file systems that need to acquire a context for a
retry or failover operation -- fast paths in NetWare try do to as much
as possible in the interrupt service routine, and only defer a limited
class of operations to WTD's, which really speeds things up.
>
> It's my understanding that clone() thread creation is pretty fast
> already -- so if you could provide a mechanism for "when thread A blocks
> wake up (or create if you prefer) thread B" that is equally usable by
> user and kernel threads, that would be a nice mechanism for a number of
> scheduling problems.
Ditto.
>
> The other part: where an interrupt routine can schedule a task to be run
> on exit from the interrupt, is already implemented many different ways
> in Linux. Tasklets, BHs and "soft real-time" tasks all fall into this
> category.
I've seen the wondorous variety of implementations of this semantic in
the kernel code. WTD is a very generic way to do this, though. The
optimization NetWare uses, though, isn't so much in the scheduling
primitive, as in how it's used. Zero Copy Network I/O.
>
> There are some bugs in the main kernel which mean that real-time tasks
> aren't always run on time, and within the kernel, it is not preemptible
> in general. But both of these things are addressed pretty well by
> Ingo's low-latency patch, and as a mere performance optimisation that
> probably isn't required anyway.
The reason you put the current running process back on the head and not
the tail in the WTD optimization is to preserve non-preeemptive kernel
behaviors (which the linux kernel proper exhibits in many areas) and
ordering dependent code. This also always allows I/O get the highest
priority possible. I've already coded the WTD code -- just need to
splice it in at the right points.
:-)
Jeff
>
> enjoy,
> -- Jamie
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.rutgers.edu
> Please read the FAQ at http://www.tux.org/lkml/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
prev parent reply other threads:[~2000-05-15 19:10 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-05-12 3:18 Proposal for task_queue() WorkToDo Optimization for Network File Systems Jeff V. Merkey
2000-05-12 7:59 ` Derek Fawcus
2000-05-12 19:53 ` George Anzinger
2000-05-15 18:05 ` Jamie Lokier
2000-05-15 19:00 ` Jeff V. Merkey [this message]
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=3920494B.CF6C93B7@timpanogas.com \
--to=jmerkey@timpanogas.com \
--cc=linux-kernel@vger.rutgers.edu \
--cc=lk@tantalophile.demon.co.uk \
--cc=torvalds@transmeta.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.