From: ebiederm@xmission.com (Eric W. Biederman)
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/3] Preserve the dirty bit in init_page_buffers
Date: Mon, 28 May 2007 07:58:36 -0600 [thread overview]
Message-ID: <m1zm3p82yb.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <465A7894.5090101@yahoo.com.au> (Nick Piggin's message of "Mon, 28 May 2007 16:37:08 +1000")
Nick Piggin <nickpiggin@yahoo.com.au> writes:
>> Definitely, and it was a royal pain to trace the bug that this
>> caused. An initial ramdisk having pieces disappear after mkfs
>> is called can look like the entire machine is dying.
>>
>> When we initialize the ramdisk by writing to /dev/ram0 usually in
>> init/do_mounts_rd.c we don't allocate buffer heads but we do set
>> the dirty bit, and the page is in the page cache. So when we
>> later call getblk it reuses the same page and then calls
>> init_page_buffers.
>
> Hmm, the comment above grow_dev_buffers indicates this should
> not happen. But contrary to the comment, it doesn't go BUG
> unless you're attaching dirty buffers to a page with dirty
> buffers.
>
> I suspect this happens more frequently with rd.c, because unlike
> block_dev.c, it does not create dirty buffers in prepare_write.
> However it could still happen in block_dev.c via mmaped memory,
> as I said earlier.
>
> I'm not saying this patch 1/3 is wrong, but we would at least
> need to revise some comments. The grow_dev_buffers comment looks
> like one of Andrew's. Maybe he can shed some more light on this?
Good question. It sounds like you are correct.
Either we need to fix those comments or find the root
cause for the need to call cancel_dirty_page in try_to_free_buffers
and fix that.
Eric
prev parent reply other threads:[~2007-05-28 13:59 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-22 2:31 Eric W. Biederman
2007-05-22 2:36 ` [PATCH 2/3] rd: Mark ramdisk buffer heads dirty in ramdisk_set_page_dirty Eric W. Biederman
2007-05-22 2:40 ` [PATCH 3/3] rd: Simplify by using the same helper functions in libfs Eric W. Biederman
2007-05-28 4:09 ` [PATCH 1/3] Preserve the dirty bit in init_page_buffers Nick Piggin
2007-05-28 4:30 ` Eric W. Biederman
2007-05-28 4:54 ` Nick Piggin
2007-05-28 4:59 ` Nick Piggin
2007-05-28 14:05 ` Eric W. Biederman
2007-05-29 5:14 ` Nick Piggin
2007-05-29 5:28 ` Eric W. Biederman
2007-05-31 11:56 ` Eric W. Biederman
2007-05-31 15:55 ` Andrew Morton
2007-05-31 16:40 ` [PATCH] rd: Remove ramdisk_set_page_dirty Eric W. Biederman
2007-05-31 16:43 ` [PATCH] buffer: Kill old incorrect? comment Eric W. Biederman
2007-05-28 13:52 ` [PATCH 1/3] Preserve the dirty bit in init_page_buffers Eric W. Biederman
2007-05-28 6:37 ` Nick Piggin
2007-05-28 13:58 ` Eric W. Biederman [this message]
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=m1zm3p82yb.fsf@ebiederm.dsl.xmission.com \
--to=ebiederm@xmission.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nickpiggin@yahoo.com.au \
--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
all inboxes | Powered by JetHome®