OpenSolaris

Printable Version Enter a New Search
Bug ID 6627552
Synopsis Bad ASSERT in hat_i86.c:hat_swapout highlights outdated code assumption
State 10-Fix Delivered (Fix available in build)
Category:Subcategory kernel:vm
Keywords rtiq_regression
Responsible Engineer Peter Telford
Reported Against
Duplicate Of
Introduced In solaris_nevada
Commit to Fix snv_87
Fixed In snv_87
Release Fixed solaris_nevada(snv_87)
Related Bugs 6529185
Submit Date 8-November-2007
Last Update Date 9-April-2008
Description
We have an ASSERT in usr/src/uts/i86pc/vm/hat_i86.c:hat_swapout() that seems
wrong since CR 6529185 was fixed. In essence we are looking to swap out page
tables as we are low on memory, we know we can't swap out shared page tables
and if we find one we're going to have to look at the next level of htable.

As we know that only level 0 page tables are shared we ASSERT that. However,
this is (post 6529185) an invalid ASSERT, we now share htables at all but
the maximum level. Further, when adjusting the virtual address we can't just
use the LEVEL_SIZE(1) macro, we will be adding an incorrect size in cases where
we've shared higher level tables. I'm not really sure how that would exhibit
in a production kernel - possibly just inefficient operation of hat_swapout().
Work Around
N/A
Comments
N/A