From: Evan Felix <evan.felix@pnl.gov>
To: linux-raid <linux-raid@vger.kernel.org>
Cc: neilb@cse.unsw.edu.au
Subject: Re: [PATCH] Linux Raid5/6 abover 2 Terabytes
Date: Mon, 12 Apr 2004 08:53:54 -0700 [thread overview]
Message-ID: <1081785234.22588.5.camel@e-linux> (raw)
In-Reply-To: <249C1CB246997C48BB74963CCD361C1B02376A60@pnlmse28.pnl.gov>
Niel, did you push this patch to the kernel guys for inclusion in the
next 2.6 kernel?
Also by way of status i've built a 5.7Tb SATA array (level 5/6) with
this change in the kernel.
so that pushes us to about 4 Arrays now..
Evan
On Tue, 2004-04-06 at 14:00, Felix, Evan J wrote:
> Here is a patch that fixes a major issue in the raid5/6 code. It
> seems
> that the code:
>
> logical_sector = bi->bi_sector & ~(STRIPE_SECTORS-1);
> (sector_t) = (sector_t) & (constant)
>
> that the right side of the & does not get extended correctly when the
> constant is promoted to the sector_t type. I have CONFIG_LBD turned
> on
> so sector_t should be 64bits wide. This fails to properly mask the
> value of 4294967296 (2TB/512) to 4294967296. in my case it was coming
> out 0. this cause the loop following this code to read from 0 to
> 4294967296 blocks so it could write one character.
>
> As you might imagine this makes a format of a 3.5TB filesystem take a
> very long time.
>
> Here is the patch:
> Binary files linux-2.6.5/drivers/md/mktables and
> linux-2.6.5fixraid/drivers/md/mktables differ
> diff -urN -X /home/efelix/.cvsignore linux-2.6.5/drivers/md/raid5.c
> linux-2.6.5fixraid/drivers/md/raid5.c
> --- linux-2.6.5/drivers/md/raid5.c 2004-04-04 03:36:26.000000000
> +0000
> +++ linux-2.6.5fixraid/drivers/md/raid5.c 2004-04-06
> 18:26:05.000000000
> +0000
> @@ -1334,8 +1334,9 @@
> disk_stat_add(mddev->gendisk, read_sectors,
> bio_sectors(bi));
> }
>
> - logical_sector = bi->bi_sector & ~(STRIPE_SECTORS-1);
> + logical_sector = bi->bi_sector &
> ~((sector_t)STRIPE_SECTORS-1);
> last_sector = bi->bi_sector + (bi->bi_size>>9);
> + PRINTK("Bio: %Lu logical %Lu last
> %Lu\n",bi->bi_sector,logical_sector,last_sector);
>
> bi->bi_next = NULL;
> bi->bi_phys_segments = 1; /* over-loaded to count active
> stripes */
> diff -urN -X /home/efelix/.cvsignore
> linux-2.6.5/drivers/md/raid6main.c
> linux-2.6.5fixraid/drivers/md/raid6main.c
> --- linux-2.6.5/drivers/md/raid6main.c 2004-04-04 03:36:14.000000000
> +0000
> +++ linux-2.6.5fixraid/drivers/md/raid6main.c 2004-04-06
> 18:31:30.000000000 +0000
> @@ -1496,7 +1496,7 @@
> disk_stat_add(mddev->gendisk, read_sectors,
> bio_sectors(bi));
> }
>
> - logical_sector = bi->bi_sector & ~(STRIPE_SECTORS-1);
> + logical_sector = bi->bi_sector &
> ~((sector_t)STRIPE_SECTORS-1);
> last_sector = bi->bi_sector + (bi->bi_size>>9);
>
> bi->bi_next = NULL;
>
>
> I have tested this on at least 2 arrays, with ext2 and some long dd's
>
> Evan
> --
> -------------------------
> Evan Felix
> Administrator of Supercomputer #5 in Top 500, Nov 2003
> Environmental Molecular Sciences Laboratory
> Pacific Northwest National Laboratory
> Operated for the U.S. DOE by Battelle
>
next parent reply other threads:[~2004-04-12 15:53 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <249C1CB246997C48BB74963CCD361C1B02376A60@pnlmse28.pnl.gov>
2004-04-12 15:53 ` Evan Felix [this message]
2004-05-01 7:08 ` [PATCH] Linux Raid5/6 abover 2 Terabytes Brad Campbell
2004-05-03 17:49 ` Evan Felix
2004-05-04 1:24 ` Neil Brown
2004-04-06 21:00 Evan Felix
2004-04-06 23:02 ` Andreas Schwab
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=1081785234.22588.5.camel@e-linux \
--to=evan.felix@pnl.gov \
--cc=linux-raid@vger.kernel.org \
--cc=neilb@cse.unsw.edu.au \
/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;
as well as URLs for NNTP newsgroup(s).