From: Lars Ellenberg <lars.ellenberg@linbit.com>
To: drbd-dev@lists.linbit.com
Subject: Re: [Drbd-dev] Panic in _drbd_send_page() again.
Date: Fri, 4 May 2007 15:34:11 +0200 [thread overview]
Message-ID: <20070504133411.GA14895@barkeeper1.linbit> (raw)
In-Reply-To: <342BAC0A5467384983B586A6B0B37671056365AC@EXNA.corp.stratus.com>
On Wed, May 02, 2007 at 10:06:44AM -0400, Graham, Simon wrote:
> > Hi Ernest,
> >
> > Could you run this through ksymoops, to get the code line
> > disassembled ? -- This does not look like a well-known distri kernel,
> > or is it ?
> >
> > -Phil
>
> This is running 2.6.16.38 with Xen 3.0.4 patches -- it's way too late to
> run ksymoops on this specific case (the system has long since moved on!)
> However, looking at the disassembly for
> _debd_send_page:
> send_page+0x21 is 3e11 - loading from %edx which is 2nd param, page;
> this is attempting to read the flags field as part of the page_count()
> macro call:
>
> int _drbd_send_page(drbd_dev *mdev, struct page *page,
> int offset, size_t size)
> {
> mm_segment_t oldfs = get_fs();
> int sent,ok;
> int len = size;
>
> #ifdef SHOW_SENDPAGE_USAGE
> ...
> #endif
>
> /* PARANOIA. if this ever triggers,
> * something in the layers above us is really kaputt.
> *one roundtrip later:
> * doh. it triggered. so XFS _IS_ really kaputt ...
> * oh well...
> */
> if ( (page_count(page) < 1) || PageSlab(page) ) {
> /* e.g. XFS meta- & log-data is in slab pages, which
> have a
>
> The Oops message shows that edx is 0x6b6b6b6b which is the poison
> value for free memory when using CONFIG_SLAB_DEBUG -- as Ernest
> pointed out, this means that we're using a bio that has already been
> freed...
>
> This is very similar to a bunch of problems found previously where the
> bio was freed too early -- the big difference with this one is that we
> turned on CONFIG_SLAB_DEBUG which enabled poisoning of freed memory...
all pieces of information we have about this seem to indicate that the
xen block device code builds up its own bios, tries to be smart there...
and possibly outsmarts itself.
not that I'm too much into pointing fingers,
but I suggest to not only look at drbd, also look closely at the part of
xen that builds up the bios that then are submitted to drbd.
maybe they are not sufficiently initialized, or drbd has otherwise wrong
expectations about bios that do no longer hold true for the bios
submitted by xen.
--
: Lars Ellenberg Tel +43-1-8178292-0 :
: LINBIT Information Technologies GmbH Fax +43-1-8178292-82 :
: Vivenotgasse 48, A-1120 Vienna/Europe http://www.linbit.com :
__
please use the "List-Reply" function of your email client.
next prev parent reply other threads:[~2007-05-04 13:34 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-26 21:58 [Drbd-dev] Panic in _drbd_send_page() again Montrose, Ernest
2007-05-02 9:22 ` Philipp Reisner
2007-05-02 14:06 ` Graham, Simon
2007-05-04 13:34 ` Lars Ellenberg [this message]
[not found] ` <342BAC0A5467384983B586A6B0B37671056365AC@EXNA.corp.str atus.com>
2007-05-04 14:37 ` Graham, Simon
2007-05-04 16:00 ` Lars Ellenberg
2007-05-04 19:02 ` Graham, Simon
2007-05-05 0:14 ` Lars Ellenberg
[not found] ` <342BAC0A5467384983B586A6B0B37671056369DA@EXNA.corp.s tratus.com>
2007-05-05 0:31 ` Graham, Simon
2007-05-05 9:31 ` Lars Ellenberg
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=20070504133411.GA14895@barkeeper1.linbit \
--to=lars.ellenberg@linbit.com \
--cc=drbd-dev@lists.linbit.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