linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: "Alex Villací­s Lasso" <avillaci@fiec.espol.edu.ec>
Cc: avillaci@ceibo.fiec.espol.edu.ec,
	bugzilla-daemon@bugzilla.kernel.org,
	bugme-daemon@bugzilla.kernel.org, linux-mm@kvack.org,
	Mel Gorman <mel@csn.ul.ie>
Subject: Re: [Bugme-new] [Bug 31142] New: Large write to USB stick freezes unrelated tasks for a long time
Date: Thu, 17 Mar 2011 15:25:45 -0700	[thread overview]
Message-ID: <20110317152545.adb55e3b.akpm@linux-foundation.org> (raw)
In-Reply-To: <4D8286F9.7050107@fiec.espol.edu.ec>

On Thu, 17 Mar 2011 17:11:05 -0500
Alex Villac____s Lasso <avillaci@fiec.espol.edu.ec> wrote:

> El 17/03/11 16:47, Andrew Morton escribi__:
> >
> > ah, the epic 12309.  https://bugzilla.kernel.org/show_bug.cgi?id=12309.
> > If you're ever wondering how much we suck, go read that one.
> >
> > I think what we're seeing in 31142 is a large amount of dirty data
> > buffered against a slow device.  Innocent processes enter page reclaim
> > and end up getting stuck trying to write to that heavily-queued and
> > slow device.
> >
> > If so, that's probably what some of the 12309 participants are seeing.
> > But there are lots of other things in that report too.
> >
> >
> > Now, the problem you're seeing in 31142 isn't really supposed to
> > happen.  In the direct-reclaim case the code will try to avoid
> > initiation of blocking I/O against a congested device, via the
> > bdi_write_congested() test in may_write_to_queue().  Although that code
> > now looks a bit busted for the order>PAGE_ALLOC_COSTLY_ORDER case,
> > whodidthat.
> >
> > However in the case of the new(ish) compaction/migration code I don't
> > think we're performing that test.  migrate_pages()->unmap_and_move()
> > will get stuck behind that large&slow IO queue if page reclaim decided
> > to pass it down sync==true, as it apparently has done.
> >
> > IOW, Mel broke it ;)
> >
> I don't quite follow. In my case, the congested device is the USB stick, but the affected processes should be reading/writing on the hard disk. What kind of queue(s) implementation results in pending writes to the USB stick interfering with I/O to the hard 
> disk? Or am I misunderstanding? I had the (possibly incorrect) impression that each block device had its own I/O queue.

Your web browser is just trying to allocate some memory.  As part of
that operation it entered the kernel's page reclaim and while scanning
for memory to free, page reclaim encountered a page which was queued
for IO.  Then page reclaim waited for the IO to complete against that
page.  So the browser got stuck.

Page reclaim normally tries to avoid this situation by not waiting on
such pages, unless the calling processes was itself involved in writing
to the page's device (stored in current->backing_dev_info).  But afaict
the new compaction/migration code forgot to do this.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2011-03-17 22:27 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-31142-10286@https.bugzilla.kernel.org/>
2011-03-15 20:53 ` [Bugme-new] [Bug 31142] New: Large write to USB stick freezes unrelated tasks for a long time Andrew Morton
2011-03-15 22:53   ` Alex Villací­s Lasso
2011-03-15 23:19     ` Andrew Morton
2011-03-16 15:25       ` Alex Villací­s Lasso
2011-03-16 22:02         ` Andrew Morton
2011-03-17 21:27           ` Alex Villací­s Lasso
2011-03-17 21:47             ` Andrew Morton
2011-03-17 22:11               ` Alex Villací­s Lasso
2011-03-17 22:25                 ` Andrew Morton [this message]
2011-03-18 11:13               ` Mel Gorman
2011-03-18 12:26                 ` Andrea Arcangeli
2011-03-18 18:05                 ` Alex Villací­s Lasso
2011-03-19 13:46                   ` Mel Gorman
2011-03-19 16:04                     ` Alex Villací­s Lasso
2011-03-19 23:51                       ` Andrea Arcangeli
2011-03-21  9:41                         ` Mel Gorman
2011-03-21 13:48                           ` Andrea Arcangeli
2011-03-21 15:22                             ` Alex Villací­s Lasso
2011-03-21 15:36                               ` Alex Villací­s Lasso
2011-03-21 15:40                               ` Andrea Arcangeli
2011-03-21 16:37                             ` Mel Gorman
2011-03-21 17:05                               ` Alex Villací­s Lasso
2011-03-21 20:16                                 ` Andrea Arcangeli
2011-03-21 23:35                                   ` Alex Villací­s Lasso
2011-03-22 11:20                                   ` Mel Gorman
2011-03-22 15:03                                     ` Andrea Arcangeli
2011-03-22 20:34                                       ` Alex Villací­s Lasso
2011-03-22 21:40                                         ` Andrea Arcangeli
2011-03-23  0:37                                           ` Andrea Arcangeli
2011-03-23 16:51                                             ` Alex Villací­s Lasso
2011-04-04 15:37                                               ` Alex Villací­s Lasso
2011-04-08 19:09                                                 ` Andrea Arcangeli
2011-04-08 20:06                                                   ` Alex Villací­s Lasso
2011-04-12 16:27                                                     ` Alex Villací­s Lasso
2011-04-14 17:25                                                       ` Alex Villací­s Lasso
2011-04-14 17:37                                                         ` Andrea Arcangeli

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=20110317152545.adb55e3b.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=avillaci@ceibo.fiec.espol.edu.ec \
    --cc=avillaci@fiec.espol.edu.ec \
    --cc=bugme-daemon@bugzilla.kernel.org \
    --cc=bugzilla-daemon@bugzilla.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mel@csn.ul.ie \
    /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).