[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/2] virtio-pci: fix abort when fail to allocate
From: |
Amos Kong |
Subject: |
Re: [Qemu-devel] [PATCH 0/2] virtio-pci: fix abort when fail to allocate ioeventfd |
Date: |
Tue, 13 Mar 2012 20:30:27 -0400 (EDT) |
----- Original Message -----
> On Tue, Mar 13, 2012 at 2:47 PM, Amos Kong <address@hidden> wrote:
...
Hi, Stefan
> > diff --git a/kvm-all.c b/kvm-all.c
> > index 77eadf6..7157e78 100644
> > --- a/kvm-all.c
> > +++ b/kvm-all.c
> > @@ -771,6 +771,8 @@ static void
> > kvm_io_ioeventfd_add(MemoryRegionSection *sectio
> >
> > r = kvm_set_ioeventfd_pio_word(fd,
> > section->offset_within_address_space,
> > data, true);
> > + if (r == -ENOSPC)
> > + return;
>
> The caller needs a way to detect the failure.
Yes, about memory API
> > if (r < 0) {
> > abort();
> > }
> >
> >
> >
> >> Basically we need a way for ioeventfd to fail if we hit rlimit or
> >> the
> >> in-kernel io bus device limit. Suggestions?
> >
> >
> >
> >> (The reason I don't like using has_many_ioeventfds() is because
> >> it's
> >> ugly and inefficient to open and then close file descriptors -
> >> especially in a multithreaded program where file descriptor
> >> availability can change while we're executing.)
> >
> > I identified it's too ugly ;)
> > but I want to reserve it for older kernel (iobus limit is 6)
> >
> > Can we remove the check for old kernel (iobus limit is 6)?
> > user can disable ioeventfd through qemu cmdline
> > virtio-net-pci.ioeventfd=on/off
> > virtio-blk-pci.ioeventfd=on/off
>
> Why do you want to remove the iobus limit 6 check? The point of that
> check is to allow vhost-net to always work since it requires an
> ioeventfd.
### -device virtio-blk-pci,ioeventfd=off,drive=drive-virtio0-0-0,id=id1 -drive
...
this blk dev will not use ioeventfd for io notification.
### -device virtio-net-pci,netdev=he,ioeventfd=off -netdev tap,id=he
this net dev will not use ioeventfd
### -device virtio-net-pci,netdev=he,vhost=on -netdev tap,id=he
this dev will take 2 ioeventfd (service notifications from rx/tx queues)
ioeventfd paramenter is a way for user to limit ioeventfd usage.
### qemu-kvm -net none -device
virtio-blk-pci,ioeventfd=on,drive=drive-virtio0-0-0,id=id1 -drive ...
For some odd users, they don't use network, and they need a better disk io
performance.
but we could not satisfy them if we reserve the checking of 6 iobus devs.
Strategy should be decided by users.
> Userspace virtio devices, on the other hand, can
> gracefully fall back to non-ioeventfd.
This is expected, not abort.
Thanks, Amos.
- [Qemu-devel] [PATCH 1/2] return available ioeventfds count in kvm_has_many_ioeventfds(), (continued)
Re: [Qemu-devel] [PATCH 0/2] virtio-pci: fix abort when fail to allocate ioeventfd, Stefan Hajnoczi, 2012/03/13
Re: [Qemu-devel] [PATCH 0/2] virtio-pci: fix abort when fail to allocate ioeventfd, Avi Kivity, 2012/03/14
- Re: [Qemu-devel] [PATCH 0/2] virtio-pci: fix abort when fail to allocate ioeventfd, Stefan Hajnoczi, 2012/03/14
- Re: [Qemu-devel] [PATCH 0/2] virtio-pci: fix abort when fail to allocate ioeventfd, Avi Kivity, 2012/03/14
- Re: [Qemu-devel] [PATCH 0/2] virtio-pci: fix abort when fail to allocate ioeventfd, Stefan Hajnoczi, 2012/03/14
- Re: [Qemu-devel] [PATCH 0/2] virtio-pci: fix abort when fail to allocate ioeventfd, Avi Kivity, 2012/03/14
- Re: [Qemu-devel] [PATCH 0/2] virtio-pci: fix abort when fail to allocate ioeventfd, Stefan Hajnoczi, 2012/03/14
- Re: [Qemu-devel] [PATCH 0/2] virtio-pci: fix abort when fail to allocate ioeventfd, Amos Kong, 2012/03/16
- Re: [Qemu-devel] [PATCH 0/2] virtio-pci: fix abort when fail to allocate ioeventfd, Stefan Hajnoczi, 2012/03/19
- Re: [Qemu-devel] [PATCH 0/2] virtio-pci: fix abort when fail to allocate ioeventfd, Avi Kivity, 2012/03/19