linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Yinghai Lu <yinghai@kernel.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
	Bjorn Helgaas <bhelgaas@google.com>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 00/26] x86, irq: support ioapic device hotplug
Date: Tue, 12 Feb 2013 18:36:17 -0800	[thread overview]
Message-ID: <CAE9FiQWcD8U9YaKQojbRW07rqUjqRQcJw6t9y0Si81tgk-V98Q@mail.gmail.com> (raw)
In-Reply-To: <5119DCCD.70709@zytor.com>

On Mon, Feb 11, 2013 at 10:10 PM, H. Peter Anvin <hpa@zytor.com> wrote:
> On 02/11/2013 01:34 AM, Ingo Molnar wrote:
>>
>> * Yinghai Lu <yinghai@kernel.org> wrote:
>>
>>> Hi,
>>>
>>> Current x86 code does not support iapic hotplug yet.
>>
>> Please give a better high-level description: outline how an
>> IO-APIC will be hotplugged physically and what changes the
>> user will experience.

Intel cpu (from IVB) include cpu, mem controller, and IIO.
When hotadd cpu physically, it will involve cpu hotplug, mem hotplug,
and pci root hotplug.

IIO includes pci host bridge, ioapic controller and iommu.
pci devices will need to use ioapic and iommu.
So to make pci hotplug working, we need to add ioapic hotplug support.

>>
>> That needs at least 2 paragraphs, not one cursory sentence. Then
>> should come technical descriptions - but even those need
>> improvements, please first explain the current status quo, then
>> explain how that is inadequate for IO-APIC hot-plugging, *then*
>> only explain what you are doing in the patch ...

Now ioapics are with ACPI MADT table. During booting, kernel will parse
MADT and put info into ioapic arrays.
Also Bjorn added one pci device based driver, but it is not wired in yet,
as it need to call acpi_register_ioapic, and that is TBD.

This patchset will
1. extend genirq to support reserve/realloc method.
   because we want to irqs for one ioapic controller to be linear mapping
   to the gsi range.
2. change ioapic array operation code so we could insert new ioapic and
   remove one leave the blank slot.
3. record irq_base in gsi_config in ioapic struct, and use it to convert gsi
    to irq for pci device using that ioapic controller
4. make static ioapic path (from MADT) use same code as hotadd path,
   with reserve/realloc.
5. change ioapic add/removing to acpi way, as that is only need when
   pci root bus hotplug. Also it will make it support the case that ioapic
   controller is hiding in pci controller space or ioapic address is not
   managed by pci reallocation system.

>>
>
> A few more notes:
>
> Please explain what you mean with pre-reserve IRQ blocks, and in
> particular, how do you know what to reserve and for what?

For each ioapic controller, and we should get gsi range already.
So we could keep irq to gsi mapping linear for each ioapic controller.

>
> Second, some of the things in this patchset seems to overlap with what
> we would need to support MSI (as opposed to MSI-X), and you have several
> patches related to MSI vs MSI-X.  Are you also supporting multivector
> MSI (I believe the answer is no) or could some of this work make
> multivector MSI practical (possible)?

Patches that is related to MSI/MSI-X, is just print out clean up.
Now we don't tell if it is MSI or MSI-X in /proc/interrupts or dmesg.

Patches from multivector MSI support from Alex are already put in
x86/apic branch by Ingo.

And my v2 patches are on top of x86/apic and pci/next.

Thanks

