From: Ben Fennema <bfennema@falcon.csc.calpoly.edu>
To: Pat LaVarre <p.lavarre@ieee.org>
Cc: linux-fsdevel@vger.kernel.org, linux_udf@hpesjro.fc.hp.com
Subject: Re: zeroes read back more often than appended
Date: Tue, 7 Oct 2003 20:49:51 -0700 [thread overview]
Message-ID: <20031007204951.A25423@falcon.csc.calpoly.edu> (raw)
In-Reply-To: <1065553341.8172.45.camel@patehci2>; from p.lavarre@ieee.org on Tue, Oct 07, 2003 at 01:02:21PM -0600
I can't repeat this on 2.4 or 2.6.0-test6 non-smp.
I'll see if I can figure out whats going on in 2.6.0-test6-smp.
Somehow unrecorded block(s) are getting inserted in the data.
Ben
On Tue, Oct 07, 2003 at 01:02:21PM -0600, Pat LaVarre wrote:
> Maybe I should have cc'ed linux-fsdevel@vger.kernel.org when I launched
> this thread in linux_udf@hpesjro.fc.hp.com ...
>
> -----Forwarded Message-----
>
> Subject: zeroes read back more often than appended
> Date: 06 Oct 2003 21:54:15 -0600
> To: linux_udf@hpesjro.fc.hp.com
>
> Is it legit to combine mkudffs 1.0.0b2 with linux-2.6.0-test6?
>
> And to run mkudffs on top of a loop device?
>
> I ask because:
>
> I wrote the following short programs (a bash script and a C routine) to
> fopen, iterate "height" times to fwrite a "width" of bytes once or
> repeatedly, and fclose.
>
> With mkfs and ext3, I see this trivial code reliably produces expected
> results i.e. a file full of '\xAA' e.g.
>
> 00000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa |................|
> *
> 00fffff0 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa |...............|
>
> With linux-2.6.0-test6 mkudffs and udf.ko of 1 GiB loop device, I see
> this trivial code reliably produces wrong results for certain small
> width and height combinations, such as:
>
> udfwh mkudffs 0xFFFF 0xC00
> udfwh mkudffs 0xFFFFFF 0xB
> udfwh mkudffs 0xFFFFFFF 0x1
> udfwh mkudffs 0x7800000 0x1
>
> With mkudffs, my results grow indeterminate below somewhere near the
> 0x7800000 boundary (120 MiB). 0x7400000 often fails. My logs tell me
> 0x7298000 once failed for me, but I can't easily repeat that result.
>
> My wrong results have lots of zeroes in place of the data written e.g.
>
> hexdump -C wh.bin | head -3
> 00000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa |................|
> *
> 0375e000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
>
> Every time I've looked, the zeroes appear aligned to at least 2 KiB
> boundaries.
>
> Explanations, anyone?
>
> Pat LaVarre
>
> /// udfwh
>
> #!/bin/bash -x
>
> rm dd.bin
> dd if=/dev/zero of=dd.bin bs=1M seek=1023 count=1
> ls -l dd.bin
> sudo losetup /dev/loop0 dd.bin
> sudo $1 2>&1 | head -1
> sudo $1 /dev/loop0
> sudo mount /dev/loop0 /mnt/loop0
> sudo chown `id -u`:`id -g` /mnt/loop0/.
> cd /mnt/loop0
> time wh $2 $3
> cd -
> sudo umount /mnt/loop0
> sudo losetup -d /dev/loop0
>
> /// wh.c
>
> #include <assert.h>
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
>
> int main(int argc, char * argv[]) // 0xFF600 0xC8
> {
> int width;
> int height;
> char * chars;
> char nonzero;
> FILE * fi;
> int i;
> int rc;
> char const * st;
>
> --argc; ++argv;
> assert(argc == 2);
> rc = sscanf(argv[0], "0x%X", &width);
> assert(rc == 1);
> rc = sscanf(argv[1], "0x%X", &height);
> assert(rc == 1);
>
> nonzero = '\xAA';
> chars = malloc(width);
> assert(chars != NULL);
> memset(&chars[0], nonzero, width);
>
> fi = fopen("wh.bin", "wb");
> assert(fi != NULL);
> for (i = 0; i < height; ++i) {
> fprintf(stderr, "\r%d ", height - i - 1);
> rc = fwrite(chars, 1, width, fi);
> assert(rc == width);
> }
> rc = fclose(fi);
> assert(rc == 0);
> fprintf(stderr, "\n");
>
> st = "hexdump -C wh.bin | head -3";
> fprintf(stderr, "%s\n", st);
> (void) system(st);
>
> return 0;
> }
>
> /// dmesg (boring, I think?)
>
> > UDF-fs DEBUG fs/udf/lowlevel.c:65:udf_get_last_session: CDROMMULTISESSION not supported: rc=-22
> > UDF-fs DEBUG fs/udf/super.c:1471:udf_fill_super: Multi-session=0
> > UDF-fs DEBUG fs/udf/super.c:459:udf_vrs: Starting at sector 16 (2048 byte sectors)
> > UDF-fs DEBUG fs/udf/super.c:802:udf_load_pvoldesc: recording time 1065498482/249678, 2003/10/06 21:48 (1e98)
> > UDF-fs DEBUG fs/udf/super.c:813:udf_load_pvoldesc: volIdent[] = 'LinuxUDF'
> > UDF-fs DEBUG fs/udf/super.c:820:udf_load_pvoldesc: volSetIdent[] = '3f823772LinuxUDF'
> > UDF-fs DEBUG fs/udf/super.c:1012:udf_load_logicalvol: Partition (0:0) type 1 on volume 1
> > UDF-fs DEBUG fs/udf/super.c:1022:udf_load_logicalvol: FileSet found in LogicalVolDesc at block=32, partition=0
> > UDF-fs DEBUG fs/udf/super.c:850:udf_load_partdesc: Searching map: (0 == 0)
> > UDF-fs DEBUG fs/udf/super.c:891:udf_load_partdesc: unallocSpaceBitmap (part 0) @ 0
> > UDF-fs DEBUG fs/udf/super.c:932:udf_load_partdesc: Partition (0:0 type 1511) starts at physical 274, block length 523757
> > UDF-fs DEBUG fs/udf/super.c:1265:udf_load_partition: Using anchor in block 256
> > UDF-fs DEBUG fs/udf/super.c:1498:udf_fill_super: Lastblock=0
> > UDF-fs DEBUG fs/udf/super.c:774:udf_find_fileset: Fileset at block=32, partition=0
> > UDF-fs DEBUG fs/udf/super.c:836:udf_load_fileset: Rootdir at block=34, partition=0
> > UDF-fs INFO UDF 0.9.7 (2002/11/15) Mounting volume 'LinuxUDF', timestamp 2003/10/06 21:48 (1e98)
next prev parent reply other threads:[~2003-10-08 4:12 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-07 19:02 zeroes read back more often than appended Pat LaVarre
2003-10-07 20:54 ` Pat LaVarre
2003-10-08 3:49 ` Ben Fennema [this message]
2003-10-08 16:41 ` Pat LaVarre
2003-10-08 16:47 ` editable udf metadata Pat LaVarre
2003-10-08 17:51 ` Pat LaVarre
2003-10-08 18:09 ` big-endian udfct_1_0r2 Pat LaVarre
2003-10-08 18:30 ` Matthew Wilcox
[not found] ` <3F8472FE.9040403@lougher.demon.co.uk>
2003-10-08 19:49 ` Matthew Wilcox
2003-10-08 20:43 ` Phillip Lougher
2003-10-21 21:54 ` editable udf metadata Pat LaVarre
2003-10-21 23:17 ` Pat LaVarre
2003-10-23 16:06 ` Pat LaVarre
2003-10-24 21:40 ` Pat LaVarre
2003-10-22 8:15 ` same page access Mark B
2003-10-22 11:21 ` Matthew Wilcox
2003-10-22 17:09 ` Mark B
2003-10-22 17:10 ` Matthew Wilcox
2003-10-08 17:02 ` zeroes read back more often than appended Pat LaVarre
2003-10-08 17:06 ` toggling smp clears x86_mce_p4thermal of make xconfig Pat LaVarre
2003-10-08 17:21 ` zeroes read back more often than appended Pat LaVarre
2003-10-08 16:46 ` soft trace of read/write of drivers/block/loop.c Pat LaVarre
2003-10-08 20:32 ` zeroes read back more often than appended Pat LaVarre
2003-10-09 20:54 ` Pat LaVarre
2003-10-10 0:52 ` Pat LaVarre
2003-10-10 16:39 ` Pat LaVarre
2003-10-10 18:15 ` Pat LaVarre
2003-10-14 0:38 ` Pat LaVarre
2003-10-14 1:48 ` Pat LaVarre
2003-10-20 23:20 ` Pat LaVarre
2003-10-21 14:47 ` Pat LaVarre
2003-10-21 16:46 ` Pat LaVarre
2003-10-21 18:44 ` Pat LaVarre
2003-10-23 18:52 ` Pat LaVarre
2003-10-27 21:55 ` Pat LaVarre
-- strict thread matches above, loose matches on Subject: below --
2003-11-20 16:41 Pat LaVarre
2003-11-27 0:45 ` Pat LaVarre
2003-11-28 18:20 ` Pat LaVarre
2003-11-28 18:29 ` Pat LaVarre
2003-12-11 18:42 Pat LaVarre
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=20031007204951.A25423@falcon.csc.calpoly.edu \
--to=bfennema@falcon.csc.calpoly.edu \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux_udf@hpesjro.fc.hp.com \
--cc=p.lavarre@ieee.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