From: Evgeniy Polyakov <zbr@ioremap.net>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Greg KH <greg@kroah.com>,
linux-kernel@vger.kernel.org, dst@ioremap.net,
Arjan van de Ven <arjan@infradead.org>,
David Howells <dhowells@redhat.com>
Subject: Re: [4/7] dst: thread pool.
Date: Thu, 15 Jan 2009 11:47:16 +0300 [thread overview]
Message-ID: <20090115084716.GB29586@ioremap.net> (raw)
In-Reply-To: <20090114215810.674569fc.akpm@linux-foundation.org>
Hi Andrew.
On Wed, Jan 14, 2009 at 09:58:10PM -0800, Andrew Morton (akpm@linux-foundation.org) wrote:
> > Kernel currently does not allow to queue work into some entity which
> > will perform it in the process context and have simple way to extend
> > number of worker and work with them not as separate objects, but with
> > pool as a whole. So thread pool model was implemented in the DST.
> >
> > Thread pool abstraction allows to schedule a work to be performed
> > on behalf of kernel thread. One does not operate with threads itself,
> > instead user provides setup and cleanup callbacks for thread pool itself,
> > and action and cleanup callbacks for each submitted work.
> >
> > Each worker has private data initialized at creation time and data,
> > provided by user at scheduling time.
> >
> > When action is being performed, thread can not be used by other users,
> > instead they will sleep until there is free thread to pick their work.
> >
> > Thread pool is used for crypto processing of incoming and outgoing IO
> > requests to reduce the overall overhead.
>
> This is at least our fourth thread pool implementation, not counting
> kernel/workqueue.c:
>
> 1: pdflush
It is not really a pool of threads. But its works is somewhat similar.
> 2: David Howells' "slow work" infrastructure
I did not check it, it was not sent to fsdevel and only couple of
replies sneaked, according to them there are questionable cases (like
lots of global variables), but overall I can not say more.
> 3: Arjan van de Ven's kernel/async.c
Arjan does not answer to the mails. I sent him a review with
constructive critics, but it got lost in the void :)
> 4: Your "dst thread pool"
This one is rather simple case: set of thrads and blocking callbacks to
add the work.
--
Evgeniy Polyakov
next prev parent reply other threads:[~2009-01-15 8:47 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-13 23:05 [0/7] Distributed storage for drivers/staging merge request Evgeniy Polyakov
2009-01-13 23:05 ` [1/7] dst: core files Evgeniy Polyakov
2009-01-13 23:05 ` [2/7] dst: network state machine Evgeniy Polyakov
2009-01-13 23:05 ` [3/7] dst: export node Evgeniy Polyakov
2009-01-13 23:05 ` [4/7] dst: thread pool Evgeniy Polyakov
2009-01-13 23:05 ` [5/7] dst: transactions Evgeniy Polyakov
2009-01-13 23:05 ` [6/7] dst: crypto processing Evgeniy Polyakov
2009-01-13 23:05 ` [7/7] dst: kconfig and makefile changes Evgeniy Polyakov
2009-01-13 23:09 ` [8/7] dst: kconfig update Evgeniy Polyakov
2009-01-14 2:22 ` Randy Dunlap
2009-01-14 9:09 ` Evgeniy Polyakov
2009-01-14 2:22 ` [7/7] dst: kconfig and makefile changes Randy Dunlap
2009-01-14 14:46 ` [4/7] dst: thread pool Frederik Deweerdt
2009-01-14 15:01 ` Evgeniy Polyakov
2009-01-15 5:58 ` Andrew Morton
2009-01-15 8:47 ` Evgeniy Polyakov [this message]
2009-01-19 0:10 ` Arjan van de Ven
2009-01-19 17:07 ` Evgeniy Polyakov
2009-02-05 13:55 ` David Howells
2009-01-14 14:52 ` [3/7] dst: export node Jens Axboe
2009-01-14 15:11 ` Evgeniy Polyakov
2009-01-13 23:39 ` [0/7] Distributed storage for drivers/staging merge request Greg KH
2009-01-13 23:47 ` Evgeniy Polyakov
2009-01-14 0:01 ` Greg KH
2009-01-14 0:08 ` Evgeniy Polyakov
2009-01-14 0:12 ` Andrew Morton
2009-01-14 0:15 ` Evgeniy Polyakov
2009-01-14 0:20 ` Evgeniy Polyakov
2009-01-14 0:23 ` Andrew Morton
2009-01-14 0:24 ` Evgeniy Polyakov
2009-01-14 9:39 ` Jeff Garzik
-- strict thread matches above, loose matches on Subject: below --
2008-12-26 11:56 [0/7] Distributed storage release Evgeniy Polyakov
2008-12-26 11:56 ` [1/7] dst: core files Evgeniy Polyakov
2008-12-26 11:56 ` [2/7] dst: network state machine Evgeniy Polyakov
2008-12-26 11:56 ` [3/7] dst: export node Evgeniy Polyakov
2008-12-26 11:56 ` [4/7] dst: thread pool Evgeniy Polyakov
2008-12-17 13:53 [0/7] dst: new release introduction Evgeniy Polyakov
2008-12-17 13:53 ` [1/7] dst: core files Evgeniy Polyakov
2008-12-17 13:53 ` [2/7] dst: network state machine Evgeniy Polyakov
2008-12-17 13:53 ` [3/7] dst: export node Evgeniy Polyakov
2008-12-17 13:53 ` [4/7] dst: thread pool Evgeniy Polyakov
2008-12-17 15:55 ` Arnd Bergmann
2008-12-17 20:03 ` Benjamin Herrenschmidt
2008-12-17 23:32 ` Evgeniy Polyakov
2008-12-18 0:51 ` Benjamin Herrenschmidt
2008-12-18 8:10 ` Evgeniy Polyakov
2008-12-18 9:44 ` Arnd Bergmann
2008-12-17 23:39 ` Evgeniy Polyakov
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=20090115084716.GB29586@ioremap.net \
--to=zbr@ioremap.net \
--cc=akpm@linux-foundation.org \
--cc=arjan@infradead.org \
--cc=dhowells@redhat.com \
--cc=dst@ioremap.net \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
/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.