[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] xen 3.0.1, mdadm and DEBUG problem



hi,

i've a little problem here with raid1 inside domU. My setup is, two block 
devices (gnbd) attached to domU (sda1, sdb1) and build raid1 inside domU.

All works fine (mdadm --remove, block-detach, resize, block-attach, mdadm 
-add) except the part where i want to grow my raid to the new size (mdadm 
--grow .. --size=max). Sometimes (when not much fs load is done in domU) it 
works and i "only" get the kernel message "VFS: busy inodes on changed 
media.". But all works fine.

But if i have fs load in domU and i make the grow i get "EXT3-fs error (device 
md0): ext3_readdir: directory #589900 contains a hole at offset 0" and my fs 
is switching to ro mode and nothing works until reboot.

So i decided to switch on DEBUG for my md to see what's happening. So i 
recompiled a domU kernel with the only change:
# diff linux-2.6.12-xenU/drivers/md/md.c~ linux-2.6.12-xenU/drivers/md/md.c
55c55
< #define DEBUG 0
---
> #define DEBUG 1

With this kernel my domU works fine with a lot of debugging info on my domU 
console until i try to mdadm --set-faulty inside domU (which works without 
DEBUG like a charm):
test:~# mdadm --set-faulty /dev/md0 /dev/sda1
Segmentation fault
test:~# 
Then i see on my domU console:
general protection fault: 0000 [#1]
SMP 
Modules linked in:
CPU:    1
EIP:    0061:[<c024c49f>]    Not tainted VLI
EFLAGS: 00010246   (2.6.12.6-xenU) 
EIP is at md_error+0x2f/0x120
eax: ffffffe2   ebx: c1304a80   ecx: 00000000   edx: ffffffed
esi: c12d6b80   edi: c1304a80   ebp: c6291ea4   esp: c6291e74
ds: 007b   es: 007b   ss: 0069
Process mdadm (pid: 1278, threadinfo=c6290000 task=c7ad2020)
Stack: c3cea000 c12d9ab4 c1186300 c7ad2020 f578c040 c111b300 00000001 00000001 
       00000000 c1304a80 c03ba4ec 00000801 ffffffe2 c024baac c1304a80 c12d6b80 
       c1304a80 c024bd64 c1304a80 00800001 bfdc30cc c6291ee8 00000060 c6291f64 
Call Trace:
 [<c024baac>] set_disk_faulty+0x3c/0x50
 [<c024bd64>] md_ioctl+0x2a4/0x5a0
 [<c016d7c8>] cp_new_stat64+0xf8/0x110
 [<c024bac0>] md_ioctl+0x0/0x5a0
 [<c0232a3c>] blkdev_ioctl+0x8c/0x440
 [<c01764c0>] do_ioctl+0x70/0xa0
 [<c01766c5>] vfs_ioctl+0x65/0x1f0
 [<c0176895>] sys_ioctl+0x45/0x70
 [<c010a6dd>] syscall_call+0x7/0xb
Code: ec 30 89 7d fc 8b 7d 08 89 75 f8 8b 75 0c 85 ff 89 5d f4 0f 84 c6 00 00 
00 85 f6 0f 84 7b 00 00 00 8b 4e 2c 85 c9 75 74 8b 45 00 <8b> 10 8b 02 8b 4a 
04 8b 58 04 8b 45 00 8b 40 04 89 44 24 14 8b 

And my domU can't access any fs anymore but is running.

md is not compiled as module but compiled directly into the kernel so i can 
configure my raid per boot command line (extra = "md=0,/dev/sda1,/dev/sdb1").

So my question is, is there any known problem with raid (md) inside a domU? 
Why is mdadm working without debugging but prints "Segmentation fault" while 
debugging is on?
Are am i doing something wrong?

mdadm growing is working on other machines without xen. The only output on 
stock kernel when doing the grow is also "VFS: busy inodes on changed 
media.". One different thing is that mdadm --grow on stock kernel results in 
a rebuild of the last bits of the raid while making mdadm --grow inside domU 
only the size og the raid goes up but no rebuild.

Any help would be appreciated.


I'm using xen-3.0.1 with two dell poweredge 1850 with two 3.2 GHz 
Xeons, 8 GB RAM (pae version of xen) and four Intel(R) PRO/1000 as xen hosts.

I build xen with
  make XEN_TARGET_X86_PAE=y world
  make XEN_TARGET_X86_PAE=y install
only modified the kernel config before for my needs (md inside domU)
  linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32
232c232,242
< # CONFIG_MD is not set
---
> CONFIG_MD=y
> CONFIG_BLK_DEV_MD=y
> CONFIG_MD_LINEAR=m
> CONFIG_MD_RAID0=m
> CONFIG_MD_RAID1=y
> CONFIG_MD_RAID10=m
> CONFIG_MD_RAID5=m
> CONFIG_MD_RAID6=m
> CONFIG_MD_MULTIPATH=m
> CONFIG_MD_FAULTY=m
> CONFIG_BLK_DEV_DM=n
and bonding in dom0
  linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32
600c600
< # CONFIG_BONDING is not set
---
> CONFIG_BONDING=m


domU config test.cfg:
cpus = "0-3"
vcpus = "4"
#kernel = "/boot/vmlinuz-2.6.12.6-xenU"
# md debugging on
kernel = "/var/tmp/vmlinuz.test"
memory = 128
name = "test"
vif = [ "mac=XX:XX:XX:XX:XX:XX" ]
dhcp = "off"
ip = "192.168.1.1"
netmask = "255.255.255.0"
gateway = "192.168.1.254"
hostname = "test"
disk = [ "phy:gnbd/test-w1,sda1,w", "phy:gnbd/test-w2,sdb1,w" ]
root = "/dev/md0 ro"
extra = "md=0,/dev/sda1,/dev/sdb1"


-- 
greetings

eMHa

Attachment: pgpFEwadO04ZP.pgp
Description: PGP signature

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.