2020-08-07 09:14:12

by Wei Yang

[permalink] [raw]
Subject: [PATCH 03/10] mm/hugetlb: use list_splice to merge two list at once

Instead of add allocated file_region one by one to region_cache, we
could use list_splice to merge two list at once.

Also we know the number of entries in the list, increase the number
directly.

Signed-off-by: Wei Yang <[email protected]>
---
mm/hugetlb.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 0a2f3851b828..929256c130f9 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -443,11 +443,8 @@ static int allocate_file_region_entries(struct resv_map *resv,

spin_lock(&resv->lock);

- list_for_each_entry_safe(rg, trg, &allocated_regions, link) {
- list_del(&rg->link);
- list_add(&rg->link, &resv->region_cache);
- resv->region_cache_count++;
- }
+ list_splice(&allocated_regions, &resv->region_cache);
+ resv->region_cache_count += to_allocate;
}

return 0;
--
2.20.1 (Apple Git-117)


2020-08-07 12:57:05

by Baoquan He

[permalink] [raw]
Subject: Re: [PATCH 03/10] mm/hugetlb: use list_splice to merge two list at once

On 08/07/20 at 05:12pm, Wei Yang wrote:
> Instead of add allocated file_region one by one to region_cache, we
> could use list_splice to merge two list at once.
>
> Also we know the number of entries in the list, increase the number
> directly.
>
> Signed-off-by: Wei Yang <[email protected]>
> ---
> mm/hugetlb.c | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/mm/hugetlb.c b/mm/hugetlb.c
> index 0a2f3851b828..929256c130f9 100644
> --- a/mm/hugetlb.c
> +++ b/mm/hugetlb.c
> @@ -443,11 +443,8 @@ static int allocate_file_region_entries(struct resv_map *resv,
>
> spin_lock(&resv->lock);
>
> - list_for_each_entry_safe(rg, trg, &allocated_regions, link) {
> - list_del(&rg->link);
> - list_add(&rg->link, &resv->region_cache);
> - resv->region_cache_count++;
> - }
> + list_splice(&allocated_regions, &resv->region_cache);
> + resv->region_cache_count += to_allocate;

Looks good to me.

Reviewed-by: Baoquan He <[email protected]>

> }
>
> return 0;
> --
> 2.20.1 (Apple Git-117)
>
>

2020-08-10 21:08:50

by Mike Kravetz

[permalink] [raw]
Subject: Re: [PATCH 03/10] mm/hugetlb: use list_splice to merge two list at once

On 8/7/20 2:12 AM, Wei Yang wrote:
> Instead of add allocated file_region one by one to region_cache, we
> could use list_splice to merge two list at once.
>
> Also we know the number of entries in the list, increase the number
> directly.
>
> Signed-off-by: Wei Yang <[email protected]>

Thanks!

Reviewed-by: Mike Kravetz <[email protected]>
--
Mike Kravetz