[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <49AC1A7A.1070108@dti2.net>
Date: Mon, 02 Mar 2009 18:42:18 +0100
From: "Jorge Boncompte [DTI2]" <jorge@...2.net>
To: npiggin@...e.de
CC: ext-adrian.hunter@...ia.com, LKML <linux-kernel@...r.kernel.org>
Subject: Re: Error testing ext3 on brd ramdisk
Nick Piggin escribió:
> On Fri, Feb 27, 2009 at 07:08:46PM +0100, Jorge Boncompte [DTI2] wrote:
>> Hi,
>>
>> I have added Nick Piggin to the CC: as maintainer of the brd driver.
>>
>> After switching an embedded distribution that /etc on a ramdisk
>> based minix filesystem from 2.6.23.17 to 2.6.29-rcX i am too getting errors
>> ant the filesystem is corrupted. Does not happen always. The visible
>> effect with text files after reboot is getting the old version of the
>> file and "\0"'s at the end.
>>
>> Did you found a solution?
>
> What architectures are you using? It's possible that brd is missing
> a cacheflush. I test it pretty heavily on x86 and no problems, so
> this might point to an arch specific problem.
>
> ---
> drivers/block/brd.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> Index: linux-2.6/drivers/block/brd.c
> ===================================================================
> --- linux-2.6.orig/drivers/block/brd.c
> +++ linux-2.6/drivers/block/brd.c
> @@ -275,8 +275,10 @@ static int brd_do_bvec(struct brd_device
> if (rw == READ) {
> copy_from_brd(mem + off, brd, sector, len);
> flush_dcache_page(page);
> - } else
> + } else {
> + flush_dcache_page(page);
> copy_to_brd(brd, mem + off, sector, len);
> + }
> kunmap_atomic(mem, KM_USER0);
>
> out:
Hi, I am on 32bits x86, 2 x Xeon with HT CPUs, but I have seen the same
corruption on a KVM/QEMU guest with single emulated CPU.
With your patch on top of vanilla 2.6.29-rc3+plus some networking
patches I still get corruption sometimes.
The script that saves the configuration does...
------------
mount -no remount,ro /dev/ram0
dd if=/dev/ram0 of=config.bin bs=1k count=1000
mount -no remount,rw /dev/ram0
md5sum config.bin
dd if=config.bin of=/dev/hda1
echo $md5sum | dd of=/dev/hda1 bs=1k seek=1100 count=32
------------
on system boot
------------
CHECK MD5SUM
dd if=/dev/hda1 of=/dev/ram0 bs=1k count=1000
fsck.minix -a /dev/ram0
mount -nt minix /dev/ram0 /etc -o rw
------------
I have never seen a MD5 failure on boot, just sometimes the filesystem
is corrupted. Kernel config attached.
Jorge
--
==============================================================
Jorge Boncompte - Ingenieria y Gestion de RED
DTI2 - Desarrollo de la Tecnologia de las Comunicaciones
--------------------------------------------------------------
C/ Abogado Enriquez Barrios, 5 14004 CORDOBA (SPAIN)
Tlf: +34 957 761395 / FAX: +34 957 450380
==============================================================
- Sin pistachos no hay Rock & Roll...
- Without wicker a basket cannot be made.
==============================================================
View attachment "config-kernel" of type "text/plain" (62841 bytes)
Powered by blists - more mailing lists