qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] virtio-blk issues
@ 2009-03-03 12:54 Christoph Hellwig
  2009-03-03 14:22 ` Paul Brook
  0 siblings, 1 reply; 7+ messages in thread
From: Christoph Hellwig @ 2009-03-03 12:54 UTC (permalink / raw)
  To: qemu-devel

I've been trying to move setup from kvm 72 in debian testing to the current
qemu CVS.  The setup is using 7 virtio_blk disks and used to work on the
old setup, but with current qemu the kernel (current Linus' HEAD from a few
days ago) hangs when trying to setup the irq routing for the virtio_pci
devices:

virtio pci 0000:00:06.0: can't derive routing for PCI INT A
virtio pci 0000:00:06.0: PCI INT A: no GSI - using IRQ 9

Below is the config file I'm using.  When commenting out the drive lines
so that only the first two are left the system boots, although rather
slowly compared to kvm (this is using the minimal kvm support in qemu
upstream, without it it's of course even slower).


#!/bin/sh

/opt/qemu/bin/qemu -m 1000 -enable-kvm -kernel $1 \
	-drive file=/dev/vg00/qemu-root,if=virtio,media=disk \
	-drive file=/dev/vg00/qemu-test,if=virtio,media=disk \
	-drive file=/dev/vg00/qemu-test-log,if=virtio,media=disk \
	-drive file=/dev/vg00/qemu-test-rt,if=virtio,media=disk \
	-drive file=/dev/vg00/qemu-scratch,if=virtio,media=disk \
	-drive file=/dev/vg00/qemu-scratch-log,if=virtio,media=disk \
	-drive file=/dev/vg00/qemu-scratch-rt,if=virtio,media=disk \
	-append "root=/dev/vda console=tty0 console=ttyS0,38400n8"

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] virtio-blk issues
  2009-03-03 12:54 [Qemu-devel] virtio-blk issues Christoph Hellwig
@ 2009-03-03 14:22 ` Paul Brook
  2009-03-03 15:23   ` Christoph Hellwig
                     ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Paul Brook @ 2009-03-03 14:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: Christoph Hellwig

On Tuesday 03 March 2009, Christoph Hellwig wrote:
> I've been trying to move setup from kvm 72 in debian testing to the current
> qemu CVS.  The setup is using 7 virtio_blk disks and used to work on the
> old setup, but with current qemu the kernel (current Linus' HEAD from a few
> days ago) hangs when trying to setup the irq routing for the virtio_pci
> devices:
>
> virtio pci 0000:00:06.0: can't derive routing for PCI INT A
> virtio pci 0000:00:06.0: PCI INT A: no GSI - using IRQ 9

IIRC this is partly a bios issue. Real PIIX3 based systems never have more 
than ~5 PCI slots, so it doesn't have interrupt routing for more devices.

There are two solutions: Fix the bios to handle machines with large numbers of 
PCI slots, or have create multifunction PCI devices so lots of virtio 
instances don't use so many virtual PCI slots.

Paul

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] virtio-blk issues
  2009-03-03 14:22 ` Paul Brook
@ 2009-03-03 15:23   ` Christoph Hellwig
  2009-03-03 17:22   ` Anthony Liguori
  2009-03-16 13:22   ` Avi Kivity
  2 siblings, 0 replies; 7+ messages in thread
From: Christoph Hellwig @ 2009-03-03 15:23 UTC (permalink / raw)
  To: Paul Brook; +Cc: qemu-devel, Christoph Hellwig

On Tue, Mar 03, 2009 at 02:22:43PM +0000, Paul Brook wrote:
> On Tuesday 03 March 2009, Christoph Hellwig wrote:
> > I've been trying to move setup from kvm 72 in debian testing to the current
> > qemu CVS.  The setup is using 7 virtio_blk disks and used to work on the
> > old setup, but with current qemu the kernel (current Linus' HEAD from a few
> > days ago) hangs when trying to setup the irq routing for the virtio_pci
> > devices:
> >
> > virtio pci 0000:00:06.0: can't derive routing for PCI INT A
> > virtio pci 0000:00:06.0: PCI INT A: no GSI - using IRQ 9
> 
> IIRC this is partly a bios issue. Real PIIX3 based systems never have more 
> than ~5 PCI slots, so it doesn't have interrupt routing for more devices.
>
> There are two solutions: Fix the bios to handle machines with large numbers of 
> PCI slots, or have create multifunction PCI devices so lots of virtio 
> instances don't use so many virtual PCI slots.
> 

Or we could try to create a pc+PIIX style VM.  Surely having more than
two disks should not be that uncommon..

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] virtio-blk issues
  2009-03-03 14:22 ` Paul Brook
  2009-03-03 15:23   ` Christoph Hellwig
@ 2009-03-03 17:22   ` Anthony Liguori
  2009-03-16 13:22   ` Avi Kivity
  2 siblings, 0 replies; 7+ messages in thread
From: Anthony Liguori @ 2009-03-03 17:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: Christoph Hellwig

Paul Brook wrote:
> On Tuesday 03 March 2009, Christoph Hellwig wrote:
>   
>> I've been trying to move setup from kvm 72 in debian testing to the current
>> qemu CVS.  The setup is using 7 virtio_blk disks and used to work on the
>> old setup, but with current qemu the kernel (current Linus' HEAD from a few
>> days ago) hangs when trying to setup the irq routing for the virtio_pci
>> devices:
>>
>> virtio pci 0000:00:06.0: can't derive routing for PCI INT A
>> virtio pci 0000:00:06.0: PCI INT A: no GSI - using IRQ 9
>>     
>
> IIRC this is partly a bios issue. Real PIIX3 based systems never have more 
> than ~5 PCI slots, so it doesn't have interrupt routing for more devices.
>
> There are two solutions: Fix the bios to handle machines with large numbers of 
> PCI slots, or have create multifunction PCI devices so lots of virtio 
> instances don't use so many virtual PCI slots.
>   

You then those the ability to hotplug individual block devices (not that 
that's a terribly useful feature anyway).

Regards,

Anthony Liguori

> Paul
>
>
>   

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] virtio-blk issues
  2009-03-03 14:22 ` Paul Brook
  2009-03-03 15:23   ` Christoph Hellwig
  2009-03-03 17:22   ` Anthony Liguori
