mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Nikita Danilov <nikita@clusterfs.com>
To: "Ananiev, Leonid I" <leonid.i.ananiev@intel.com>
Cc: "Bret Towe" <magnade@gmail.com>,
	"Linux Kernel Mailing List" <Linux-Kernel@vger.kernel.org>
Subject: Re: [PATCH] mm: moving dirty pages balancing to pdfludh entirely
Date: Thu, 6 Jul 2006 19:16:59 +0400	[thread overview]
Message-ID: <17581.10603.204276.252774@gargle.gargle.HOWL> (raw)
In-Reply-To: <B41635854730A14CA71C92B36EC22AAC06D204@mssmsx411>

Ananiev, Leonid I writes:
 > Nikita Danilov writes:
 > > You are inhumane. :-)
 > OK. A lame argument was a joke.
 > 
 > > No. User thread will not write _all_ dirty pages (if it does---it's a
 > > bug in the current code and should be fixed):
 > 
 > Some bugs are fixed by the patch.
 > Current kernel generates pdflush thread unlimitedly. It was patched up
 > by introducing MAX_PDFLUSH_THREADS=8. Why just 8? Now

Sorry, I don't understand. pdflush.c appeared in 2.5.8 and

#define MAX_PDFLUSH_THREADS    8

was here from the very beginning: http://www.kernelhq.cc/browse-view.py?fv_nr=107897

 > MAX_PDFLUSH_THREADS still present. But it could be removed.
 > Unlimited thread generation is fixed in proposed patch.
 > 
 > Now we are discussing other wonderful constant write_chunk=48. Why 48?

This is explained in comment just above sync_writeback_pages()
definition. Basically, ratelimit_pages pages might be dirtied between
calls to balance_dirty_pages(), and the latter tries to write out *more*
pages to keep number of dirty pages under control: negative feedback
control loop, of sorts.

 > The patch deletes this magic constant using:
 > -			.nr_to_write	= write_chunk,
 > It was needed in user thread only.
 > 
 > If user thread A writes 1 byte into disk it has to write not all but 48
 > dirty pages. User main work is paused. User thread B continues
 > generating of dirty pages. Thread B is main generator of dirty pages.
 > Thread A found was able to write-out 47 pages only because user B locks
 > inodes. That is why user A forced to wait 0.1 sec and than repeat
 > compulsory community works. User thread lunch wide inodes scanning and
 > list creating but interrupted after 48 pages. It is inefficient method. 

It may so happen, right, but in the long term most of writeback will be
performed by thread B, because, being heavy writer, it will enter
balance_dirty_pages() more often than A.

If you want to get rid of write latencies, you need better accounting,
to know what pages were dirtied by the current thread (or at least their
number), so that synchronous writeback can be fairer.

[...]

 > 
 > Leonid

Nikita.


  reply	other threads:[~2006-07-06 15:21 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-06 13:54 Ananiev, Leonid I
2006-07-06 15:16 ` Nikita Danilov [this message]
  -- strict thread matches above, loose matches on Subject: below --
2006-07-06 21:07 Ananiev, Leonid I
2006-07-06 16:33 Ananiev, Leonid I
2006-07-06 17:37 ` Nikita Danilov
2006-07-06 11:47 Ananiev, Leonid I
2006-07-06  4:30 Ananiev, Leonid I
2006-07-06  6:34 ` Nikita Danilov
2006-07-05 19:50 Ananiev, Leonid I
2006-07-05 20:05 ` Nikita Danilov
2006-07-05 19:28 Ananiev, Leonid I
2006-07-05 20:14 ` Nikita Danilov
2006-07-05 18:10 Ananiev, Leonid I
2006-07-05 19:07 ` Nikita Danilov
2006-07-05 15:48 Ananiev, Leonid I
2006-07-05 14:28 Ananiev, Leonid I
2006-07-05 14:57 ` Nikita Danilov
2006-07-05  5:40 Ananiev, Leonid I
2006-07-05 10:17 ` Nikita Danilov
2006-07-04 19:12 Ananiev, Leonid I
2006-07-04 20:20 ` Nikita Danilov
2006-07-04 22:24   ` Bret Towe
2006-07-05 10:20     ` Nikita Danilov
2006-07-05 17:19       ` Bret Towe
     [not found] <B41635854730A14CA71C92B36EC22AAC0541F6@mssmsx411>
2006-07-04 13:12 ` Nikita Danilov
2006-07-04 13:07 Ananiev, Leonid I
2006-07-04 11:43 Ananiev, Leonid I
2006-07-04 11:56 ` Nikita Danilov
2006-07-04  9:55 Nikita Danilov
2006-07-04  9:44 Ananiev, Leonid I
2006-07-04  8:35 Ananiev, Leonid I
2006-07-03 16:43 Ananiev, Leonid I
2006-07-04  8:32 ` Nikita Danilov
2006-06-27  5:31 Ananiev, Leonid I
2006-06-28 11:33 ` Nikita Danilov
2006-07-03 17:31   ` Antonio Vargas

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=17581.10603.204276.252774@gargle.gargle.HOWL \
    --to=nikita@clusterfs.com \
    --cc=Linux-Kernel@vger.kernel.org \
    --cc=leonid.i.ananiev@intel.com \
    --cc=magnade@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®