tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: uvm page freelist problem said:
> What happens is a freelist TAILQ pointer becomes corrupted

Could this be explained by a page getting onto a freelist twice?

What I checked in the meantime leaves that as interpretation:
I've moved the mutex_enter before the PG_FREE check as
said in my other mail, and I've never seen that pglistalloc
panic again.
As I understand everyone who changes PG_FREE gets the page
off the freelist before, and the freelist removal/insertion
is always protected by the mutex afaics.
The my patch to move the mutex_enter does likely not
fix the real problem. So what is left as a possibility is
that a page is still on a freelist while uvm_pagefree
deals with it; that way eg pageidlezero could set the
PG_ZERO flag in that time window my change closed.

I've instrumented uvm_pagefree and pglistfree to check
whether the page is already on one of the two freelists
(with and without PG_ZERO), doing a linear search,
but didn't get a hit. The linear search is too expensive
to have it built in for longer use, and it changes
runtime behaviour. So I might have just been unlucky.

best regards

Forschungszentrum Juelich GmbH
52425 Juelich

Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzende des Aufsichtsrats: MinDir'in Baerbel Brumme-Bothe
Geschaeftsfuehrung: Prof. Dr. Achim Bachem (Vorsitzender),
Dr. Ulrich Krafft (stellv. Vorsitzender), Dr. Sebastian M. Schmidt

Home | Main Index | Thread Index | Old Index