@ 2009-03-16 13:22   ` Avi Kivity
  2009-03-18  8:08     ` Christoph Hellwig
  2 siblings, 1 reply; 7+ messages in thread
From: Avi Kivity @ 2009-03-16 13:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: Christoph Hellwig

Paul Brook wrote:
> On Tuesday 03 March 2009, Christoph Hellwig wrote:
>   
>> I've been trying to move setup from kvm 72 in debian testing to the current
>> qemu CVS.  The setup is using 7 virtio_blk disks and used to work on the
>> old setup, but with current qemu the kernel (current Linus' HEAD from a few
>> days ago) hangs when trying to setup the irq routing for the virtio_pci
>> devices:
>>
>> virtio pci 0000:00:06.0: can't derive routing for PCI INT A
>> virtio pci 0000:00:06.0: PCI INT A: no GSI - using IRQ 9
>>     
>
> IIRC this is partly a bios issue. Real PIIX3 based systems never have more 
> than ~5 PCI slots, so it doesn't have interrupt routing for more devices.
>
> There are two solutions: Fix the bios to handle machines with large numbers of 
> PCI slots, or have create multifunction PCI devices so lots of virtio 
> instances don't use so many virtual PCI slots.
>
>   

The kvm bios supports 32 slots; I don't know if upstream bochs picked up 
these changes.

In any case I'd like to see a virtio-blk controller which can support an 
arbitrary number of disks, much like a SCSI controller.  A pci slot or 
function per disk is wasteful.

-- 
error compiling committee.c: too many arguments to function

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] virtio-blk issues
  2009-03-16 13:22   ` Avi Kivity
@ 2009-03-18  8:08     ` Christoph Hellwig
  2009-03-18  8:41       ` Avi Kivity
  0 siblings, 1 reply; 7+ messages in thread
From: Christoph Hellwig @ 2009-03-18  8:08 UTC (permalink / raw)
  To: Avi Kivity; +Cc: qemu-devel, Christoph Hellwig

On Mon, Mar 16, 2009 at 03:22:24PM +0200, Avi Kivity wrote:
> The kvm bios supports 32 slots; I don't know if upstream bochs picked up 
> these changes.

I tried using the kvm pc-bios with upstream qemu, but it fails pretty
early on when the kernel tries to initialize the timer interrupt.

What's the protocol for syncing all those bios changes?

> In any case I'd like to see a virtio-blk controller which can support an 
> arbitrary number of disks, much like a SCSI controller.  A pci slot or 
> function per disk is wasteful.

I'll see what I can do.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] virtio-blk issues
  2009-03-18  8:08     ` Christoph Hellwig
@ 2009-03-18  8:41       ` Avi Kivity
  0 siblings, 0 replies; 7+ messages in thread
From: Avi Kivity @ 2009-03-18  8:41 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: qemu-devel

Christoph Hellwig wrote:
> On Mon, Mar 16, 2009 at 03:22:24PM +0200, Avi Kivity wrote:
>   
>> The kvm bios supports 32 slots; I don't know if upstream bochs picked up 
>> these changes.
>>     
>
> I tried using the kvm pc-bios with upstream qemu, but it fails pretty
> early on when the kernel tries to initialize the timer interrupt.
>
>   

Interrupt routing is different between kvm and qemu due to HPET sending 
interrupts to PIC IRQ0 and IOAPIC INTI2; the kvm up to 2.6.29 only 
supports 1:1 mapping between PIC and IOAPIC pins 0-15.

> What's the protocol for syncing all those bios changes?
>   

I merge them occasionally, but in this case, syncing the changes would 
cause one or the other to break.

What is needed is to sync the qemu changes, and additionally add code to 
detect the non-existence of non-1:1 mapping and revert back to the old 
behavior in that case (and disable HPET as well).

>> In any case I'd like to see a virtio-blk controller which can support an 
>> arbitrary number of disks, much like a SCSI controller.  A pci slot or 
>> function per disk is wasteful.
>>     
>
> I'll see what I can do.
>   

Did I mention my wishlist includes indirect virtio requests, where a 
virtio ring entry points to an sglist instead of the buffer?  Right now 
a 1MB request will consume 256 ring entries, which kills concurrency 
with many disks on a single ring.

-- 
error compiling committee.c: too many arguments to function

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-03-18  8:41 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-03 12:54 [Qemu-devel] virtio-blk issues Christoph Hellwig
2009-03-03 14:22 ` Paul Brook
2009-03-03 15:23   ` Christoph Hellwig
2009-03-03 17:22   ` Anthony Liguori
2009-03-16 13:22   ` Avi Kivity
2009-03-18  8:08     ` Christoph Hellwig
2009-03-18  8:41       ` Avi Kivity

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).