Re: Autoregulate swappiness & inactivation

From: Andrew Morton
Date: Thu Jul 08 2004 - 03:11:11 EST


Con Kolivas <kernel@xxxxxxxxxxx> wrote:
>
> Andrew Morton writes:
>
> > Con Kolivas <kernel@xxxxxxxxxxx> wrote:
> >>
> >> Ah what the heck. They can only be knocked back to where they already are.
> >
> > hm. You get an eGrump for sending two patchs in one email. Surprisingly
> > nice numbers though.
> >
> > How come vm_swappiness gets squared? That's the mysterious "bias
> > downwards", yes? What's the theory there?
>
> No real world feedback mechanism is linear. As the pressure grows the
> positive/negative feedback grows exponentially.

That takes me back. The classic control system is PID:
Proportional/Integral/Derivative - they refer to the way in which the error
term (output-desired output) is fed back to the input:

Proportional: the bigger the error, the more input drive

Integral: feeding back a bit of the integral of the error prevents
permanent output skew due to non-infinite forward gain.

Derivative: feeding back -(rate of change) provides damping.

You can live without I and D - the main thing is to feed back the -error.

IOW: linear works just fine :)

Your answer didn't help me understand the design though.

> > Please define this new term "application pages"?
>
> errm it's fuzzy to say the least. It's the closest I can come to
> representing what end users understand as "non-cached" pages.

Isn't that mapped pages?

> > Those si_swapinfo() and si_meminfo() calls need to come out of there.
>
> I'm game. I had the idea but not the skill. Anyone wanna help me with that?

Need to work out what cen be removed first. The freeswap/totalswap can go.
That leaves us needing what? totalram and freeram. If the algorithm can
be flipped over to use nr_mapped, we'd be looking good.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/