lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Wed, 7 Jul 2021 11:12:57 +0200
From:   Michal Hocko <mhocko@...e.com>
To:     Ohhoon Kwon <ohoono.kwon@...sung.com>
Cc:     david@...hat.com, akpm@...ux-foundation.org, bhe@...hat.com,
        rppt@...ux.ibm.com, ohkwon1043@...il.com, linux-mm@...ck.org,
        linux-kernel@...r.kernel.org
Subject: Re: [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@...sung.com>
> Acked-by: Michal Hocko <mhocko@...e.com>
> Acked-by: Mike Rapoport <rppt@...ux.ibm.com>
> Reviewed-by: David Hildenbrand <david@...hat.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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