mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Hugh Dickins <hugh@veritas.com>
To: Mingming Cao <cmm@us.ibm.com>
Cc: Andrew Morton <akpm@osdl.org>, Mel Gorman <mel@skynet.ie>,
	"Martin J. Bligh" <mbligh@mbligh.org>,
	linux-kernel@vger.kernel.org,
	"linux-ext4@vger.kernel.org" <linux-ext4@vger.kernel.org>
Subject: Re: Boot failure with ext2 and initrds
Date: Tue, 28 Nov 2006 17:38:54 +0000 (GMT)	[thread overview]
Message-ID: <Pine.LNX.4.64.0611281659190.29701@blonde.wat.veritas.com> (raw)
In-Reply-To: <1164156193.3804.48.camel@dyn9047017103.beaverton.ibm.com>

On Tue, 21 Nov 2006, Mingming Cao wrote:
> On Mon, 2006-11-20 at 16:19 +0000, Hugh Dickins wrote:
> > After four days of running, the EM64T has at last reproduced the same
> > hang as it did in an hour before: stuck in
> > ext2_try_to_allocate_with_rsv,
> > repeatedly ext2_rsv_window_add, ext2_try_to_allocate,
> > rsv_window_remove
> > (perhaps not in that order).
> > 

At last it did happen again, on both x86_64 and ppc64.

> 
> Don't have much clue, still...:(

Don't worry, KDB helped me work it out, patch follows in a moment.

> 
> The logic of the while loop in ext2_try_to_allocate_with_rsv() looks
> like:

Thanks for your clarifications and tips.

> > 
> A bit confused, did the whole system hang or just the "ld" writer hang
> in ext2 block allocation? And what other writers were waiting for? Were
> they trying to write to the same file?

The system was pingable, but couldn't do much else.  Only the one
"ld" was active on the ext2 filesystem by this time, other tasks of
the make just waiting on it, nothing else was trying to write there.

