Re: [PATCH v6 7/9] mm: multigenerational lru: eviction

From: Yu Zhao
Date: Wed Jan 12 2022 - 03:06:03 EST


On Tue, Jan 11, 2022 at 04:07:57PM +0530, Aneesh Kumar K.V wrote:
> ...
>
> +static int isolate_folios(struct lruvec *lruvec, struct scan_control *sc, int swappiness,
> > + int *type_scanned, struct list_head *list)
> > +{
> > + int i;
> > + int type;
> > + int scanned;
> > + int tier = -1;
> > + DEFINE_MIN_SEQ(lruvec);
> > +
> > + VM_BUG_ON(!seq_is_valid(lruvec));
> > +
> > + /*
> > + * Try to make the obvious choice first. When anon and file are both
> > + * available from the same generation, interpret swappiness 1 as file
> > + * first and 200 as anon first.
> > + */
> > + if (!swappiness)
> > + type = 1;
> > + else if (min_seq[0] < min_seq[1])
> > + type = 0;
> > + else if (swappiness == 1)
> > + type = 1;
> > + else if (swappiness == 200)
> > + type = 0;
> > + else
> > + type = get_type_to_scan(lruvec, swappiness, &tier);
> > +
>
> Wondering wether it will make it simpler to use
> #define ANON 0
> #define FILE 1
>
> and then
> else if (min_seq[ANON] < min_seq[FILE])
> type = ANON;
>
> The usage of 0/1 across code do confuse

I agree, and I plan to do this later because the existing code uses
this convention and needs renaming too.