From: Greg KH <greg@kroah.com>
To: Yinghai Lu <Yinghai.Lu@Sun.COM>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>,
Stefan Richter <stefanr@s5r6.in-berlin.de>,
Andrew Morton <akpm@linux-foundation.org>,
Andi Kleen <ak@suse.de>,
rientjes@google.com, Christoph Lameter <clameter@sgi.com>,
Christoph Hellwig <hch@infradead.org>,
David Miller <davem@davemloft.net>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
netdev@vger.kernel.org
Subject: Re: [PATCH] try parent numa_node at first before using default
Date: Thu, 12 Jul 2007 11:31:41 -0700 [thread overview]
Message-ID: <20070712183141.GB22471@kroah.com> (raw)
In-Reply-To: <200707121059.54320.yinghai.lu@sun.com>
On Thu, Jul 12, 2007 at 10:59:53AM -0700, Yinghai Lu wrote:
> [PATCH] try parent numa_node at first before using default
>
> For pci_device, pcibios_scan_root and pci_scan_root will call pci_device_add.
> pci_device_add will call device_initialize and set_dev_node(&dev->dev,
> pcibus_to_node(bus)).
> other device such as netdev, and usb_device, set_dev_node is never be
> used. So that field numa_node always is -1.
>
> So for netdev, it will need to use dev->parent to get pci_device to
> use it's numa_node. esp in netdev_alloc_skb()
> not sure how other device such as infiniband do that.
>
> Actually before patch
> [PATCH 1/2] x86_64: get mp_bus_to_node as early
> there is a bug about squence of bus->sysdata and using pcibus_to_node.
> the numa_node of pci_dev->dev is never set correctly...always 0.
>
> So some device have to use pcibus_to_node(to_pci_dev(dev)->bus) directly
> such as dma_alloc_pages in arch/x86_64/kernel/pci-dma.c.
> or hwif_to_node in include/linux/ide.h
>
> According to Stefan Richter
> - Change all subsystems to set dev->parent before device_initialize().
> *Document* that the device_initialize() API has this requirement.
> This is counter-intuitive, amounts to some work across the kernel,
> and could be gotten wrong again in future code because it's a
> counter-intuitive API.
>
> - Move your code from device_initialize() to device_add(). One minor
> drawback is that node-specific allocations based on the device's
> numa_node would not be optimized before device_add(), but there is
> probably no need for this. Driver probes come after device_add().
>
> - Let subsystems explicitly call set_dev_node() on their own.
>
> this patch is using second method.
>
> Also we don't need call set_dev_node in pci_device_add anymore. but need to
> make sure every pci root bus's bridge device numa is set.
>
> with this patch, we could use device->numa_node direclty for all device.
Please split this into two separate patches, as they are doing two
different things. One for the driver core, and one for pci devices.
Also, what kind of performance issues have you seen with this patch in
place? As your previous patches were incorrect, I am guessing that you
are not able to test this?
thanks,
greg k-h
next prev parent reply other threads:[~2007-07-12 18:37 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200707101641.17672.yinghai.lu@sun.com>
2007-07-10 23:52 ` [PATCH 1/5] try parent numa_node at first before using default Yinghai Lu
2007-07-11 10:54 ` Stefan Richter
2007-07-11 11:03 ` Stefan Richter
2007-07-11 21:08 ` Greg KH
2007-07-11 21:28 ` Yinghai Lu
2007-07-12 2:47 ` Stefan Richter
2007-07-12 3:01 ` Yinghai Lu
2007-07-12 5:47 ` Stefan Richter
2007-07-12 7:15 ` Cornelia Huck
2007-07-12 11:30 ` Stefan Richter
2007-07-12 15:23 ` Cornelia Huck
2007-07-12 17:59 ` [PATCH] " Yinghai Lu
2007-07-12 18:31 ` Greg KH [this message]
2007-07-12 19:06 ` Yinghai Lu
2007-07-13 3:16 ` Greg KH
2007-07-13 4:42 ` Yinghai Lu
2007-07-13 5:48 ` Cornelia Huck
2007-07-13 19:27 ` [PATCH] try parent numa_node at first before using default v2 Yinghai Lu
2007-07-10 23:52 ` [PATCH 4/5] net: show numa_node for net_device in /sys Yinghai Lu
2007-07-10 23:53 ` [PATCH 5/5] dma: use dev_to_node to get node for device in dma_alloc_pages Yinghai Lu
2007-07-23 19:30 ` Christoph Lameter
2007-07-11 0:05 ` [PATCH 2/5] net: use numa_node in net_devcice->dev instead of parent Yinghai Lu
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=20070712183141.GB22471@kroah.com \
--to=greg@kroah.com \
--cc=Yinghai.Lu@Sun.COM \
--cc=ak@suse.de \
--cc=akpm@linux-foundation.org \
--cc=clameter@sgi.com \
--cc=cornelia.huck@de.ibm.com \
--cc=davem@davemloft.net \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=rientjes@google.com \
--cc=stefanr@s5r6.in-berlin.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).