From: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>,
Jesse Barnes <jbarnes@virtuousgeek.org>,
Linux PCI <linux-pci@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 5/8] PCI PCIe portdrv: Fix allocation of interrupts
Date: Mon, 19 Jan 2009 10:52:01 +0900 [thread overview]
Message-ID: <4973DCC1.3070009@jp.fujitsu.com> (raw)
In-Reply-To: <200901170120.38238.rjw@sisk.pl>
Rafael J. Wysocki wrote:
> On Friday 16 January 2009, Rafael J. Wysocki wrote:
>> On Friday 16 January 2009, Hidetoshi Seto wrote:
>>> Rafael J. Wysocki wrote:
>>>> On Thursday 15 January 2009, Rafael J. Wysocki wrote:
>>>>> On Thursday 15 January 2009, Rafael J. Wysocki wrote:
(snip)
>>>>>> In any case, I think we should
>>>>>> (a) get the number of the port's MSI-X table entries _first_, without enabling
>>>>>> MSI-X,
>>> We cannot do this because both of PCIE_CAPABILITIES_REG and PCI_ERR_ROOT_STATUS
>>> will indicate the number for MSI, not for MSI-X without enabling MSI-X.
>> Yes, we can. We don't read PCIE_CAPABILITIES_REG and PCI_ERR_ROOT_STATUS at
>> this point yet and the number of entries in the MSI-X table is constant
>> (read-only), so we can read it even before enabling MSI-X. Actually, our MSI-X
>> code does that already anyway.
Now I caught you've mean "get the size of MSI-X table."
>>>>>> (b) allocate as many MSI-X vectors as indicated by this number, even though
>>>>>> some of them may not be used,
>> (b) should be: call pci_enable_msix() with the last argument equal to the
>> number of entries in the MSI-X table or 32, whichever is smaller.
Good.
>>>>>> (c) use PCIE_CAPABILITIES_REG and PCI_ERR_ROOT_STATUS to check
>>>>>> which vector has been allocated to which service.
>>>>> (d) mask the unused vectors.
>>>> However, it's probably simpler to do something like in your patch, although
>>>> I don't like the dummy enabling of MSI-X at all.
>>> How about this?
>>>
>>> #define PCIE_MSIX_ENTRY_HPPME MAGIC_NUMBER_1
>>> #define PCIE_MSIX_ENTRY_AER MAGIC_NUMBER_2
>>>
>>> struct msix_entry msix_entries[] =
>>> {{0, PCIE_MSIX_ENTRY_HPPME}, {0, PCIE_MSIX_ENTRY_AER}};
>>> status = pci_enable_msix(dev, msix_entries, nvec);
>>>
>>> And modify pci_enable_msix() to handle these magic numbers.
I found a down side of my idea:
it requires modification of arch_setup_msi_irqs etc. too.
>> Quite frankly, I prefer the procedure described above in (a) - (d). I'll try
>> to implement it and we'll see how it looks like.
>
> I've just sent the patch in the other thread.
OK. I'll review it.
Thanks,
H.Seto
next prev parent reply other threads:[~2009-01-19 1:52 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-04 22:46 [PATCH 0/8] PCI Express port driver fixes and cleanups Rafael J. Wysocki
2009-01-04 22:48 ` [PATCH 1/8] PCI PCIe portdrv: Remove root ports MSI quirk Rafael J. Wysocki
2009-01-09 23:12 ` Jesse Barnes
2009-01-09 23:18 ` Jesse Barnes
2009-01-09 23:33 ` Rafael J. Wysocki
2009-01-04 22:49 ` [PATCH 2/8] PCI PCIe portdrv: Aviod using service devices with wrong interrupts Rafael J. Wysocki
2009-01-09 23:23 ` Jesse Barnes
2009-01-04 22:51 ` [PATCH 3/8] PCI PCIe portdrv: Remove unused device extension Rafael J. Wysocki
2009-01-09 23:23 ` Jesse Barnes
2009-01-04 22:54 ` [PATCH 4/8] PCI PCIe portdrv: Do not enable port device before setting up interrupts Rafael J. Wysocki
2009-01-09 23:25 ` Jesse Barnes
2009-01-04 22:55 ` [PATCH 5/8] PCI PCIe portdrv: Fix allocation of interrupts Rafael J. Wysocki
2009-01-08 3:02 ` Kenji Kaneshige
2009-01-08 7:13 ` Rafael J. Wysocki
2009-01-08 8:20 ` Kenji Kaneshige
2009-01-08 16:53 ` Rafael J. Wysocki
2009-01-08 20:45 ` Rafael J. Wysocki
2009-01-09 23:33 ` Jesse Barnes
2009-01-09 23:38 ` Rafael J. Wysocki
2009-01-13 2:47 ` Kenji Kaneshige
2009-01-13 11:17 ` Rafael J. Wysocki
2009-01-14 6:08 ` Kenji Kaneshige
2009-01-14 10:35 ` Rafael J. Wysocki
2009-01-14 10:57 ` Rafael J. Wysocki
2009-01-15 6:24 ` Kenji Kaneshige
2009-01-15 7:38 ` Hidetoshi Seto
2009-01-15 10:31 ` Kenji Kaneshige
2009-01-15 16:42 ` Rafael J. Wysocki
2009-01-15 19:05 ` Rafael J. Wysocki
2009-01-15 19:10 ` Rafael J. Wysocki
2009-01-16 7:33 ` Hidetoshi Seto
2009-01-16 9:29 ` Rafael J. Wysocki
2009-01-17 0:20 ` Rafael J. Wysocki
2009-01-19 1:52 ` Hidetoshi Seto [this message]
2009-01-19 6:27 ` Kenji Kaneshige
2009-01-13 2:34 ` Kenji Kaneshige
2009-01-04 22:57 ` [PATCH 6/8] PCI PCIe portdrv: Remove unnecessary function Rafael J. Wysocki
2009-01-04 22:59 ` [PATCH 7/8] PCI PCIe portdrv: Simplily probe callback of service drivers Rafael J. Wysocki
2009-01-07 12:15 ` Rafael J. Wysocki
2009-01-04 23:01 ` [PATCH 8/8] PCI PCIe portdrv: Remove struct pcie_port_service_id Rafael J. Wysocki
2009-01-07 12:16 ` Rafael J. Wysocki
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=4973DCC1.3070009@jp.fujitsu.com \
--to=seto.hidetoshi@jp.fujitsu.com \
--cc=jbarnes@virtuousgeek.org \
--cc=kaneshige.kenji@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=rjw@sisk.pl \
/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.