lkml.org 
[lkml]   [2017]   [Oct]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v9 03/12] mm: deferred_init_memmap improvements
On Tue 03-10-17 12:01:08, Pasha Tatashin wrote:
> Hi Michal,
>
> Are you OK, if I replace DEFERRED_FREE() macro with a function like this:
>
> /*
> * Helper for deferred_init_range, free the given range, and reset the
> * counters
> */
> static inline unsigned long __def_free(unsigned long *nr_free,
> unsigned long *free_base_pfn,
> struct page **page)
> {
> unsigned long nr = *nr_free;
>
> deferred_free_range(*free_base_pfn, nr);
> *free_base_pfn = 0;
> *nr_free = 0;
> *page = NULL;
>
> return nr;
> }
>
> Since it is inline, and we operate with non-volatile counters, compiler will
> be smart enough to remove all the unnecessary de-references. As a plus, we
> won't be adding any new branches, and the code is still going to stay
> compact.

OK. It is a bit clunky but we are holding too much state there. I
haven't checked whether that can be simplified but this can be always
done later.
--
Michal Hocko
SUSE Labs

\
 
 \ /
  Last update: 2017-10-04 10:49    [W:0.107 / U:0.448 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site