Download raw body.
Make pdaemon understandable
On Mon, Dec 22, 2025 at 12:11:47PM +0100, Martin Pieuchot wrote:
> Diff below has been generated with "-b" to be easily reviewable.
> Attached is the one I intend to commit which mostly includes indent
> changes.
>
> It moves the final pageout of swap cluster outside of the loop. This
> allows to remove the NULL checks and make the body of the loop readable.
>
> I intentionally didn't change anything *inside* the loop even if we now
> see incoherency.
>
This reads mostly fine. One thing:
> @@ -633,14 +633,7 @@ uvmpd_scan_inactive(struct uvm_pmalloc *
>
> /* Insert iterator. */
> TAILQ_INSERT_AFTER(pglst, p, &iter, pageq);
> - for (; p != NULL || swc.swc_slot != 0; p = uvmpd_iterator(pglst, p, &iter)) {
> - /*
> - * note that p can be NULL iff we have traversed the whole
> - * list and need to do one final swap-backed clustered pageout.
> - */
> - uobj = NULL;
> - anon = NULL;
> - if (p) {
> + while ((p = uvmpd_iterator(pglst, p, &iter)) != NULL) {
I'm confused by this change. I would have expected a
do { ... } while ((p = uvmpd_iterator(pglst, p, &iter)) != NULL);
loop. The first time around in the for loop things are applied to p
itself, not to nextpg as returned by the iterator.
Make pdaemon understandable