linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Evgeniy Polyakov <zbr@ioremap.net>
To: Arjan van de Ven <arjan@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Grissiom <chaos.proton@gmail.com>,
	linux-kernel@vger.kernel.org,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Dave Kleikamp <shaggy@linux.vnet.ibm.com>
Subject: Re: [PATCH] async: Don't call async_synchronize_full_special() while holding sb_lock
Date: Fri, 9 Jan 2009 15:31:41 +0300	[thread overview]
Message-ID: <20090109123140.GA18948@ioremap.net> (raw)
In-Reply-To: <20090108225050.GL9448@disturbed>

Hi Arjan.

Likely my mail is in your blacklist that's why you did not reply on
comment on the discussion about this async interface month or so ago :)

Anyway, what you did for the boot process should be only there, but vfs
changes have to be discussed in fsdevel.

For example generic_delete_inode() does not delete inode anymore,
instead it queues the work to the set of threads, serialized by the
global spinlock and atomic variables, allocating additional structure
for this not from the memory pool or at least memory cache, but
directly via slab.
This atomic allocation thus may be invoked during the cache shrink
path to free some memory, which is not a good idea. So if you do insist
that deletion of every inode should be async, at least shrink size of
the async_event and embed it into the inode, or use memory pool.

Just several other notes on the code.

__async_schedule() could first check amount of pending requests and
do not allocate and free the entry if all threads are busy.

entry processing code run_one_entry() should not free entry under the
irq-off lock.

Thread start routing should check if thread successfully started before
increasing number of the running thread, or this can be done in the
thread callback itself.

-- 
	Evgeniy Polyakov

  parent reply	other threads:[~2009-01-09 12:31 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <a0adeea50901080007q5a3ed5c8y5a744ce37e677325@mail.gmail.com>
2009-01-08 14:37 ` "BUG: scheduling while atomic: pdflush/30/0x00000002" in latest git Dave Kleikamp
2009-01-08 15:21   ` Arjan van de Ven
2009-01-08 15:46     ` [PATCH] async: Don't call async_synchronize_full_special() while holding sb_lock Dave Kleikamp
2009-01-08 22:50       ` Dave Chinner
2009-01-08 22:51         ` Arjan van de Ven
2009-01-09  0:32           ` Alan Cox
2009-01-09  0:38             ` Arjan van de Ven
2009-01-09  1:40           ` Dave Chinner
2009-01-09  4:45             ` Arjan van de Ven
2009-01-09  8:22               ` Dave Chinner
2009-01-09 15:09                 ` Chris Mason
2009-01-12  2:31               ` Jamie Lokier
2009-01-12  3:54                 ` Arjan van de Ven
2009-01-12  7:55                   ` Dave Chinner
2009-01-12  7:48                 ` Dave Chinner
2009-01-09 12:31         ` Evgeniy Polyakov [this message]
2009-01-09  5:18   ` "BUG: scheduling while atomic: pdflush/30/0x00000002" in latest git Grissiom

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=20090109123140.GA18948@ioremap.net \
    --to=zbr@ioremap.net \
    --cc=arjan@linux.intel.com \
    --cc=chaos.proton@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=shaggy@linux.vnet.ibm.com \
    --cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).