lkml.org 
[lkml]   [2021]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2 1/3] mm: sparse: pass section_nr to section_mark_present
On Mon 05-07-21 17:55:36, Ohhoon Kwon wrote:
> With CONFIG_SPARSEMEM_EXTREME enabled, __section_nr() which converts
> mem_section to section_nr could be costly since it iterates all
> section roots to check if the given mem_section is in its range.
>
> On the other hand, __nr_to_section() which converts section_nr to
> mem_section can be done in O(1).
>
> Let's pass section_nr instead of mem_section ptr to
> section_mark_present() in order to reduce needless iterations.
>
> Signed-off-by: Ohhoon Kwon <ohoono.kwon@samsung.com>
> Acked-by: Michal Hocko <mhocko@suse.com>
> Acked-by: Mike Rapoport <rppt@linux.ibm.com>
> Reviewed-by: David Hildenbrand <david@redhat.com>
> ---
> mm/sparse.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/mm/sparse.c b/mm/sparse.c
> index 6326cdf36c4f..b4fae2fc6276 100644
> --- a/mm/sparse.c
> +++ b/mm/sparse.c
> @@ -187,13 +187,14 @@ void __meminit mminit_validate_memmodel_limits(unsigned long *start_pfn,
> * those loops early.
> */
> unsigned long __highest_present_section_nr;
> -static void section_mark_present(struct mem_section *ms)
> +static void section_mark_present(unsigned long section_nr)
> {
> - unsigned long section_nr = __section_nr(ms);
> + struct mem_section *ms;
>
> if (section_nr > __highest_present_section_nr)
> __highest_present_section_nr = section_nr;
>
> + ms = __nr_to_section(section_nr);
> ms->section_mem_map |= SECTION_MARKED_PRESENT;

Can you add the ms parameter here so that we get rid of the pointless
__nr_to_section as suggested in the previous review feedback?
--
Michal Hocko
SUSE Labs

\
 
 \ /
  Last update: 2021-07-07 11:14    [W:0.048 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site