Message ID | 1531144263-24717-1-git-send-email-jan.dakinevich@virtuozzo.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Jason Gunthorpe |
Headers | show |
On Mon, 9 Jul 2018 16:51:03 +0300 Jan Dakinevich <jan.dakinevich@virtuozzo.com> wrote: > This table by default takes 32KiB which is 3rd memory order. > Meanwhile, this memory is not aimed for DMA operation and could be > safely allocated by vmalloc. > > Signed-off-by: Jan Dakinevich <jan.dakinevich@virtuozzo.com> > --- > drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c > b/drivers/infiniband/ulp/ipoib/ipoib_main.c index 26cde95..cb752df > 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c > +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c > @@ -1526,7 +1526,7 @@ static int ipoib_neigh_hash_init(struct > ipoib_dev_priv *priv) return -ENOMEM; > set_bit(IPOIB_STOP_NEIGH_GC, &priv->flags); > size = roundup_pow_of_two(arp_tbl.gc_thresh3); > - buckets = kcalloc(size, sizeof(*buckets), GFP_KERNEL); > + buckets = kvcalloc(size, sizeof(*buckets), GFP_KERNEL); > if (!buckets) { > kfree(htbl); > return -ENOMEM; > @@ -1554,7 +1554,7 @@ static void neigh_hash_free_rcu(struct rcu_head > *head) struct ipoib_neigh __rcu **buckets = htbl->buckets; > struct ipoib_neigh_table *ntbl = htbl->ntbl; > > - kfree(buckets); > + kvfree(buckets); > kfree(htbl); > complete(&ntbl->deleted); > } ping
> On 16 Jul 2018, at 18:19, Jan Dakinevich <jan.dakinevich@virtuozzo.com> wrote: > > On Mon, 9 Jul 2018 16:51:03 +0300 > Jan Dakinevich <jan.dakinevich@virtuozzo.com> wrote: > >> This table by default takes 32KiB which is 3rd memory order. Only if PAGE_SIZE is 4KiB... >> Meanwhile, this memory is not aimed for DMA operation and could be >> safely allocated by vmalloc. >> >> Signed-off-by: Jan Dakinevich <jan.dakinevich@virtuozzo.com> lgtm, Reviewed-by: Håkon Bugge <haakon.bugge@oracle.com> Thxs, Håkon >> --- >> drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c >> b/drivers/infiniband/ulp/ipoib/ipoib_main.c index 26cde95..cb752df >> 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c >> +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c >> @@ -1526,7 +1526,7 @@ static int ipoib_neigh_hash_init(struct >> ipoib_dev_priv *priv) return -ENOMEM; >> set_bit(IPOIB_STOP_NEIGH_GC, &priv->flags); >> size = roundup_pow_of_two(arp_tbl.gc_thresh3); >> - buckets = kcalloc(size, sizeof(*buckets), GFP_KERNEL); >> + buckets = kvcalloc(size, sizeof(*buckets), GFP_KERNEL); >> if (!buckets) { >> kfree(htbl); >> return -ENOMEM; >> @@ -1554,7 +1554,7 @@ static void neigh_hash_free_rcu(struct rcu_head >> *head) struct ipoib_neigh __rcu **buckets = htbl->buckets; >> struct ipoib_neigh_table *ntbl = htbl->ntbl; >> >> - kfree(buckets); >> + kvfree(buckets); >> kfree(htbl); >> complete(&ntbl->deleted); >> } > > ping > > -- > Best regards > Jan Dakinevich > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Jul 09, 2018 at 04:51:03PM +0300, Jan Dakinevich wrote: > This table by default takes 32KiB which is 3rd memory order. Meanwhile, > this memory is not aimed for DMA operation and could be safely allocated > by vmalloc. > > Signed-off-by: Jan Dakinevich <jan.dakinevich@virtuozzo.com> > Reviewed-by: Håkon Bugge <haakon.bugge@oracle.com> > --- > drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Applied to for-next, thanks Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c index 26cde95..cb752df 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c @@ -1526,7 +1526,7 @@ static int ipoib_neigh_hash_init(struct ipoib_dev_priv *priv) return -ENOMEM; set_bit(IPOIB_STOP_NEIGH_GC, &priv->flags); size = roundup_pow_of_two(arp_tbl.gc_thresh3); - buckets = kcalloc(size, sizeof(*buckets), GFP_KERNEL); + buckets = kvcalloc(size, sizeof(*buckets), GFP_KERNEL); if (!buckets) { kfree(htbl); return -ENOMEM; @@ -1554,7 +1554,7 @@ static void neigh_hash_free_rcu(struct rcu_head *head) struct ipoib_neigh __rcu **buckets = htbl->buckets; struct ipoib_neigh_table *ntbl = htbl->ntbl; - kfree(buckets); + kvfree(buckets); kfree(htbl); complete(&ntbl->deleted); }
This table by default takes 32KiB which is 3rd memory order. Meanwhile, this memory is not aimed for DMA operation and could be safely allocated by vmalloc. Signed-off-by: Jan Dakinevich <jan.dakinevich@virtuozzo.com> --- drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)