All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Evgeniy Polyakov <zbr@ioremap.net>
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: Wed, 14 Jan 2009 21:58:10 -0800	[thread overview]
Message-ID: <20090114215810.674569fc.akpm@linux-foundation.org> (raw)
In-Reply-To: <1231887933-17843-5-git-send-email-zbr@ioremap.net>

On Wed, 14 Jan 2009 02:05:30 +0300 Evgeniy Polyakov <zbr@ioremap.net> 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

2: David Howells' "slow work" infrastructure

3: Arjan van de Ven's kernel/async.c

4: Your "dst thread pool"


Guys, please.  Let's get our act together here.

  parent reply	other threads:[~2009-01-15  5:58 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 [this message]
2009-01-15  8:47           ` Evgeniy Polyakov
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=20090114215810.674569fc.akpm@linux-foundation.org \
    --to=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 \
    --cc=zbr@ioremap.net \
    /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.