From: Stefan Weil <weil@mail.berlios.de>
To: Isaku Yamahata <yamahata@valinux.co.jp>
Cc: qemu-devel@nongnu.org, mst@redhat.com
Subject: Re: [Qemu-devel] [PATCH v7 3/4] piix_pci: optimize set irq path
Date: Sun, 22 May 2011 14:24:45 +0200 [thread overview]
Message-ID: <4DD9008D.7080204@mail.berlios.de> (raw)
In-Reply-To: <faf94d046e73447ab3d2a3077bcf60fe37b5682b.1301657711.git.yamahata@valinux.co.jp>
Am 01.04.2011 13:43, schrieb Isaku Yamahata:
> optimize irq routing in piix_pic.c which has been a TODO.
> So far piix3 tracks each pirq level and checks whether a given pic pins is
> asserted by seeing if each pirq is mapped into the pic pin.
> This is independent on irq routing, but data path is on slow path.
>
> Given that irq routing is rarely changed and asserting pic pins is on
> data path, the path that asserts pic pins should be optimized and
> chainging irq routing should be on slow path.
> The new behavior with this patch series is to use bitmap which is
> addressed
> by pirq and pic pins with a given irq routing.
> When pirq is asserted, the bitmap is set and see if the pic pins is
> asserted by checking the bitmaps.
> When irq routing is changed, rebuild the bitmap and re-assert pic pins.
>
> test:
> - create VM with 4 e1000 nics in different pci slots
> (i.e. fn=0 for each e1000)
> Thus those e1000's INTA are connected to each PIRQ[A-D].
> - run linux as guest and saw each devices triggers interrupt
> by seeing /proc/interrupts. And then confirmed that each PIRQ[A-D]
> surely asserted interrupts.
> Because irq 10 and 11 are shared by 4 e1000's, it only one NIC is
> activated
> with ifconfig ethN up/down when counting interrupts.
>
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
> ---
> Changes v4 -> v5:
> - fix piix_set_irq_pic()
>
> Changes v3 -> v4:
> - replace irq_num with pirq or pci_intx
>
> Changes v1 -> v2:
> - some minor clean ups
> - commit log message
> ---
> hw/piix_pci.c | 101
> +++++++++++++++++++++++++++++++++++++++++++++++---------
> 1 files changed, 84 insertions(+), 17 deletions(-)
>
> diff --git a/hw/piix_pci.c b/hw/piix_pci.c
> index 35e420c..7ffb821 100644
> --- a/hw/piix_pci.c
> +++ b/hw/piix_pci.c
...
Hi,
I got a regression report which was obviously caused by this commit:
$ git bisect bad
ab431c283e7055bcd6fb622f212bb29e84a6a134 is the first bad commit
commit ab431c283e7055bcd6fb622f212bb29e84a6a134
Author: Isaku Yamahata <yamahata@valinux.co.jp>
Date: Fri Apr 1 20:43:23 2011 +0900
My test scenario:
i386-softmmu/qemu -L pc-bios -cdrom tinycore_3.5.1.iso -m 256 -boot d
-net nic -net user -net dump
* Boot the default configuration (tinycore, or tinycore debug).
* Wait until X Windows is up.
* Check the size of qemu*.pcap. If it is only a few bytes, the test failed.
Emulated networking then does not work, Tinycore does not get an IP
address via DHCP.
The original report used tinycore_3.6.iso and the latest w32 binaries
from qemu.weilnetz.de
with the same result. It also says that other Linux distributions show
the same problem
(Fedora-14-i686-Live-Desktop.iso).
Regards
Stefan W.
next prev parent reply other threads:[~2011-05-22 12:25 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-01 11:43 [Qemu-devel] [PATCH v7 0/4] piix_pci: optimize irq data path Isaku Yamahata
2011-04-01 11:43 ` [Qemu-devel] [PATCH v7 1/4] pci: add accessor function to get irq levels Isaku Yamahata
2011-04-01 11:43 ` [Qemu-devel] [PATCH v7 2/4] piix_pci: eliminate PIIX3State::pci_irq_levels Isaku Yamahata
2011-04-01 11:43 ` [Qemu-devel] [PATCH v7 3/4] piix_pci: optimize set irq path Isaku Yamahata
2011-05-22 12:24 ` Stefan Weil [this message]
2011-05-22 12:52 ` TeLeMan
2011-04-01 11:43 ` [Qemu-devel] [PATCH v7 4/4] piix_pci: load path clean up Isaku Yamahata
2011-04-01 14:38 ` [Qemu-devel] Re: [PATCH v7 0/4] piix_pci: optimize irq data path Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4DD9008D.7080204@mail.berlios.de \
--to=weil@mail.berlios.de \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=yamahata@valinux.co.jp \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.