|
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().
|