Skip to contentSkip to conversation

a few words about drive/pci add/remove

DISCUSSION Michael Tokarev 2 participants 3 messages Jun 17, 2009 KVM

lore
Share & tools
lore
#0 lore raw

I tried drive hot add/remove today.

And immediately had a few.. issues.
qemu-kvm-0.10.5.

First of all, there are several "definitions"
of drive_add and several others in `help'
monitor command output:

This one appears to be real:
drive_add pci_addr=[[<domain>:]<bus>:]<slot> [file=file][,if=type][,bus=n]
[,unit=m][,media=d][index=i] [,cyls=c,heads=h,secs=s[,trans=t]] [snapshot=on|off][,cache=on|off] -- add drive to PCI storage controller

And this, a few lines below it, is "fake":
drive_add pcibus pcidevfn [file=file][,if=type][,bus=n] [,unit=m][,media=d][index=i] [,cyls=c,heads=h,secs=s[,trans=t]]

Note also the "cache" argument is not the same
as it is for -drive command-line argument.

Ok, so trying the first option (after looking at the source and after noticing the first correct form), I realized it does not work. Or at least I can't get it to work. It either says the PCI slot mentioned is in use (when specifying pci_addr=<slot> which is present in the guest), or that the given slot does not exists.

Ok, so I discovered also pci_add. That one worked, and I've got new pci device in guest which recognized it nicely.

Now, after realizing I added the wrong file ;), I
tried to remove it -- and got an instant warning
in the guest:

WARNING: at drivers/base/core.c:122 device_release+0x5f/0x70()
Device 'virtio8' does not have a release() function, it is broken and must be fixed.
Modules linked in: acpiphp dock pci_hotplug xfs e1000 button ext3 jbd mbcache virtio_blk virtio_net virtio_pci virtio_ring virtio
Pid: 39, comm: kacpi_notify Tainted: G S        2.6.27-i686smp #2.6.27.25
 [<c012b11f>] warn_slowpath+0x6f/0xa0
 [<c0110030>] generic_set_mtrr+0x50/0x110
 [<c011fd2e>] __wake_up+0x3e/0x60
 [<c01d2195>] release_sysfs_dirent+0x45/0xb0
 [<c01d23e1>] sysfs_addrm_finish+0x1b1/0x1f0
 [<c01d2447>] remove_dir+0x27/0x40
 [<c01d24cf>] sysfs_remove_dir+0x5f/0x70

...
[<f880a44d>] virtio_pci_remove+0x11/0x4c [virtio_pci]
...

When trying to re-add another (right this time) drive the same way (using pci_addr=auto), the guest crashed.

JFYI for now.

Thanks.

/mjt

#1 lore raw
Quoted 3 lines · Michael Tokarev
WARNING: at drivers/base/core.c:122 device_release+0x5f/0x70()

Device 'virtio8' does not have a release() function, it is broken and must be fixed.

This should be fixed in 2.6.29

Cheers,
Mark.

#2 lore raw
Quoted 7 lines · Mark McLoughlin
Quoted 3 lines · Michael Tokarev
WARNING: at drivers/base/core.c:122 device_release+0x5f/0x70()

Device 'virtio8' does not have a release() function, it is broken and must be fixed.

This should be fixed in 2.6.29

Yes indeed, 2.6.29 adds/removes pci devices just fine.

Can we apply this to 2.6.27.y long-term stable release too?

Thanks!

/mjt