All of lore.kernel.org
 help / color / mirror / Atom feed
From: Justin Piszcz <jpiszcz@lucidpixels.com>
To: Andrew Morton <akpm@osdl.org>
Cc: Chuck Ebbert <cebbert@redhat.com>,
	linux-kernel@vger.kernel.org, linux-raid@vger.kernel.org,
	xfs@oss.sgi.com, Neil Brown <neilb@suse.de>
Subject: Re: Kernel 2.6.19.2 New RAID 5 Bug (oops when writing Samba -> RAID5)
Date: Fri, 26 Jan 2007 04:37:55 -0500 (EST)	[thread overview]
Message-ID: <Pine.LNX.4.64.0701260437090.11888@p34.internal.lan> (raw)
In-Reply-To: <20070126012505.d8cb07f2.akpm@osdl.org>



On Fri, 26 Jan 2007, Andrew Morton wrote:

> On Wed, 24 Jan 2007 18:37:15 -0500 (EST)
> Justin Piszcz <jpiszcz@lucidpixels.com> wrote:
> 
> > > Without digging too deeply, I'd say you've hit the same bug Sami Farin and
> > > others
> > > have reported starting with 2.6.19: pages mapped with kmap_atomic() become
> > > unmapped
> > > during memcpy() or similar operations.  Try disabling preempt -- that seems to
> > > be the
> > > common factor.
> > > 
> > > 
> > > -
> > > To unsubscribe from this list: send the line "unsubscribe linux-raid" in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > > 
> > > 
> > 
> > After I run some other tests, I am going to re-run this test and see if it 
> > OOPSes again with PREEMPT off.
> 
> Strange.  The below debug patch might catch it - please run with this
> applied.  
> 
> 
> --- a/arch/i386/mm/highmem.c~kmap_atomic-debugging
> +++ a/arch/i386/mm/highmem.c
> @@ -30,7 +30,43 @@ void *kmap_atomic(struct page *page, enu
>  {
>  	enum fixed_addresses idx;
>  	unsigned long vaddr;
> +	static unsigned warn_count = 10;
>  
> +	if (unlikely(warn_count == 0))
> +		goto skip;
> +
> +	if (unlikely(in_interrupt())) {
> +		if (in_irq()) {
> +			if (type != KM_IRQ0 && type != KM_IRQ1 &&
> +			    type != KM_BIO_SRC_IRQ && type != KM_BIO_DST_IRQ &&
> +			    type != KM_BOUNCE_READ) {
> +				WARN_ON(1);
> +				warn_count--;
> +			}
> +		} else if (!irqs_disabled()) {	/* softirq */
> +			if (type != KM_IRQ0 && type != KM_IRQ1 &&
> +			    type != KM_SOFTIRQ0 && type != KM_SOFTIRQ1 &&
> +			    type != KM_SKB_SUNRPC_DATA &&
> +			    type != KM_SKB_DATA_SOFTIRQ &&
> +			    type != KM_BOUNCE_READ) {
> +				WARN_ON(1);
> +				warn_count--;
> +			}
> +		}
> +	}
> +
> +	if (type == KM_IRQ0 || type == KM_IRQ1 || type == KM_BOUNCE_READ) {
> +		if (!irqs_disabled()) {
> +			WARN_ON(1);
> +			warn_count--;
> +		}
> +	} else if (type == KM_SOFTIRQ0 || type == KM_SOFTIRQ1) {
> +		if (irq_count() == 0 && !irqs_disabled()) {
> +			WARN_ON(1);
> +			warn_count--;
> +		}
> +	}
> +skip:
>  	/* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
>  	pagefault_disable();
>  	if (!PageHighMem(page))
> _
> 
> 

The RAID5 bug may be hard to trigger, I have only made it happen once so 
far (but only tried it once, don't like locking up the raid :)), I will 
re-run the test after applying this patch.

Justin.

  reply	other threads:[~2007-01-26  9:37 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-20 12:23 Kernel 2.6.19.2 New RAID 5 Bug (oops when writing Samba -> RAID5) Justin Piszcz
2007-01-20 12:46 ` Justin Piszcz
2007-01-22  5:38   ` What is the exacting meaning of Striped_Cache_Size? Liang Yang
2007-01-22  5:38     ` Liang Yang
2007-01-22  6:06       ` Dan Williams
2007-01-22  6:22         ` Liang Yang
2007-01-22  6:22           ` Liang Yang
2007-01-22 16:36             ` Dan Williams
2007-01-22 21:01 ` Kernel 2.6.19.2 New RAID 5 Bug (oops when writing Samba -> RAID5) Chuck Ebbert
2007-01-22 21:59   ` Neil Brown
2007-01-23  1:44     ` Dan Williams
2007-01-23  2:06       ` Neil Brown
2007-01-23 10:56     ` Justin Piszcz
2007-01-23 11:08       ` Michael Tokarev
2007-01-23 11:59         ` Justin Piszcz
2007-01-23 12:48           ` Michael Tokarev
2007-01-23 13:46             ` Justin Piszcz
2007-01-23 17:05           ` Bill Davidsen
2007-01-24 23:37   ` Justin Piszcz
2007-01-26  9:25     ` Andrew Morton
2007-01-26  9:37       ` Justin Piszcz [this message]
2007-01-26 12:31       ` Justin Piszcz

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.0701260437090.11888@p34.internal.lan \
    --to=jpiszcz@lucidpixels.com \
    --cc=akpm@osdl.org \
    --cc=cebbert@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=neilb@suse.de \
    --cc=xfs@oss.sgi.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.