Bug 705162

Summary: virtio_pci actually required, but not depended on by virtio_blk module
Product: Red Hat Enterprise Linux 6 Reporter: joshua
Component: kernelAssignee: Paolo Bonzini <pbonzini>
Status: CLOSED NOTABUG QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.1CC: areis
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-06-06 14:20:59 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 joshua 2011-05-16 20:17:58 UTC
When converting a VM over to use virtio recently,  had to change modprobe.conf
to reference virtio_blk and virtio_net, and remake the initrd.

When running mkinitrd with verbose output, I noticed that virtio_blk,
virtio_pci, virtio_ring, and virtio where referenced as being included in the
initrd.

A reboot doesn't work, as the kernel can't find its own root disk.
I rescued the system, and remade the initrd with exactly the same command as
before, the one addition:  --with=virtio_pci

This works!

The problem is shown by "modinfo virtio_blk".  Notice that virtio_pci isn't
listed as a dependency... even though it is actually required to work properly.
Can we get this fixed so that mkinitrd doesn't unknowingly create incomplete
initrds ?

Comment 2 RHEL Program Management 2011-10-07 15:35:24 UTC
Since RHEL 6.2 External Beta has begun, and this bug remains
unresolved, it has been rejected as it is not proposed as
exception or blocker.

Red Hat invites you to ask your support representative to
propose this request, if appropriate and relevant, in the
next release of Red Hat Enterprise Linux.

Comment 3 Eduardo Habkost 2012-06-06 14:20:59 UTC
virtio_blk does not depend on virtio_pci by design. The virtio module doesn't require all virtio devices to be PCI devices (see the upstream virtio_mmio module, for example).

After you are running on a system using virtio_blk, dracut pulls virtio_pci automatically. But as you are doing a manual conversion, you may need --with virtio_pci to be used on the first time you generate the initrd.