Message ID | 20190503150401.15904-1-roger.pau@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | xen-blkfront: switch kcalloc to kvcalloc for large array allocation | expand |
On Fri, May 03, 2019 at 05:04:01PM +0200, Roger Pau Monne wrote: >There's no reason to request physically contiguous memory for those >allocations. > >Reported-by: Ian Jackson <ian.jackson@citrix.com> >Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> >--- You really don't want this scissor line here, git will trim all your message content below it. -- Thanks, Sasha >Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> >Cc: Juergen Gross <jgross@suse.com> >Cc: Stefano Stabellini <sstabellini@kernel.org> >Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> >Cc: Jens Axboe <axboe@kernel.dk> >Cc: xen-devel@lists.xenproject.org >Cc: linux-block@vger.kernel.org >Cc: stable@vger.kernel.org >---
On 03/05/2019 17:04, Roger Pau Monne wrote: > There's no reason to request physically contiguous memory for those > allocations. > > Reported-by: Ian Jackson <ian.jackson@citrix.com> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Reviewed-by: Juergen Gross <jgross@suse.com> Juergen
On 06/05/2019 10:11, Juergen Gross wrote: > On 03/05/2019 17:04, Roger Pau Monne wrote: >> There's no reason to request physically contiguous memory for those >> allocations. >> >> Reported-by: Ian Jackson <ian.jackson@citrix.com> >> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> > > Reviewed-by: Juergen Gross <jgross@suse.com> Jens, are you going to tkae this patch or should I carry it through the Xen tree? Juergen
On May 31, 2019 10:41:16 AM EDT, Juergen Gross <jgross@suse.com> wrote: >On 06/05/2019 10:11, Juergen Gross wrote: >> On 03/05/2019 17:04, Roger Pau Monne wrote: >>> There's no reason to request physically contiguous memory for those >>> allocations. >>> >>> Reported-by: Ian Jackson <ian.jackson@citrix.com> >>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> >> >> Reviewed-by: Juergen Gross <jgross@suse.com> > >Jens, are you going to tkae this patch or should I carry it through the >Xen tree? Usually I ended up picking them (and then asking Jens to git pull into his branch) but if you want to handle them that would be much easier! (And if so, please add Acked-by on them from me). > > >Juergen
On 5/31/19 10:44 AM, Konrad Rzeszutek Wilk wrote: > On May 31, 2019 10:41:16 AM EDT, Juergen Gross <jgross@suse.com> wrote: >> On 06/05/2019 10:11, Juergen Gross wrote: >>> On 03/05/2019 17:04, Roger Pau Monne wrote: >>>> There's no reason to request physically contiguous memory for those >>>> allocations. >>>> >>>> Reported-by: Ian Jackson <ian.jackson@citrix.com> >>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> >>> Reviewed-by: Juergen Gross <jgross@suse.com> >> Jens, are you going to tkae this patch or should I carry it through the >> Xen tree? > Usually I ended up picking them (and then asking Jens to git pull into his branch) but if you want to handle them that would be much easier! > > (And if so, please add Acked-by on them from me). Applied to for-linus-5.2b -boris
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index d43a5677ccbc..a74d03913822 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c @@ -1310,11 +1310,11 @@ static void blkif_free_ring(struct blkfront_ring_info *rinfo) } free_shadow: - kfree(rinfo->shadow[i].grants_used); + kvfree(rinfo->shadow[i].grants_used); rinfo->shadow[i].grants_used = NULL; - kfree(rinfo->shadow[i].indirect_grants); + kvfree(rinfo->shadow[i].indirect_grants); rinfo->shadow[i].indirect_grants = NULL; - kfree(rinfo->shadow[i].sg); + kvfree(rinfo->shadow[i].sg); rinfo->shadow[i].sg = NULL; } @@ -1353,7 +1353,7 @@ static void blkif_free(struct blkfront_info *info, int suspend) for (i = 0; i < info->nr_rings; i++) blkif_free_ring(&info->rinfo[i]); - kfree(info->rinfo); + kvfree(info->rinfo); info->rinfo = NULL; info->nr_rings = 0; } @@ -1914,9 +1914,9 @@ static int negotiate_mq(struct blkfront_info *info) if (!info->nr_rings) info->nr_rings = 1; - info->rinfo = kcalloc(info->nr_rings, - sizeof(struct blkfront_ring_info), - GFP_KERNEL); + info->rinfo = kvcalloc(info->nr_rings, + sizeof(struct blkfront_ring_info), + GFP_KERNEL); if (!info->rinfo) { xenbus_dev_fatal(info->xbdev, -ENOMEM, "allocating ring_info structure"); info->nr_rings = 0; @@ -2232,17 +2232,17 @@ static int blkfront_setup_indirect(struct blkfront_ring_info *rinfo) for (i = 0; i < BLK_RING_SIZE(info); i++) { rinfo->shadow[i].grants_used = - kcalloc(grants, - sizeof(rinfo->shadow[i].grants_used[0]), - GFP_NOIO); - rinfo->shadow[i].sg = kcalloc(psegs, - sizeof(rinfo->shadow[i].sg[0]), - GFP_NOIO); + kvcalloc(grants, + sizeof(rinfo->shadow[i].grants_used[0]), + GFP_NOIO); + rinfo->shadow[i].sg = kvcalloc(psegs, + sizeof(rinfo->shadow[i].sg[0]), + GFP_NOIO); if (info->max_indirect_segments) rinfo->shadow[i].indirect_grants = - kcalloc(INDIRECT_GREFS(grants), - sizeof(rinfo->shadow[i].indirect_grants[0]), - GFP_NOIO); + kvcalloc(INDIRECT_GREFS(grants), + sizeof(rinfo->shadow[i].indirect_grants[0]), + GFP_NOIO); if ((rinfo->shadow[i].grants_used == NULL) || (rinfo->shadow[i].sg == NULL) || (info->max_indirect_segments && @@ -2256,11 +2256,11 @@ static int blkfront_setup_indirect(struct blkfront_ring_info *rinfo) out_of_memory: for (i = 0; i < BLK_RING_SIZE(info); i++) { - kfree(rinfo->shadow[i].grants_used); + kvfree(rinfo->shadow[i].grants_used); rinfo->shadow[i].grants_used = NULL; - kfree(rinfo->shadow[i].sg); + kvfree(rinfo->shadow[i].sg); rinfo->shadow[i].sg = NULL; - kfree(rinfo->shadow[i].indirect_grants); + kvfree(rinfo->shadow[i].indirect_grants); rinfo->shadow[i].indirect_grants = NULL; } if (!list_empty(&rinfo->indirect_pages)) {
There's no reason to request physically contiguous memory for those allocations. Reported-by: Ian Jackson <ian.jackson@citrix.com> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> --- Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> Cc: Juergen Gross <jgross@suse.com> Cc: Stefano Stabellini <sstabellini@kernel.org> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Cc: Jens Axboe <axboe@kernel.dk> Cc: xen-devel@lists.xenproject.org Cc: linux-block@vger.kernel.org Cc: stable@vger.kernel.org --- drivers/block/xen-blkfront.c | 38 ++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 19 deletions(-)