Bug 711106

Summary: Block device is mapped into xvde (instead of xvda) on PV Xen guest
Product: Red Hat Enterprise Linux 6 Reporter: Yura Kohut <ykohut>
Component: kernelAssignee: Red Hat Kernel Manager <kernel-mgr>
Status: CLOSED NOTABUG QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.1CC: drjones
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-06 16:09:30 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Yura Kohut 2011-06-06 14:50:44 UTC
Description of problem:
Block devices (disk devices) are mapped into xvde (instead of xvda - ..) while "Red Hat Enterprise Linux Server release 6.1 (Santiago)" amd64 (x86_64) is running as paravirtualized Xen guest. 

Version-Release number of selected component (if applicable):
/etc/redhat-release 
Red Hat Enterprise Linux Server release 6.1 (Santiago)

Linux version 2.6.32-131.2.1.el6.x86_64 (mockbuild.bos.redhat.com) (gcc version 4.4.5 20110214 (Red Hat 4.4.5-6) (GCC) ) #1 SMP Wed May 18 07:07:37 EDT 2011

Command line: ro root=/dev/xvda1 rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us


How reproducible:
Run RHEL 6.1 x86_64 as PV guest (DomU).
Run RHEL 5.6 x86_64 with Xen 3.4.3 as hypervisor system (Dom0)

Steps to Reproduce:
1. Get the RHEL 5.6 x86_64 box with Xen 3.4.3 installed. Some hypervisor details:
xm info
host                   : ****
release                : 2.6.18-194.17.4.el5xen
version                : #1 SMP Mon Oct 25 16:36:31 EDT 2010
machine                : x86_64
nr_cpus                : 4
nr_nodes               : 1
cores_per_socket       : 4
threads_per_core       : 1
cpu_mhz                : 2128
hw_caps                : bfebfbff:28100800:00000000:00000340:009ce3bd:00000000:00000001:00000000
virt_caps              : hvm
total_memory           : 6135
free_memory            : 2582
node_to_cpu            : node0:0-3
node_to_memory         : node0:2582
xen_major              : 3
xen_minor              : 4
xen_extra              : .3
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          : unavailable
cc_compiler            : gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)
cc_compile_by          : root
cc_compile_domain      : gitco.tld
cc_compile_date        : Sat Jan 22 14:01:09 CET 2011
xend_config_format     : 4

2. Prepare the following DomU (Xen guest) configuration file:
bootloader = "/usr/bin/pygrub"
vcpus = "4"
memory = "128"
name = "rhel-6.1"

disk = [ "phy:/dev/<dev1>,sda1,w", "phy:/dev/<dev2>,sda2,w" ]
vfb = [ "type=vnc,vncpasswd=" ]


where, /dev/<dev1> and /dev/<dev2> - block devices for the guest (DomU).


3. Create the guest with:
xm create <domu_config_file> -c

where, <domu_config_file> Xen guest configuration file (you have just created on step #2) full name

  
Actual results:

dracut: Starting plymouth daemon
xlblk_init: register_blkdev major: 202 
blkfront: xvde1: barriers disabled
blkfront: xvde2: barriers disabled
dracut Warning: No root device "block:/dev/xvda1" found
dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.
dracut Warning: Signal caught!
dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.
Kernel panic - not syncing: Attempted to kill init!
Pid: 1, comm: init Not tainted 2.6.32-131.2.1.el6.x86_64 #1
Call Trace:
 [<ffffffff814da16e>] ? panic+0x78/0x143
 [<ffffffff8106c452>] ? do_exit+0x852/0x860
 [<ffffffff81173fc5>] ? fput+0x25/0x30
 [<ffffffff8106c4b8>] ? do_group_exit+0x58/0xd0
 [<ffffffff8106c547>] ? sys_exit_group+0x17/0x20
 [<ffffffff8100b172>] ? system_call_fastpath+0x16/0x1b
Expected results:

Devices are mapped inside the PV guest (DomU) as xvda1 and xvda2

Additional info:

The bug seems to be similar to https://bugzilla.redhat.com/show_bug.cgi?id=691339

But the guest is running on PV mode (not HVM).

Comment 2 Andrew Jones 2011-06-06 16:09:15 UTC
Hi,

You should change your config from

disk = [ "phy:/dev/<dev1>,sda1,w", "phy:/dev/<dev2>,sda2,w" ]

to

disk = [ "phy:/dev/<dev1>,xvda1,w", "phy:/dev/<dev2>,xvda2,w" ]

The scsi major numbers are reserved for emulated devices, and, while there's conversion code that remaps them to xvd devices (as you've seen), they add an offset to avoid conflicts. PV guests should just always use xvd.