Linux filesystem development
 help / color / mirror / Atom feed
From: Pat LaVarre <p.lavarre@ieee.org>
To: linux-fsdevel@vger.kernel.org
Subject: Re: zeroes read back more often than appended
Date: 21 Oct 2003 10:46:57 -0600	[thread overview]
Message-ID: <1066754816.12021.1.camel@patehci2> (raw)
In-Reply-To: <1066747637.8228.7.camel@patehci2>

Yes indeed, again I see udf reading of more zeroes than appended, if I
try 2.6.0-test8 with SMP, with PREEMPT, on seek-write backing store, via
the trivially revised whd.c and fswhd script quoted as a patch below.

Why so carefully do nothing different in a more complex way?

So that now more easily we can try changing those variables.  In
particular, I hope to show failures without SMP, without PREEMPT, on
preallotted backing store, in such tests as:

fswhd 0 768 mkudffs 0xFF600 0xC8 0x3

Pat LaVarre

diff -Nur o/tty.txt bin/tty.txt
--- o/tty.txt	1969-12-31 17:00:00.000000000 -0700
+++ bin/tty.txt	2003-10-21 09:20:38.113900136 -0600
@@ -0,0 +1,18 @@
+$
+$ cd /mnt/hda11; fswhd 255 1 mkudffs 0xFF600 0xC8 0x1
+Linux 2.6.0-test8 i686
+/mnt/hda11
+dd if=/dev/zero of=dd.bin bs=1M seek=255 count=1 2>/dev/null
+-rw-rw-r--    1 pat      pat      268435456 Oct 21 09:18 dd.bin
+mkudffs 1.0.0b2 for UDF FS 1.0.0-cvs, 2002/02/09
+0
+hexdump -C whd0.bin | head -3
+00000000  aa aa aa aa aa aa aa aa  aa aa aa aa aa aa aa aa  |................|
+*
+034cd000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
++++ 2.dmesg     2003-10-21 09:19:06.301857688 -0600
++fffff
++UDF-fs DEBUG fs/udf/balloc.c:192:udf_bitmap_free_blocks: bit 2951 already set
++UDF-fs DEBUG fs/udf/balloc.c:193:udf_bitmap_free_blocks: byte=ffffff80
++UDF-fs DEBUG fs/udf/balloc.c:192:udf_bitmap_free_blocks: bit 2951 already set
+$
diff -Nur o/whd.c bin/whd.c
--- o/whd.c	1969-12-31 17:00:00.000000000 -0700
+++ bin/whd.c	2003-10-21 08:45:30.000000000 -0600
@@ -0,0 +1,67 @@
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+static FILE * fi[1234];
+
+int main(int argc, char * argv[]) // 0xFF600 0xC8
+{
+	int width;
+	int height;
+	int depth;
+	char * chars;
+	char nonzero;
+	int h;
+	int d;
+	int rc;
+
+	--argc; ++argv;
+	assert(argc == 3);
+	rc = sscanf(argv[0], "0x%X", &width);
+	assert(rc == 1);
+	rc = sscanf(argv[1], "0x%X", &height);
+	assert(rc == 1);
+	rc = sscanf(argv[2], "0x%X", &depth);
+	assert(rc == 1);
+	assert(depth < (sizeof fi / sizeof fi[0]));
+
+	nonzero = '\xAA';
+	chars = malloc(width);
+	assert(chars != NULL);
+	memset(&chars[0], nonzero, width);
+
+	for (d = 0; d < depth; ++d) {
+		char st[123];
+		sprintf(&st[0], "whd%d.bin", d);
+		fi[d] = fopen(&st[0], "wb");
+		assert(fi[d] != NULL);
+	}
+
+	for (h = 0; h < height; ++h) {
+		fprintf(stderr, "\r%d ", height - h - 1);
+		for (d = 0; d < depth; ++d) {
+			rc = fwrite(chars, 1, width, fi[d]);
+			if (rc != width) {
+				perror("fwrite");
+				exit(-__LINE__);
+			}
+		}
+	}
+
+	for (d = 0; d < depth; ++d) {
+		rc = fclose(fi[d]);
+		assert(rc == 0);
+	}
+
+	fprintf(stderr, "\n");
+
+	for (d = 0; d < depth; ++d) {
+		char st[123];
+		sprintf(&st[0], "hexdump -C whd%d.bin | head -3", d);
+		fprintf(stderr, "%s\n", st);
+		(void) system(st);
+	}
+
+	return 0;
+}
diff -Nur o/fswhd bin/fswhd
--- o/fswhd	1969-12-31 17:00:00.000000000 -0700
+++ bin/fswhd	2003-10-21 09:15:34.103116800 -0600
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+uname -msr
+pwd
+rm dd.bin
+cmd="dd if=/dev/zero of=dd.bin bs=1M seek=$1 count=$2"
+echo "$cmd 2>/dev/null"
+$cmd 2>/dev/null
+ls -l dd.bin
+
+sudo losetup /dev/loop0 dd.bin
+sudo $3 2>&1 | head -1
+sudo $3 /dev/loop0 >/dev/null
+
+sudo mount /dev/loop0 /mnt/loop0
+sudo chown `id -u`:`id -g` /mnt/loop0/.
+dmesg >1.dmesg
+cd /mnt/loop0
+whd $4 $5 $6
+cd -
+dmesg >2.dmesg
+
+diff -u 1.dmesg 2.dmesg | grep '^\+' | head -5
+rm 1.dmesg 2.dmesg
+sudo umount /mnt/loop0
+sudo losetup -d /dev/loop0



  reply	other threads:[~2003-10-21 16:47 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
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 [this message]
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=1066754816.12021.1.camel@patehci2 \
    --to=p.lavarre@ieee.org \
    --cc=linux-fsdevel@vger.kernel.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