From: Thomas Gleixner <tglx@linutronix.de>
To: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Bjorn Helgaas <bhelgaas@google.com>,
Randy Dunlap <rdunlap@infradead.org>,
Yinghai Lu <yinghai@kernel.org>, Borislav Petkov <bp@alien8.de>,
Grant Likely <grant.likely@linaro.org>,
Len Brown <len.brown@intel.com>, Pavel Machek <pavel@ucw.cz>,
x86@kernel.org, Prarit Bhargava <prarit@redhat.com>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
Andrew Morton <akpm@linux-foundation.org>,
Tony Luck <tony.luck@intel.com>, Joerg Roedel <joro@8bytes.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
linux-acpi@vger.kernel.org, Ingo Molnar <mingo@kernel.org>,
linux-pm@vger.kernel.org
Subject: Re: [Patch v4 12/16] x86, irq, ACPI: Implement interface to support ACPI based IOAPIC hot-addition
Date: Wed, 10 Sep 2014 22:06:02 +0200 (CEST) [thread overview]
Message-ID: <alpine.DEB.2.10.1409102202530.4178@nanos> (raw)
In-Reply-To: <540FC1C2.40100@linux.intel.com>
On Wed, 10 Sep 2014, Jiang Liu wrote:
> >> int mp_register_ioapic(int id, u32 address, u32 gsi_base,
> >> @@ -3867,8 +3873,15 @@ int mp_register_ioapic(int id, u32 address, u32 gsi_base,
> >> }
> >> for_each_ioapic(ioapic)
> >> if (ioapics[ioapic].mp_config.apicaddr == address) {
> >> - pr_warn("address 0x%x conflicts with IOAPIC%d\n",
> >> - address, ioapic);
> >> + /*
> >> + * IOAPIC unit may also be visible in PCI scope.
> >> + * When ioapic PCI driver's probe() is called,
> >> + * the IOAPIC unit may have already been initialized
> >> + * at boot time.
> >> + */
> >> + if (!ioapic_initialized)
> >> + pr_warn("address 0x%x conflicts with IOAPIC%d\n",
> >> + address, ioapic);
> >
> > Hmm. This smells fishy. Why do we allow multiple initializations of
> > the same IOAPIC in the first place. Either it's done via ACPI or via
> > PCI, but not both.
> The ACPI subsystem will register and initialize all IOAPICs when walking
> ACPI MADT table during boot, before initializing PCI subsystem.
> Later when binding ioapic PCI driver to IOAPIC PCI device, it will try
> to register the IOAPIC device again.
>
> After this patchset is applied, we could remove the !ioapic_initialized
> check. We check acpi_ioapic_register() before calling
> acpi_register_ioapic(). So the check becomes redundant.
> Or we could remove the temporary code from this patch.
How about removing the disfunctional ioapic PCI driver first and then
implementing the whole thing cleanly?
> >
> >> return -EEXIST;
> >> }
> >>
> >> @@ -3918,6 +3931,14 @@ int mp_register_ioapic(int id, u32 address, u32 gsi_base,
> >> ioapics[idx].irqdomain = NULL;
> >> ioapics[idx].irqdomain_cfg = *cfg;
> >>
> >> + if (ioapic_initialized) {
> >
> > I have a hard time to understand this conditional. Why can't we do
> > that unconditionally?
> How about following comments?
> /*
> * If mp_register_ioapic() is called during early boot stage when
> * walking ACPI/SFI/DT tables, it's too early to create irqdomain,
> * we are still using bootmem allocator. So delay it to setup_IO_APIC().
> */
Fine, but then the "if (ioapic_initialized)" conditional still does
not make sense. We surely have some global non ioapic specific
indicator that bootmem is done and the proper memory allocator is
available, right?
Aside of that is there a point to walk those tables before we actually
can make any use of their content?
Thanks,
tglx
next prev parent reply other threads:[~2014-09-10 20:06 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1409192561-19744-1-git-send-email-jiang.liu@linux.intel.com>
2014-08-28 2:22 ` [Patch v4 11/16] x86, irq, ACPI: Introduce a rwsem to protect IOAPIC operations from hotplug Jiang Liu
2014-08-28 2:22 ` [Patch v4 12/16] x86, irq, ACPI: Implement interface to support ACPI based IOAPIC hot-addition Jiang Liu
2014-09-09 12:20 ` Thomas Gleixner
2014-09-10 3:13 ` Jiang Liu
2014-09-10 20:06 ` Thomas Gleixner [this message]
2014-09-11 6:05 ` Jiang Liu
2014-09-11 6:08 ` Jiang Liu
2014-08-28 2:22 ` [Patch v4 13/16] x86, irq, ACPI: Implement interfaces to support ACPI based IOAPIC hot-removal Jiang Liu
2014-08-28 2:22 ` [Patch v4 14/16] x86, irq: Introduce helper to check whether an IOAPIC has been registered Jiang Liu
2014-09-09 12:37 ` Thomas Gleixner
2014-09-10 2:46 ` Jiang Liu
2014-09-10 20:08 ` Thomas Gleixner
2014-09-11 7:17 ` Jiang Liu
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=alpine.DEB.2.10.1409102202530.4178@nanos \
--to=tglx@linutronix.de \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=bhelgaas@google.com \
--cc=bp@alien8.de \
--cc=grant.likely@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=hpa@zytor.com \
--cc=jiang.liu@linux.intel.com \
--cc=joro@8bytes.org \
--cc=konrad.wilk@oracle.com \
--cc=len.brown@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=pavel@ucw.cz \
--cc=prarit@redhat.com \
--cc=rdunlap@infradead.org \
--cc=rjw@rjwysocki.net \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
--cc=yinghai@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox