[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <1308010463.31900.100.camel@vi2.jf.intel.com>
Date: Mon, 13 Jun 2011 17:14:23 -0700
From: Vasu Dev <vasu.dev@...ux.intel.com>
To: Ben Hutchings <bhutchings@...arflare.com>
Cc: Jeff Kirsher <jeffrey.t.kirsher@...el.com>, davem@...emloft.net,
Vasu Dev <vasu.dev@...el.com>, netdev@...r.kernel.org,
gospo@...hat.com
Subject: Re: [net-next 24/40] ixgbe: alloc DDP PCI pool and ixgbe queues as
per NUMA nodes
On Tue, 2011-06-07 at 13:58 +0100, Ben Hutchings wrote:
> On Tue, 2011-06-07 at 05:32 -0700, Jeff Kirsher wrote:
> > From: Vasu Dev <vasu.dev@...el.com>
> >
> > Have DDP PCI pools allocated from closest NUMA node to the CPU
> > and have ixgbe queues allocs per NUMA node.
> >
> > Signed-off-by: Vasu Dev <vasu.dev@...el.com>
> > Tested-by: Ross Brattain <ross.b.brattain@...el.com>
> > Tested-by: Evan Swanson <evan.swanson@...el.com>
> > Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@...el.com>
> > ---
> > drivers/net/ixgbe/ixgbe_fcoe.c | 8 ++++++--
> > drivers/net/ixgbe/ixgbe_main.c | 12 +++++++++---
> > 2 files changed, 15 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/net/ixgbe/ixgbe_fcoe.c b/drivers/net/ixgbe/ixgbe_fcoe.c
> > index aadff4f..71e8458 100644
> > --- a/drivers/net/ixgbe/ixgbe_fcoe.c
> > +++ b/drivers/net/ixgbe/ixgbe_fcoe.c
> > @@ -615,7 +615,7 @@ static void ixgbe_fcoe_ddp_pools_free(struct ixgbe_fcoe *fcoe)
> > static void ixgbe_fcoe_ddp_pools_alloc(struct ixgbe_adapter *adapter)
> > {
> > struct ixgbe_fcoe *fcoe = &adapter->fcoe;
> > - unsigned int cpu;
> > + unsigned int cpu, nid;
> > struct pci_pool **pool;
> > char pool_name[32];
> >
> > @@ -623,19 +623,23 @@ static void ixgbe_fcoe_ddp_pools_alloc(struct ixgbe_adapter *adapter)
> > if (!fcoe->pool)
> > return;
> >
> > + nid = dev_to_node(&adapter->pdev->dev);
> > /* allocate pci pool for each cpu */
> > for_each_possible_cpu(cpu) {
> > snprintf(pool_name, 32, "ixgbe_fcoe_ddp_%d", cpu);
> > pool = per_cpu_ptr(fcoe->pool, cpu);
> > + set_dev_node(&adapter->pdev->dev, cpu_to_node(cpu));
> > *pool = pci_pool_create(pool_name,
> > adapter->pdev, IXGBE_FCPTR_MAX,
> > IXGBE_FCPTR_ALIGN, PAGE_SIZE);
> > if (!*pool) {
> > e_err(drv, "failed to alloc DDP pool on cpu:%d\n", cpu);
> > ixgbe_fcoe_ddp_pools_free(fcoe);
> > - return;
> > + break;
> > }
> > }
> > + /* restore original node value */
> > + set_dev_node(&adapter->pdev->dev, nid);
> > }
> [...]
>
> This is a horrible hack. You should fix the API so that you can
> override the node ID, rather than modifying the device.
OK I'll take node id check out of this patch and another patch could do
API change to use node id as you suggested.
Thanks
Vasu
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists