Ubuntu16.04.03: ISAv3 initialize MMU registers before setting partition table
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
The Ubuntu-power-systems project |
Fix Released
|
High
|
Canonical Kernel Team | ||
linux (Ubuntu) |
Fix Released
|
High
|
Joseph Salisbury | ||
Artful |
Fix Released
|
High
|
Joseph Salisbury | ||
Bionic |
Fix Released
|
High
|
Joseph Salisbury |
Bug Description
== SRU Justification ==
Kexec can leave MMU registers set, PIDR in particular, when booting the
new kernel. The boot sequence does not zero PIDR ever, and it only gets
changed as CPUs first switch to userspace processes. This can leave a
window where speculative accesses from a CPU to quadrant 0 can pick up
translations in the partition table that may be set up for processes
running on other CPUs. These cached translations will not be involved in
the invalidation protocol, so we can end with stable TLB and PWC.
This commit was included in mailine as of v4.15-rc5 and fixes commit 7e381c0ff618.
== Fix ==
commit 371b80447ff33dd
Author: Nicholas Piggin <email address hidden>
Date: Wed Dec 6 18:21:14 2017 +1000
powerpc/64s: Initialize ISAv3 MMU registers before setting partition table
== Regression Potential ==
Low. This fix is specific to powerpc. It has also been cc'd to upstream stable,
so it has had additional upstream review.
==Original Bug Description: ==
== Comment: #0 - Breno Leitao <email address hidden> - 2017-12-04 05:50:27 ==
kexec can leave MMU registers set, PIDR in particular, when booting the
new kernel. The boot sequence does not zero PIDR ever, and it only gets
changed as CPUs first switch to userspace processes. This can leave a
window where speculative accesses from a CPU to quadrant 0 can pick up
translations in the partition table that may be set up for processes
running on other CPUs. These cached translations will not be involved in
the invalidation protocol, so we can end with stable TLB and PWC.
We need to have this patch included in Ubuntu kernel.
https:/
We do not have commit id, but once we have, I will post here. There is no need to include the patch prior to upstream acceptance.
== Comment: #2 - VIPIN K. PARASHAR <email address hidden> - 2017-12-04 06:57:52 ==
(In reply to comment #0)
>
> We need to have this patch included in Ubuntu kernel.
> https:/
>
> We do not have commit id, but once we have, I will post here. There is no
> need to include the patch prior to upstream acceptance.
>
.. Patch subject reads as follows:
[PATCH] powerpc/64s: ISAv3 initialize MMU registers before setting partition table
tags: | added: architecture-ppc64le bugnameltc-162133 severity-high targetmilestone-inin16043 |
Changed in ubuntu: | |
assignee: | nobody → Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) |
affects: | ubuntu → linux (Ubuntu) |
tags: | added: triage-g |
Changed in ubuntu-power-systems: | |
assignee: | nobody → Canonical Kernel Team (canonical-kernel-team) |
importance: | Undecided → High |
Changed in linux (Ubuntu): | |
assignee: | Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) → Canonical Kernel Team (canonical-kernel-team) |
Changed in ubuntu-power-systems: | |
status: | New → Triaged |
Changed in linux (Ubuntu): | |
importance: | Undecided → High |
tags: | added: kernel-da-key |
tags: |
added: triage-a removed: triage-g |
Changed in linux (Ubuntu): | |
status: | Triaged → In Progress |
Changed in linux (Ubuntu Artful): | |
status: | New → In Progress |
importance: | Undecided → High |
assignee: | nobody → Joseph Salisbury (jsalisbury) |
Changed in linux (Ubuntu Bionic): | |
status: | In Progress → Fix Committed |
tags: |
added: triage-g removed: triage-a |
Changed in linux (Ubuntu Artful): | |
status: | In Progress → Fix Committed |
Changed in ubuntu-power-systems: | |
status: | Triaged → Fix Committed |
I don't see the patch in linux-next yet. Can you post a comment here when the patch lands upstream? When it does, I'll build test kernels and start the SRU process.