On Thu, Apr 30, 2020 at 06:56:21AM +0800, Yang Shi wrote: > The max_ptes_{swap|none|shared} are defined to tune the behavior of > khugepaged. The are checked at a couple of places with open coding. > Replace the opencoding to exceed_pax_ptes_{swap|none_shared} helpers to > improve the readability. > > Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> > Cc: Hugh Dickins <hughd@xxxxxxxxxx> > Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> > Signed-off-by: Yang Shi <yang.shi@xxxxxxxxxxxxxxxxx> > --- > mm/khugepaged.c | 27 +++++++++++++++++++++------ > 1 file changed, 21 insertions(+), 6 deletions(-) > > diff --git a/mm/khugepaged.c b/mm/khugepaged.c > index a02a4c5..0c8d30b 100644 > --- a/mm/khugepaged.c > +++ b/mm/khugepaged.c > @@ -339,6 +339,21 @@ struct attribute_group khugepaged_attr_group = { > }; > #endif /* CONFIG_SYSFS */ > > +static inline bool exceed_max_ptes_none(unsigned int *nr_ptes) > +{ > + return (++(*nr_ptes) > khugepaged_max_ptes_none); > +} > + > +static inline bool exceed_max_ptes_swap(unsigned int *nr_ptes) > +{ > + return (++(*nr_ptes) > khugepaged_max_ptes_swap); > +} > + > +static inline bool exceed_max_ptes_shared(unsigned int *nr_ptes) > +{ > + return (++(*nr_ptes) > khugepaged_max_ptes_shared); > +} > + Frankly, I find this ugly and confusing. Open-coded version is more readable to me. -- Kirill A. Shutemov