Remove bogus increment of re-hashed PTEG index. This snuck in with r1.12 of

pmap.c, and is potentially the cause of hangs reported on machines with a
small amount of memory. On machines with sufficient RAM, and without a lot
of processes running, this situation would probably never occur.

Testing is still incomplete, but it is obviously wrong so remove the
offending code now.

The issue of what to do when both the primary and secondary hash overflow
is still open.

Reported by:	Dan Kresja at windriver dot com, via alc
This commit is contained in:
Peter Grehan 2006-12-20 01:10:21 +00:00
parent 1beb06dd0d
commit bd8e6f87c8
2 changed files with 2 additions and 2 deletions

View File

@ -2280,7 +2280,7 @@ moea_pte_insert(u_int ptegidx, struct pte *pvo_pt)
* Now try secondary hash.
*/
ptegidx ^= moea_pteg_mask;
ptegidx++;
for (pt = moea_pteg_table[ptegidx].pt, i = 0; i < 8; i++, pt++) {
if ((pt->pte_hi & PTE_VALID) == 0) {
pvo_pt->pte_hi |= PTE_HID;

View File

@ -2280,7 +2280,7 @@ moea_pte_insert(u_int ptegidx, struct pte *pvo_pt)
* Now try secondary hash.
*/
ptegidx ^= moea_pteg_mask;
ptegidx++;
for (pt = moea_pteg_table[ptegidx].pt, i = 0; i < 8; i++, pt++) {
if ((pt->pte_hi & PTE_VALID) == 0) {
pvo_pt->pte_hi |= PTE_HID;