This fixes panic like "Freeing UMA block at 0xc00000004b0ce000 with no associated page", reproduced when huge pages is not enabled and system starts using swap.
Solution provided by jhibbits.
Differential D23931
[PowerPC64] fix uma_small_free panic alfredo on Mar 2 2020, 9:37 PM. Authored by Tags Referenced Files
Subscribers
Details This fixes panic like "Freeing UMA block at 0xc00000004b0ce000 with no associated page", reproduced when huge pages is not enabled and system starts using swap. Solution provided by jhibbits. Force swap usage running several buildworld threads as well with stress util on powerpc64 QEMU VM.
Diff Detail
Event TimelineComment Actions Given what I see in uma_small_alloc(), this change really should be unnecessary (uma_small_alloc() returns an identity-mapped page), but relying on that is obviously incorrect. The pmap_kextract() in here is the correct solution.
Comment Actions System was running under load with latest change for almost 13 hours. Everything seems good. |