All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@web.de>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Alex Williamson <alex.williamson@redhat.com>,
	qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH 06/13] pci: Add INTx routing notifier
Date: Sun, 10 Jun 2012 14:09:20 +0200	[thread overview]
Message-ID: <4FD48E70.3080406@web.de> (raw)
In-Reply-To: <20120610113922.GO6250@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 1321 bytes --]

On 2012-06-10 13:39, Michael S. Tsirkin wrote:
> It's OK to use recursion but when done through a callback
> like this it's unreadable.

Isn't the alternative poking into foreign bridge device states for their
secondary buses?

> Also, you need to setup you cache after intx cache has been
> initialized, and you provide no clean way to do that.

Once a PCI device is registered, the INTx route can be queried. So the
device user will call pci_device_route_intx_to_irq once (e.g. in the
device init function which is invoked afterward) to fill its cache and
receive a notification if an update is needed. I do not see why, and
specifically how you could query the route earlier or register a callback.

> 
> One way to fix all this is call the notifier for devices, if set, from
> pci_set_bus_intx_routing.
> Then assume that intx to irq translations can be cached
> even though they aren't now. So you will need to invoke
> pci_set_bus_intx_routing on intx to irq mapping changes,
> and that fires the notifier for free.

pci_set_bus_intx_routing is really only for the initial setup of the
static INTx pin routes. And this happens on
pci_bus_irqs/pci_register_bus, ie. triggered by the host bridge. By that
time, there can't be any notifier listeners - as there are no devices yet.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 262 bytes --]

  reply	other threads:[~2012-06-10 12:09 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-04  8:52 [Qemu-devel] [PATCH 00/13] pci: Cleanups & preparations for KVM device assignment Jan Kiszka
2012-06-04  8:52 ` [Qemu-devel] [PATCH 01/13] pci: Refactor pci_change_irq_level Jan Kiszka
2012-06-10 11:28   ` Michael S. Tsirkin
2012-06-04  8:52 ` [Qemu-devel] [PATCH 02/13] pci: Fold pci_bus_new_inplace into pci_bus_new Jan Kiszka
2012-06-07 12:51   ` Andreas Färber
2012-06-07 15:07     ` Jan Kiszka
2012-06-04  8:52 ` [Qemu-devel] [PATCH 03/13] pci: Introduce cached device INTx routing Jan Kiszka
2012-06-10 11:28   ` Michael S. Tsirkin
2012-06-04  8:52 ` [Qemu-devel] [PATCH 04/13] pci: Rename map_irq to route_pin Jan Kiszka
2012-06-10 11:28   ` Michael S. Tsirkin
2012-06-10 13:23   ` Michael S. Tsirkin
2012-06-04  8:52 ` [Qemu-devel] [PATCH 05/13] pci: Add pci_device_route_intx_to_irq Jan Kiszka
2012-06-07 14:32   ` Michael S. Tsirkin
2012-06-07 15:10     ` Jan Kiszka
2012-06-07 16:28       ` Michael S. Tsirkin
2012-06-07 16:46         ` Jan Kiszka
2012-06-07 16:55           ` Michael S. Tsirkin
2012-06-10  9:55           ` Michael S. Tsirkin
2012-06-10 10:08             ` Jan Kiszka
2012-06-10 10:41               ` Michael S. Tsirkin
2012-06-10 10:49                 ` Jan Kiszka
2012-06-10 10:53                   ` Michael S. Tsirkin
2012-06-10 14:19                   ` Alex Williamson
2012-06-10 14:43                     ` Michael S. Tsirkin
2012-06-10 15:25                       ` Alex Williamson
2012-06-10 15:55                         ` Michael S. Tsirkin
2012-06-10 16:30                           ` Jan Kiszka
2012-06-10 16:50                             ` Michael S. Tsirkin
2012-06-10 17:04                               ` Michael S. Tsirkin
2012-06-04  8:52 ` [Qemu-devel] [PATCH 06/13] pci: Add INTx routing notifier Jan Kiszka
2012-06-07 13:14   ` Michael S. Tsirkin
2012-06-07 15:13     ` Jan Kiszka
2012-06-08 12:47   ` [Qemu-devel] [PATCH v2 " Jan Kiszka
2012-06-10  9:48   ` [Qemu-devel] [PATCH " Michael S. Tsirkin
2012-06-10 10:05     ` Jan Kiszka
2012-06-10 10:33       ` Michael S. Tsirkin
2012-06-10 10:44         ` Jan Kiszka
2012-06-10 11:11           ` Michael S. Tsirkin
2012-06-10 11:18             ` Jan Kiszka
2012-06-10 11:39               ` Michael S. Tsirkin
2012-06-10 12:09                 ` Jan Kiszka [this message]
2012-06-10 12:16                   ` Michael S. Tsirkin
2012-06-10 12:33                     ` Jan Kiszka
2012-06-10 12:42                       ` Michael S. Tsirkin
2012-06-10 12:47                         ` Jan Kiszka
2012-06-10 13:19                           ` Michael S. Tsirkin
2012-06-10 12:32               ` Michael S. Tsirkin
2012-06-04  8:52 ` [Qemu-devel] [PATCH 07/13] pci: Make domain and bus unsigned in pci_read_devaddr Jan Kiszka
2012-06-04  8:52 ` [Qemu-devel] [PATCH 08/13] pci: Export pci_parse_devaddr instead of pci_read_devaddr Jan Kiszka
2012-06-04  8:52 ` [Qemu-devel] [PATCH 09/13] pci: Introduce and apply PCIDeviceAddress Jan Kiszka
2012-06-10  9:37   ` Michael S. Tsirkin
2012-06-10 10:10     ` Jan Kiszka
2012-06-04  8:52 ` [Qemu-devel] [PATCH 10/13] pci: Fix coding style of pci_parse_devaddr Jan Kiszka
2012-06-04  8:52 ` [Qemu-devel] [PATCH 11/13] Move pci_parse_devaddr to qdev-properties Jan Kiszka
2012-06-07 12:57   ` Andreas Färber
2012-06-07 15:11     ` Jan Kiszka
2012-06-07 15:56       ` Andreas Färber
2012-06-08 10:57         ` Jan Kiszka
2012-06-08 12:03           ` Andreas Färber
2012-06-08 12:14             ` Jan Kiszka
2012-06-08 12:18               ` Andreas Färber
2012-06-08 12:45                 ` Jan Kiszka
2012-06-08 14:17                   ` Michael S. Tsirkin
2012-06-08 14:20                     ` Anthony Liguori
2012-06-08 13:55     ` Anthony Liguori
2012-06-08 19:21       ` Andreas Färber
2012-06-04  8:52 ` [Qemu-devel] [PATCH 12/13] qdev-properties: Use qemu_parse_pci_devaddr for pci-devfn property Jan Kiszka
2012-06-04  8:52 ` [Qemu-devel] [PATCH 13/13] qdev-properties: Add pci-devaddr property Jan Kiszka
2012-06-10  9:35   ` Michael S. Tsirkin
2012-06-10 10:14     ` Jan Kiszka
2012-06-10 10:49       ` Michael S. Tsirkin
2012-06-10 10:52         ` Jan Kiszka
2012-06-10 10:58           ` Michael S. Tsirkin
2012-06-10 11:00             ` Jan Kiszka
2012-06-10 11:17               ` Michael S. Tsirkin
2012-06-10 11:25                 ` Jan Kiszka
2012-06-10 12:01                   ` Michael S. Tsirkin
2012-06-10 13:41                     ` Alex Williamson
2012-06-10 14:03                       ` Michael S. Tsirkin
2012-06-10 14:41                         ` Alex Williamson
2012-06-10 14:54                           ` Michael S. Tsirkin
2012-06-10 15:15                             ` Alex Williamson
2012-06-10 15:37                               ` Michael S. Tsirkin
2012-06-10 15:58                                 ` Alex Williamson
2012-06-10 16:22                                   ` Michael S. Tsirkin
2012-06-10 17:29                                     ` Alex Williamson
2012-06-10 17:57                                       ` Michael S. Tsirkin
2012-06-10 13:49       ` 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=4FD48E70.3080406@web.de \
    --to=jan.kiszka@web.de \
    --cc=alex.williamson@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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.