[Xen-devel] [PATCH] xen-blkfront: switch kcalloc to kvcalloc for large array allocation

Roger Pau Monne posted 1 patch 11 weeks ago
Failed in applying to current master (apply log)
drivers/block/xen-blkfront.c | 38 ++++++++++++++++++------------------
1 file changed, 19 insertions(+), 19 deletions(-)

[Xen-devel] [PATCH] xen-blkfront: switch kcalloc to kvcalloc for large array allocation

Posted by Roger Pau Monne 11 weeks ago
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(-)

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)) {
-- 
2.17.2 (Apple Git-113)


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Re: [Xen-devel] [PATCH] xen-blkfront: switch kcalloc to kvcalloc for large array allocation

Posted by Juergen Gross 11 weeks ago
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

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Re: [Xen-devel] [PATCH] xen-blkfront: switch kcalloc to kvcalloc for large array allocation

Posted by Juergen Gross 7 weeks ago
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

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Re: [Xen-devel] [PATCH] xen-blkfront: switch kcalloc to kvcalloc for large array allocation

Posted by Konrad Rzeszutek Wilk 7 weeks ago
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


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Re: [Xen-devel] [PATCH] xen-blkfront: switch kcalloc to kvcalloc for large array allocation

Posted by Boris Ostrovsky 7 weeks ago
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

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Re: [Xen-devel] [PATCH] xen-blkfront: switch kcalloc to kvcalloc for large array allocation

Posted by Sasha Levin 11 weeks ago
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
>---

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel