iommu/iova: Optimize iova_magazine_alloc()
authorZhen Lei <thunder.leizhen@huawei.com>
Fri, 21 Apr 2023 07:24:21 +0000 (15:24 +0800)
committerJoerg Roedel <jroedel@suse.de>
Mon, 22 May 2023 15:09:51 +0000 (17:09 +0200)
Only the member 'size' needs to be initialized to 0. Clearing the array
pfns[], which is about 1 KiB in size, not only wastes time, but also
causes cache pollution.

Acked-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Link: https://lore.kernel.org/r/20230421072422.869-1-thunder.leizhen@huawei.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/iova.c

index fe452ce466429a702b4df515e3c03298d418f136..10b964600948c7f618c9fc6f2f6911b81ef15408 100644 (file)
@@ -647,7 +647,13 @@ struct iova_rcache {
 
 static struct iova_magazine *iova_magazine_alloc(gfp_t flags)
 {
-       return kzalloc(sizeof(struct iova_magazine), flags);
+       struct iova_magazine *mag;
+
+       mag = kmalloc(sizeof(*mag), flags);
+       if (mag)
+               mag->size = 0;
+
+       return mag;
 }
 
 static void iova_magazine_free(struct iova_magazine *mag)