From: Will Schmidt <hidden> Date: 2007-10-26 20:46:53
[Powerpc] fix switch_slb handling of 1T ESID values
Now that we have 1TB segment size support, we need to be using the
GET_ESID_1T macro when comparing ESID values for pc,stack, and
unmapped_base within switch_slb() when we're on a CPU that supports it.
This also happens to fix a duplicate-slb-entry inspired machine-check
exception I was seeing when trying to run java on a power6 partition.
Tested on power6 and power5.
Signed-Off-By: Will Schmidt <redacted>
---
There is a similar bit of code in stab.c switch_stab(). Should this change also be made there?
---
arch/powerpc/mm/slb.c | 19 ++++++++++++++-----
1 files changed, 14 insertions(+), 5 deletions(-)
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> Date: 2007-10-27 04:19:40
On Fri, 2007-10-26 at 15:46 -0500, Will Schmidt wrote:
[Powerpc] fix switch_slb handling of 1T ESID values
Now that we have 1TB segment size support, we need to be using the
GET_ESID_1T macro when comparing ESID values for pc,stack, and
unmapped_base within switch_slb() when we're on a CPU that supports it.
This also happens to fix a duplicate-slb-entry inspired machine-check
exception I was seeing when trying to run java on a power6 partition.
Tested on power6 and power5.
Signed-Off-By: Will Schmidt <redacted>
Good catch !
A minor comment is maybe you could factor out the code better doing
something like a ESID_COMPARE() macro ?
---
There is a similar bit of code in stab.c switch_stab(). Should this change also be made there?
---
There is no machine that does stab and 1T segments.
Ben.
From: Will Schmidt <hidden> Date: 2007-10-27 17:36:28
On Sat, 2007-10-27 at 14:19 +1000, Benjamin Herrenschmidt wrote:
On Fri, 2007-10-26 at 15:46 -0500, Will Schmidt wrote:
quoted
[Powerpc] fix switch_slb handling of 1T ESID values
Now that we have 1TB segment size support, we need to be using the
GET_ESID_1T macro when comparing ESID values for pc,stack, and
unmapped_base within switch_slb() when we're on a CPU that supports it.
This also happens to fix a duplicate-slb-entry inspired machine-check
exception I was seeing when trying to run java on a power6 partition.
Tested on power6 and power5.
Signed-Off-By: Will Schmidt <redacted>
Good catch !
A minor comment is maybe you could factor out the code better doing
something like a ESID_COMPARE() macro ?
Yeah, thats a good idea. I'll spin up a new patch in the next day or
so.
It occurred to me that I should continue to use GET_ESID when the user
address is < 1T too.
quoted
---
There is a similar bit of code in stab.c switch_stab(). Should this change also be made there?
---
There is no machine that does stab and 1T segments.