LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* Re: Bug#250477: kernel-source-2.4.26: Lots of debug in RAID5
       [not found] <20040523085801.2878013C002@nomade.ciram.unibo.it>
@ 2004-05-23 10:53 ` Herbert Xu
  2004-05-23 11:16   ` hch
  0 siblings, 1 reply; 5+ messages in thread
From: Herbert Xu @ 2004-05-23 10:53 UTC (permalink / raw)
  To: Leonardo Macchia, 250477; +Cc: Neil Brown, Linux Kernel Mailing List

On Sun, May 23, 2004 at 10:58:00AM +0200, Leonardo Macchia wrote:
> Package: kernel-source-2.4.26
> Version: 2.4.26-2
> Severity: wishlist
> Tags: patch
> 
> If I use XFS on the top of RAID5 device, I get lots of:
> 
> raid5: switching cache buffer size, 0 --> 4096
> 
> and similar.
> Looking at the sources, I see a "printk" instead of "PRINTK" for this
> debug line. Maybe it is a mistake? However this is the simple patch to
> change it:
> 
> diff -Naru kernel-source-2.4.26/drivers/md/raid5.c kernel-source-2.4.26-nodebug/drivers/md/raid5.c
> --- kernel-source-2.4.26/drivers/md/raid5.c	2003-08-30 06:01:38.000000000 +0000
> +++ kernel-source-2.4.26-nodebug/drivers/md/raid5.c	2004-05-23 08:54:36.000000000 +0000
> @@ -282,7 +282,7 @@
>  				}
>  
>  				if (conf->buffer_size != size) {
> -					printk("raid5: switching cache buffer size, %d --> %d\n", oldsize, size);
> +					PRINTK("raid5: switching cache buffer size, %d --> %d\n", oldsize, size);
>  					shrink_stripe_cache(conf);
>  					if (size==0) BUG();
>  					conf->buffer_size = size;

Thanks for the patch.  This does indeed look like a typo.

Hi Neil, does this patch look OK to you?

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email:  Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug#250477: kernel-source-2.4.26: Lots of debug in RAID5
  2004-05-23 10:53 ` Bug#250477: kernel-source-2.4.26: Lots of debug in RAID5 Herbert Xu
@ 2004-05-23 11:16   ` hch
  2004-05-24  1:00     ` Nathan Scott
  0 siblings, 1 reply; 5+ messages in thread
From: hch @ 2004-05-23 11:16 UTC (permalink / raw)
  To: Herbert Xu
  Cc: Leonardo Macchia, 250477, Neil Brown, Linux Kernel Mailing List

On Sun, May 23, 2004 at 08:53:51PM +1000, Herbert Xu wrote:
> > --- kernel-source-2.4.26/drivers/md/raid5.c	2003-08-30 06:01:38.000000000 +0000
> > +++ kernel-source-2.4.26-nodebug/drivers/md/raid5.c	2004-05-23 08:54:36.000000000 +0000
> > @@ -282,7 +282,7 @@
> >  				}
> >  
> >  				if (conf->buffer_size != size) {
> > -					printk("raid5: switching cache buffer size, %d --> %d\n", oldsize, size);
> > +					PRINTK("raid5: switching cache buffer size, %d --> %d\n", oldsize, size);
> >  					shrink_stripe_cache(conf);
> >  					if (size==0) BUG();
> >  					conf->buffer_size = size;
> 
> Thanks for the patch.  This does indeed look like a typo.
> 
> Hi Neil, does this patch look OK to you?

No, this was rejected a few times already.  The problem is that XFS
uses differen I/O sizes for the log and other I/O which makes raid
performance suck really badly.  The real fix is to use the v2 XFS log
format when using software raid5.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug#250477: kernel-source-2.4.26: Lots of debug in RAID5
  2004-05-23 11:16   ` hch
@ 2004-05-24  1:00     ` Nathan Scott
  2004-05-25  6:29       ` Neil Brown
  0 siblings, 1 reply; 5+ messages in thread
From: Nathan Scott @ 2004-05-24  1:00 UTC (permalink / raw)
  To: hch, Herbert Xu, Leonardo Macchia, 250477, Neil Brown,
	Linux Kernel Mailing List

On Sun, May 23, 2004 at 07:16:22AM -0400, hch@infradead.org wrote:
> On Sun, May 23, 2004 at 08:53:51PM +1000, Herbert Xu wrote:
> > > --- kernel-source-2.4.26/drivers/md/raid5.c	2003-08-30 06:01:38.000000000 +0000
> > > +++ kernel-source-2.4.26-nodebug/drivers/md/raid5.c	2004-05-23 08:54:36.000000000 +0000
> > > @@ -282,7 +282,7 @@
> > >  				}
> > >  
> > >  				if (conf->buffer_size != size) {
> > > -					printk("raid5: switching cache buffer size, %d --> %d\n", oldsize, size);
> > > +					PRINTK("raid5: switching cache buffer size, %d --> %d\n", oldsize, size);
> > >  					shrink_stripe_cache(conf);
> > >  					if (size==0) BUG();
> > >  					conf->buffer_size = size;
> > 
> > Thanks for the patch.  This does indeed look like a typo.
> > 
> > Hi Neil, does this patch look OK to you?
> 
> No, this was rejected a few times already.  The problem is that XFS
> uses differen I/O sizes for the log and other I/O which makes raid
> performance suck really badly.  The real fix is to use the v2 XFS log
> format when using software raid5.

What is really wanted is the -ssize=4096 option to mkfs.xfs.
This does the 4k aligned log IO Christoph is talking about
here, and also sizes a few other XFS ondisk structures such
that there is no I/O to the device that is not 4K aligned.

Neil, I wonder if we could make the message more informative?
Maybe some words about a suboptimal filesystem configuration,
or something to that effect.

cheers.

-- 
Nathan

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug#250477: kernel-source-2.4.26: Lots of debug in RAID5
  2004-05-24  1:00     ` Nathan Scott
@ 2004-05-25  6:29       ` Neil Brown
  2004-05-25  7:46         ` Andrew Morton
  0 siblings, 1 reply; 5+ messages in thread
From: Neil Brown @ 2004-05-25  6:29 UTC (permalink / raw)
  To: Nathan Scott
  Cc: hch, Herbert Xu, Leonardo Macchia, 250477, Neil Brown,
	Linux Kernel Mailing List

On Monday May 24, nathans@sgi.com wrote:
> On Sun, May 23, 2004 at 07:16:22AM -0400, hch@infradead.org wrote:
> > On Sun, May 23, 2004 at 08:53:51PM +1000, Herbert Xu wrote:
> > > > --- kernel-source-2.4.26/drivers/md/raid5.c	2003-08-30 06:01:38.000000000 +0000
> > > > +++ kernel-source-2.4.26-nodebug/drivers/md/raid5.c	2004-05-23 08:54:36.000000000 +0000
> > > > @@ -282,7 +282,7 @@
> > > >  				}
> > > >  
> > > >  				if (conf->buffer_size != size) {
> > > > -					printk("raid5: switching cache buffer size, %d --> %d\n", oldsize, size);
> > > > +					PRINTK("raid5: switching cache buffer size, %d --> %d\n", oldsize, size);
> > > >  					shrink_stripe_cache(conf);
> > > >  					if (size==0) BUG();
> > > >  					conf->buffer_size = size;
> > > 
> > > Thanks for the patch.  This does indeed look like a typo.
> > > 
> > > Hi Neil, does this patch look OK to you?
> > 
> > No, this was rejected a few times already.  The problem is that XFS
> > uses differen I/O sizes for the log and other I/O which makes raid
> > performance suck really badly.  The real fix is to use the v2 XFS log
> > format when using software raid5.
> 
> What is really wanted is the -ssize=4096 option to mkfs.xfs.
> This does the 4k aligned log IO Christoph is talking about
> here, and also sizes a few other XFS ondisk structures such
> that there is no I/O to the device that is not 4K aligned.
> 
> Neil, I wonder if we could make the message more informative?
> Maybe some words about a suboptimal filesystem configuration,
> or something to that effect.

That would possibly be reasonable.
I would only want the extra message if the 'switching cache buffer
size' messages happened at a high rate, and occasional individual
messages are not an indication of a problem at all.

Maybe something like the following, but the recent/cnt/warned should
really be per-array.

NeilBrown
===========================================================
convert high-frequency raid5 warning to more specific warning.

Atleast 'warned', and possible cnt,recent should be per-array.

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>

 ----------- Diffstat output ------------
 ./drivers/md/raid5.c |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletion(-)

diff ./drivers/md/raid5.c~current~ ./drivers/md/raid5.c
--- ./drivers/md/raid5.c~current~	2004-05-25 16:22:56.000000000 +1000
+++ ./drivers/md/raid5.c	2004-05-25 16:27:54.000000000 +1000
@@ -282,7 +282,21 @@ static struct stripe_head *get_active_st
 				}
 
 				if (conf->buffer_size != size) {
-					printk("raid5: switching cache buffer size, %d --> %d\n", oldsize, size);
+					static long recent;
+					static int cnt;
+					static int warned;
+					if (time_after(recent+HZ, jiffies))
+						cnt++;
+					else {
+						recent = jiffies;
+						cnt = 0;
+					}
+					if (cnt > 50 && ! warned) {
+						printk("raid5: WARNING:array used in unsupported configuration, expect poor performance\n");
+						warned = 1;
+					}
+					if (!warned)
+						printk("raid5: switching cache buffer size, %d --> %d\n", oldsize, size);
 					shrink_stripe_cache(conf);
 					if (size==0) BUG();
 					conf->buffer_size = size;

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug#250477: kernel-source-2.4.26: Lots of debug in RAID5
  2004-05-25  6:29       ` Neil Brown
@ 2004-05-25  7:46         ` Andrew Morton
  0 siblings, 0 replies; 5+ messages in thread
From: Andrew Morton @ 2004-05-25  7:46 UTC (permalink / raw)
  To: Neil Brown; +Cc: nathans, hch, herbert, leo, 250477, neilb, linux-kernel

Neil Brown <neilb@cse.unsw.edu.au> wrote:
>
> -					printk("raid5: switching cache buffer size, %d --> %d\n", oldsize, size);
>  +					static long recent;
>  +					static int cnt;
>  +					static int warned;
>  +					if (time_after(recent+HZ, jiffies))
>  +						cnt++;
>  +					else {
>  +						recent = jiffies;
>  +						cnt = 0;
>  +					}
>  +					if (cnt > 50 && ! warned) {
>  +						printk("raid5: WARNING:array used in unsupported configuration, expect poor performance\n");
>  +						warned = 1;
>  +					}
>  +					if (!warned)
>  +						printk("raid5: switching cache buffer size, %d --> %d\n", oldsize, size);

Is it not possible to use __printk_ratelimit() in here?

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2004-05-25  7:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20040523085801.2878013C002@nomade.ciram.unibo.it>
2004-05-23 10:53 ` Bug#250477: kernel-source-2.4.26: Lots of debug in RAID5 Herbert Xu
2004-05-23 11:16   ` hch
2004-05-24  1:00     ` Nathan Scott
2004-05-25  6:29       ` Neil Brown
2004-05-25  7:46         ` Andrew Morton

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).