Re: [PATCH 1/1] pci: Pick up the acpi numa node value if it is specified at the device level.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 13 Nov 2018 09:24:35 +0000
Jonathan Cameron <jonathan.cameron@xxxxxxxxxx> wrote:

> On Mon, 12 Nov 2018 20:40:35 +0100
> Martin Hundebøll <martin@xxxxxxxxxx> wrote:
> 
> > Hi Jonathan,
> > 
> > I'm afraid this change made my system unbootable :(
> Hi Martin,
> 
> Thanks for the report!
> > 
> > Testing both v4.20-rc1 and v4.20-rc2 resulting in nothing but a black 
> > screen, with no sign of life from either the keyboard or the network.
> > 
> > Bisecting changes from v4.19 led me to this commit, and the system boots 
> > again with the change reverted.
> > 
> > I know little about ACPI and PCI, so please tell the kind of debug/log 
> > you need.
> The ACPI DSDT would be where I would start.  Please send the output of
> $cat /sys/firmware/acpi/tables/DSDT > DSDT.asl
> (under whatever boots for you)
> 
> If you want to look further yourself, you'll need to disassemble this using
> the iASL compiler.  That is usually in a package called something like
> acpica-tools or can be built from source from 
> 
> https://github.com/acpica/acpica
> 
> iasl -d DSDT.asl
> 
> This should generate a plain text file called DSDL.dsl.
> 
> Send us that and hopefully it'll be obvious what is wrong!
> Given we haven't had lots of reports, I'm going to guess there is something
> unusual in the table, but we'll see.
And I completely failed to notice you'd attached all those files.

I'll see if I can get the information from those.

Thanks,

Jonathan

> 
> Thanks,
> 
> Jonathan
> 
> > 
> > Thanks,
> > Martin
> > 
> > On 12/09/2018 17.21, Jonathan Cameron wrote:
> > > The ACPI specification allows you to provide _PXM entries for devices based
> > > on their location on a particular bus.  Let us use that if it is provided
> > > rather than just assuming it makes sense to put the device into the proximity
> > > domain of the root.
> > > 
> > > An example DSDT entry that will supply this is:
> > > 
> > >    Device (PCI2)
> > >    {
> > >      Name (_HID, "PNP0A08") // PCI Express Root Bridge
> > >      Name (_CID, "PNP0A03") // Compatible PCI Root Bridge
> > >      Name(_SEG, 2) // Segment of this Root complex
> > >      Name(_BBN, 0xF8) // Base Bus Number
> > >      Name(_CCA, 1)
> > >      Method (_PXM, 0, NotSerialized) {
> > >        Return(0x00)
> > >      }
> > > 
> > > ...
> > >      Device (BRI0) {
> > >        Name (_HID, "19E51610")
> > >        Name (_ADR, 0)
> > >        Name (_BBN, 0xF9)
> > >        Device (CAR0) {
> > >          Name (_HID, "97109912")
> > >          Name (_ADR, 0)
> > >          Method (_PXM, 0, NotSerialized) {
> > >            Return(0x02)
> > >          }
> > >        }
> > >      }
> > >    }
> > > 
> > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> > > ---
> > >   drivers/pci/pci-acpi.c | 5 +++++
> > >   1 file changed, 5 insertions(+)
> > > 
> > > diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
> > > index 738e3546abb1..f2f5f0ddd60e 100644
> > > --- a/drivers/pci/pci-acpi.c
> > > +++ b/drivers/pci/pci-acpi.c
> > > @@ -753,10 +753,15 @@ static void pci_acpi_setup(struct device *dev)
> > >   {
> > >   	struct pci_dev *pci_dev = to_pci_dev(dev);
> > >   	struct acpi_device *adev = ACPI_COMPANION(dev);
> > > +	int node;
> > >   
> > >   	if (!adev)
> > >   		return;
> > >   
> > > +	node = acpi_get_node(adev->handle);
> > > +	if (node != NUMA_NO_NODE)
> > > +		set_dev_node(dev, node);
> > > +	
> > >   	pci_acpi_optimize_delay(pci_dev, adev->handle);
> > >   
> > >   	pci_acpi_add_pm_notifier(adev, pci_dev);
> > >  
> > 
> 





[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux