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:
parent
1beb06dd0d
commit
bd8e6f87c8
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=165362
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user