Yinghai

      reply	other threads:[~2013-02-13  2:36 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-08 19:27 [PATCH v2 00/26] x86, irq: support ioapic device hotplug Yinghai Lu
2013-02-08 19:27 ` [PATCH v2 01/26] x86, irq: Change irq_remap_modify_chip_defaults to static Yinghai Lu
2013-02-08 19:27 ` [PATCH v2 02/26] x86, irq: Modify irq chip once for irq remapping Yinghai Lu
2013-03-08 20:07   ` Thomas Gleixner
2013-03-08 20:10     ` Thomas Gleixner
2013-03-09  7:25       ` Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 03/26] x86, irq: Print out MSI/MSI-X clearly Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 04/26] x86, irq: Show MSI-X in /proc/interrupt Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 05/26] x86, irq: Show pci device name for msi " Yinghai Lu
2013-03-08 19:46   ` Konrad Rzeszutek Wilk
2013-03-08 19:58     ` Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 06/26] x86, irq: Make dmar_msi/hpet_msi irq_chip name consistent Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 07/26] ia64, irq: Add dummy create_irq_nr() Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 08/26] iommu, irq: Allocate irq_desc for dmar_msi with local node Yinghai Lu
2013-02-08 20:45   ` Don Dutile
2013-02-08 20:58     ` Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 09/26] x86, irq: kill create_irq() Yinghai Lu
2013-03-08 19:48   ` Konrad Rzeszutek Wilk
2013-02-08 19:28 ` [PATCH v2 10/26] x86, irq: Convert irq_2_pin list to generic list Yinghai Lu
2013-03-08 19:50   ` Konrad Rzeszutek Wilk
2013-03-08 20:00     ` Yinghai Lu
2013-03-08 20:13       ` Konrad Rzeszutek Wilk
2013-02-08 19:28 ` [PATCH v2 11/26] genirq: Split __irq_reserve_irqs from irq_alloc_descs Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 12/26] x86, irq: Add realloc_irq_and_cfg_at() Yinghai Lu
2013-03-08 19:53   ` Konrad Rzeszutek Wilk
2013-03-09  7:22     ` Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 13/26] x86, irq: Move down arch_early_irq_init() Yinghai Lu
2013-03-08 19:53   ` Konrad Rzeszutek Wilk
2013-02-08 19:28 ` [PATCH v2 14/26] x86, irq: Split out alloc_ioapic_save_registers() Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 15/26] xen, irq: call irq_realloc_desc_at() at first Yinghai Lu
2013-03-08 19:43   ` Konrad Rzeszutek Wilk
2013-03-08 19:46     ` Yinghai Lu
2013-03-08 20:01     ` Konrad Rzeszutek Wilk
2013-02-08 19:28 ` [PATCH v2 16/26] x86, irq: pre-reserve irq range/realloc for booting path Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 17/26] x86, irq: Add ioapic_gsi_to_irq Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 18/26] genirq: Bail out early in free_desc() Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 19/26] x86, irq: More strict checking about registering ioapic Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 20/26] x86, irq: Make mp_register_ioapic handle hotadd ioapic Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 21/26] x86, irq: Add mp_unregister_ioapic to handle hot-remove ioapic Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 22/26] x86, irq: Make ioapics loop skip blank slots Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 23/26] x86, ioapic: Find usable ioapic id for 64bit Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 24/26] x86: Move declaration for mp_register_ioapic() Yinghai Lu
2013-02-08 19:28 ` [PATCH v2 25/26] PCI: Disable mem in the ioapic removing path Yinghai Lu
2013-02-08 21:14   ` Bjorn Helgaas
2013-02-08 22:33     ` Yinghai Lu
2013-02-08 23:18       ` Bjorn Helgaas
2013-02-08 19:28 ` [PATCH v2 26/26] PCI, x86, ACPI: Add ioapic hotplug support with acpi host bridge Yinghai Lu
2013-02-08 21:24   ` Bjorn Helgaas
2013-02-08 22:35     ` Yinghai Lu
2013-02-09  0:26       ` [PATCH v2 26-1/26] PCI, x86: Make ioapic hotplug support built-in Yinghai Lu
2013-02-09  0:26         ` [PATCH v2 26-2/26] PCI, x86, ACPI: Link acpi ioapic register to ioapic Yinghai Lu
2013-02-09  0:26         ` [PATCH v2 26-3/26] PCI, x86, ACPI: Enable ioapic hotplug support with acpi host bridge Yinghai Lu
2013-02-09  0:26         ` [PATCH v2 26-4/26] PCI, x86, ACPI: get ioapic address from acpi device Yinghai Lu
2013-02-11  9:34 ` [PATCH v2 00/26] x86, irq: support ioapic device hotplug Ingo Molnar
2013-02-12  6:10   ` H. Peter Anvin
2013-02-13  2:36     ` Yinghai Lu [this message]

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=CAE9FiQWcD8U9YaKQojbRW07rqUjqRQcJw6t9y0Si81tgk-V98Q@mail.gmail.com \
    --to=yinghai@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mingo@kernel.org \
    --cc=rjw@sisk.pl \
    --cc=tglx@linutronix.de \
    /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 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).