4 cpus, well, 2*HT: why couldn't I ssh or login?  I don't know,
something else to investigate, but that can be quite separate: very
unlikely to be related to the particular ext2 bug which showed it
(that filesystem was just for the test, it's not my root).
Probably stupidly obvious once I've worked it out.

> 
> It might be helpful to check the return value of ext2_try_to_allocate(),
> to see if it fails. It would be nice if you could check if there any
> free bit inside the reservation window.

After screwing up last time, I was ultra-paranoid this time, and did
not dare to set any breakpoints: proceeded by repeatedly breaking in
from the keyboard, and the time I happened to catch it on return from
memscan() was revealing.

> 
> And could you check the start and end block for every rsv_window_add and
> rsv_window_remove, to see if it was keep creating and removing the same
> window in the same block group?

The same every time it settled on a usable reservation, but a lot of
wasted adds and removes as it works across a fully allocated area of
the bitmap.  Not very efficient, all those rb_tree insertions and
removals until it gets to a free area; but I can't judge from this
example how common that would be, may not be worth bothering about.

> 
> And it might be useful to dump the whole filesystem block reservation
> tree as well.

Not necessary, I've put just the relevant numbers in the patch comment,
it helped me a lot to see the actual numbers and work it out from there.

> 
> Not sure if it worth the effort to test it on ext3.  The ext2 block
> reservation code in 2.6.19-rc5-mm2 looks pretty much the same as ext3/4,
> except the missing truncate_mutex. I understand this might take a few
> days to reproduce, so this might not needed now.

Turns out vanilla-ext2 and ext3 and ext4 are safe:
ext3 and ext4 slightly wrong in the same way, but safe.

I'll continue this thread with the bugfix patch 1/6; and five more
(roughly descending order of importance, the latter just cosmetic)
little fs/ext2/balloc.c patches to things I noticed on the way.
Nothing very worrying.  Easier to send patches than ask questions:
please check, perhaps my "off-by-one" accusations are wrong, for
example.  If you're satisfied they're right, please apply the
same to ext3 and ext4.
 
Although 1/6 does (I believe: too early for my tests to tell)
fix the bug in a minimal way, I rather think that area needs
cleanup - further comments below my Signed-off-by in 1/6.

Hugh

  reply	other threads:[~2006-11-28 20:27 UTC|newest]

Thread overview: 185+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-14  9:41 2.6.19-rc5-mm2 Andrew Morton
2006-11-14 11:11 ` 2.6.19-rc5-mm2 Jiri Slaby
2006-11-14 11:54   ` 2.6.19-rc5-mm2 Jiri Slaby
2006-11-14 11:31 ` 2.6.19-rc5-mm2 Reuben Farrelly
2006-11-14 17:00   ` 2.6.19-rc5-mm2 Gautham R Shenoy
2006-11-14 20:58     ` 2.6.19-rc5-mm2 Mattia Dongili
2006-11-15 10:34       ` 2.6.19-rc5-mm2 Gautham R Shenoy
2006-11-15 10:42         ` 2.6.19-rc5-mm2 Reuben Farrelly
2006-11-14 12:46 ` 2.6.19-rc5-mm2 Mariusz Kozlowski
2006-11-14 13:07   ` 2.6.19-rc5-mm2 Mariusz Kozlowski
2006-11-14 16:41   ` 2.6.19-rc5-mm2 Andrew Morton
2006-11-14 17:09     ` 2.6.19-rc5-mm2 Andrew Morton
2006-11-14 19:23       ` 2.6.19-rc5-mm2 Mariusz Kozlowski
2006-11-14 13:50 ` 2.6.19-rc5-mm2 Eric Dumazet
2006-11-14 18:33 ` [-mm patch] fix the DLM dependencies Adrian Bunk
2006-11-14 22:56   ` [-mm patch] fix the DLM dependencies, part 2 Adrian Bunk
2006-11-15 10:11     ` Patrick Caulfield
2006-11-15 10:23       ` Adrian Bunk
2006-11-14 18:49 ` Boot failure with ext2 and initrds Mel Gorman
2006-11-14 19:08   ` Martin Bligh
2006-11-14 19:11   ` Hugh Dickins
2006-11-14 19:21     ` Martin Bligh
2006-11-14 20:20       ` Hugh Dickins
2006-11-14 20:30         ` Martin Bligh
2006-11-14 19:31     ` Andrew Morton
2006-11-14 21:18       ` Hugh Dickins
2006-11-14 21:19         ` Martin Bligh
2006-11-15 14:17         ` Hugh Dickins
2006-11-15 15:32           ` Martin J. Bligh
2006-11-15 15:56             ` Hugh Dickins
2006-11-16  5:45           ` Andrew Morton
2006-11-16  6:39             ` Andrew Morton
2006-11-16  6:55             ` Mingming Cao
2006-11-16  7:22               ` Andrew Morton
2006-11-16  8:49                 ` Mingming Cao
2006-11-16  9:13                   ` Andrew Morton
2006-11-16  9:37                     ` Alex Tomas
2006-11-16  9:48                       ` Andrew Morton
2006-11-16  9:49                         ` Andrew Morton
2006-11-16 16:26                     ` Hugh Dickins
2006-11-16 20:15                     ` Mingming Cao
2006-11-16 21:27                       ` Andrew Morton
2006-11-20 16:19                         ` Hugh Dickins
2006-11-20 20:54                           ` Hugh Dickins
2006-11-21  1:36                             ` Mingming Cao
2006-11-21  1:47                           ` Mingming Cao
2006-11-21  5:39                             ` Hugh Dickins
2006-11-22  0:43                               ` Mingming Cao
2006-11-28 17:38                                 ` Hugh Dickins [this message]
2006-11-28 17:40                                   ` [PATCH 1/6] ext2 balloc: fix _with_rsv freeze Hugh Dickins
2006-11-28 19:26                                     ` Mingming Cao
2006-11-28 20:07                                       ` Hugh Dickins
2006-11-29  0:42                                         ` Mingming Cao
2006-11-29  4:14                                     ` [PATCH 6/12] " Mingming Cao
2006-11-29  4:15                                     ` [PATCH 12/12] ext3 " Mingming Cao
2006-11-28 17:40                                   ` [PATCH 2/6] ext2 balloc: reset windowsz when full Hugh Dickins
2006-11-28 19:36                                     ` Mingming Cao
2006-11-29  4:14                                     ` [PATCH 2/12] ext3 balloc: fix off-by-one against grp_goal Mingming Cao
2006-11-29  4:15                                     ` [PATCH 8/12] ext4 " Mingming Cao
2006-11-28 17:41                                   ` [PATCH 3/6] ext2 balloc: fix off-by-one against rsv_end Hugh Dickins
2006-11-28 19:42                                     ` Mingming Cao
2006-11-28 17:42                                   ` [PATCH 4/6] ext2 balloc: fix off-by-one against grp_goal Hugh Dickins
2006-11-28 23:30                                     ` Mingming Cao
2006-11-29  4:13                                     ` [PATCH 1/12] ext3 balloc: reset windowsz when full Mingming Cao
2006-11-29  5:46                                       ` Hugh Dickins
2006-11-29  4:14                                     ` [PATCH 3/12] ext3 balloc: fix off-by-one against rsv_end Mingming Cao
2006-11-29  4:14                                     ` [PATCH 7/12] ext4 balloc: reset windowsz when full Mingming Cao
2006-11-29  4:15                                     ` [PATCH 9/12] ext4 balloc: fix off-by-one against rsv_end Mingming Cao
2006-11-28 17:43                                   ` [PATCH 5/6] ext2 balloc: say rb_entry not list_entry Hugh Dickins
2006-11-28 23:30                                     ` Mingming Cao
2006-11-29  4:14                                     ` [PATCH 4/12] ext3 " Mingming Cao
2006-11-29  4:15                                     ` [PATCH 10/12] ext4 " Mingming Cao
2006-11-28 17:44                                   ` [PATCH 6/6] ext2 balloc: use io_error label Hugh Dickins
2006-11-28 23:31                                     ` Mingming Cao
2006-11-29  4:14                                     ` [PATCH 5/12] ext3 " Mingming Cao
2006-11-29  4:15                                     ` [PATCH 11/12] ext4 " Mingming Cao
2006-11-28 21:04                                   ` Boot failure with ext2 and initrds Mingming Cao
2006-11-28 22:33                                     ` Andrew Morton
2006-11-28 23:38                                       ` Mingming Cao
2006-11-16 12:34                 ` Russell King
2006-11-25 14:59                   ` Russell King
2006-11-29  7:40                     ` Russell King
2006-11-29  8:30                       ` Andrew Morton
2006-11-29  9:20                         ` Russell King
2006-11-29  9:39                           ` Andrew Morton
2006-11-29 18:16                             ` Russell King
2006-11-14 21:19       ` Mel Gorman
2006-11-15  0:25       ` Andy Whitcroft
2006-11-15  0:58         ` Andrew Morton
2006-11-15 23:54           ` Andy Whitcroft
2006-11-16  9:05       ` Mingming Cao
2006-11-14 20:02 ` 2.6.19-rc5-mm2: no help text for FAULT_INJECTION Adrian Bunk
2006-11-14 21:12   ` [PATCH -mm] CONFIG_FAULT_INJECTION help text Akinobu Mita
2006-11-14 21:15     ` [PATCH -mm] failslab: remove __GFP_HIGHMEM filtering Akinobu Mita
2006-11-14 22:56 ` 2.6.19-rc5-mm2: warnings in MODPOST and later Adrian Bunk
2006-11-14 23:09   ` Andrew Morton
2006-11-15  7:42     ` Arjan van de Ven
2006-11-14 23:13 ` and in www.kernel.org page? Re: 2.6.19-rc5-mm2 Sergio Monteiro Basto
2006-11-15 23:16 ` 2.6.19-rc5-mm2: paravirt X86_PAE=y compile error Adrian Bunk
2006-11-15 23:36   ` Andrew Morton
2006-11-16  1:30     ` Zachary Amsden
2006-11-16  2:27       ` Chris Wright
2006-11-16  7:05         ` Andi Kleen
2006-11-28 23:36     ` Randy Dunlap
2006-11-16 12:16 ` [-mm patch] remove arch/i386/kernel/time_hpet.c:hpet_reenable() Adrian Bunk
2006-11-16 17:17 ` 2.6.19-rc5-mm2 Mattia Dongili
2006-11-16 18:29   ` 2.6.19-rc5-mm2 Stefan Richter
2006-11-16 20:39     ` 2.6.19-rc5-mm2 Mattia Dongili
2006-11-16 22:50       ` 2.6.19-rc5-mm2 Stefan Richter
2006-11-17  7:16         ` 2.6.19-rc5-mm2 Mattia Dongili
2006-11-17 15:02           ` 2.6.19-rc5-mm2 Stefan Richter
2006-11-17 15:24             ` 2.6.19-rc5-mm2 (Oops in class_device_remove_attrs during nodemgr_remove_host) Stefan Richter
2006-11-18  9:47               ` Greg KH
2006-11-18 11:27                 ` Stefan Richter
2006-11-18 17:07                   ` Stefan Richter
2006-11-18 21:45                     ` Stefan Richter
2006-11-18 22:08                       ` Stefan Richter
2006-11-19  8:56                       ` Mattia Dongili
2006-11-19 16:22                       ` ohci1394 oops bisected [was Re: 2.6.19-rc5-mm2 (Oops in class_device_remove_attrs during nodemgr_remove_host)] Mattia Dongili
2006-11-19 17:13                         ` Stefan Richter
2006-11-19 20:33                           ` Andrew Morton
2006-11-19 21:01                             ` Stefan Richter
2006-11-24  8:41                               ` Greg KH
2006-11-24 17:13                                 ` Stefan Richter
2006-11-19 17:14                         ` Gene Heskett
2006-11-19 18:07                           ` Kino segfault (was Re: ohci1394 oops bisected) Stefan Richter
2006-11-19 20:11                             ` Gene Heskett
2006-11-17  1:19 ` [-mm patch] crypto/xcbc.c: make some code static Adrian Bunk
2006-11-17  2:44   ` Herbert Xu
2006-11-17  1:19 ` [-mm patch] make drivers/acpi/bay.c:drive_bays static Adrian Bunk
2006-11-17  1:19 ` [-mm patch] make drivers/base/core.c:setup_parent() static Adrian Bunk
2006-11-17  1:19 ` [-mm patch] make geode_aes_crypt() static Adrian Bunk
2006-11-17 12:42 ` -mm: cx88-blackbird.c: unused code re-added Adrian Bunk
2006-11-17 13:53   ` [v4l-dvb-maintainer] " Michael Krufky
2006-11-17 14:13   ` Mauro Carvalho Chehab
2006-11-17 14:21 ` [-mm patch] drivers/media/video/cafe_ccic.c: make a function static Adrian Bunk
2006-11-17 14:21 ` [-mm patch] remove drivers/pci/search.c:pci_find_device_reverse() Adrian Bunk
2006-11-17 14:32   ` Alan Cox
2006-11-18  0:06     ` [2.6 patch] mark pci_find_device() as __deprecated Adrian Bunk
2006-11-18  1:42       ` Alan
2006-11-19  9:47       ` Arjan van de Ven
2006-11-19  9:52         ` Muli Ben-Yehuda
2006-11-19 10:01           ` Arjan van de Ven
2006-11-19 14:06           ` Adrian Bunk
2006-11-19 15:24             ` Muli Ben-Yehuda
2006-11-19 15:49               ` Adrian Bunk
2006-11-19 16:50               ` Arjan van de Ven
2006-11-19 14:04         ` Adrian Bunk
2006-11-19 14:13           ` Arjan van de Ven
2006-11-19 14:27             ` Adrian Bunk
2006-11-17 19:54   ` [-mm patch] remove drivers/pci/search.c:pci_find_device_reverse() Andrew Morton
2006-11-17 20:33     ` Adrian Bunk
2006-11-17 22:16     ` Alan Cox
2006-11-19  9:44     ` Arjan van de Ven
2006-11-17 17:02 ` [-mm patch] make net/core/skbuff.c:skb_over_panic() static Adrian Bunk
2006-11-21  0:55   ` David Miller
2006-11-21  1:37     ` Andrew Morton
2006-11-21  1:40       ` David Miller
2006-11-21  1:39     ` David Miller
2006-11-17 17:02 ` [-mm patch] security/slim/slm_main.c: make 2 functions static Adrian Bunk
2006-11-17 23:58 ` [-mm patch] make sound/pci/hda/patch_sigmatel.c:stac92xx_dmic_labels[] static Adrian Bunk
2006-11-20 16:44   ` [Alsa-devel] " Takashi Iwai
2006-11-17 23:58 ` [-mm patch] make mm/thrash.c:global_faults static Adrian Bunk
2006-11-17 23:59 ` [RFC: -mm patch] remove kernel/timer.c:wall_jiffies Adrian Bunk
2006-11-18  7:00   ` Ingo Molnar
2006-11-17 23:59 ` [RFC: -mm patch] make kernel/timer.c:__next_timer_interrupt() static Adrian Bunk
2006-11-18  6:58   ` Ingo Molnar
2006-11-20  2:23 ` [-mm patch] drivers/scsi/scsi_scan.c: make 2 functions static Adrian Bunk
2006-11-20  2:34   ` Matthew Wilcox
2006-11-20  2:24 ` [-mm patch] fs/dlm/lowcomms-tcp.c: remove 2 functions Adrian Bunk
2006-11-20  2:24 ` [-mm patch] make ext2_get_blocks() static Adrian Bunk
2006-11-20  2:24 ` [-mm patch] fs/reiser4/: possible cleanups Adrian Bunk
2006-11-21 18:37 ` -mm: please drop reiser4-export-handle_ra_miss.patch Adrian Bunk
2006-11-21 19:42 ` [-mm patch] unexport {,__}remove_from_page_cache Adrian Bunk
2006-11-22  3:23 ` 2.6.19-rc5-mm2: suspend related BLOCK=n compile error Adrian Bunk
2006-11-22  3:34   ` Randy Dunlap
2006-11-22 11:20     ` Rafael J. Wysocki
2006-11-22  4:17 ` [-mm patch] CACHEFILES must depend on PROC_FS Adrian Bunk
2006-11-22  4:35   ` Randy Dunlap
2006-11-22  4:17 ` [-mm patch] fs/fscache/main.c: cleanups Adrian Bunk
2006-11-22  4:38 ` [-mm patch] drivers/mtd/nand/rtc_from4.c: use lib/bitrev.c Adrian Bunk
2006-11-28 22:19   ` David Woodhouse
2006-11-28 22:49     ` Andrew Morton
2006-11-28 22:52       ` David Woodhouse
2006-11-29  0:09         ` Andrew Morton

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=Pine.LNX.4.64.0611281659190.29701@blonde.wat.veritas.com \
    --to=hugh@veritas.com \
    --cc=akpm@osdl.org \
    --cc=cmm@us.ibm.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mbligh@mbligh.org \
    --cc=mel@skynet.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

all inboxes | Powered by JetHome®