From: Michael Neuling <mikey@neuling.org>
To: mpe@ellerman.id.au
Cc: linuxppc-dev@lists.ozlabs.org, paulus@ozlabs.org,
david@gibson.dropbear.id.au, npiggin@gmail.com,
pedromfc@linux.vnet.ibm.com, kvm-ppc@vger.kernel.org,
Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
Subject: [PATCH v3 0/8] powerpc: Disable DAWR on POWER9
Date: Tue, 27 Mar 2018 15:37:16 +1100 [thread overview]
Message-ID: <20180327043724.13862-1-mikey@neuling.org> (raw)
Using the DAWR on POWER9 can cause xstops, hence we need to disable
it.
The current CPU_FTR for DAWR is a bit messy. Despite having
CPU_FTR_DAWR, currently we assume DAWR exists in the KVM code based on
CPU_FTR_ARCH_207. In other places we assume DAWR exists if
CPU_FTR_DAWR is set.
This attempts to clear up the situation by always using CPU_FTR_DAWR
before setting the DAWR (to a non-zero value).
DAWR has 5 different ways of being set from userspace. ptrace,
h_set_mode, h_set_mode(DAWR), h_set_dabr(), kvmppc_set_one_reg() and
xmon.
For ptrace, we now advertise zero breakpoints on POWER9 via the
PPC_PTRACE_GETHWDBGINFO call. This results in GDB falling back to
software emulation of the watchpoint (which is slow).
h_set_mode() and h_set_dabr() will now return an error to the guest
when on a POWER9 host. Current Linux guests ignore this error, so they
will silently not get the DAWR (sigh). The same error codes are being
used by POWERVM in this case.
kvmppc_set_one_reg() will store the value in the vcpu but won't
actually set it on POWER9 hardware. This is done so we don't break
migration from P8 to P9, at the cost of silently losing the DAWR on
the migration. This is not ideal but hopefully the best overall
solution. This approach has been acked by paulus.
For xmon, the 'bd' command will return an error on P9.
Thanks to Pedro Franco de Carvalho for the initial version of this.
v3:
Split patches
Fix usage of H_UNSUPPORTED
v2:
Move to CPU feature quirk from Nick's
dbginfo.num_data_bps = 0 if !breakpoint_available() from Pedro
next reply other threads:[~2018-03-27 4:37 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-27 4:37 Michael Neuling [this message]
2018-03-27 4:37 ` [PATCH v3 1/8] powerpc: Add ppc_breakpoint_available() Michael Neuling
2018-03-28 14:13 ` [v3,1/8] " Michael Ellerman
2018-03-27 4:37 ` [PATCH v3 2/8] powerpc: Update ptrace to use ppc_breakpoint_available() Michael Neuling
2018-03-27 4:37 ` [PATCH v3 3/8] powerpc: Update xmon " Michael Neuling
2018-03-27 4:37 ` [PATCH v3 4/8] KVM: PPC: Book3S HV: Return error from h_set_mode(SET_DAWR) on POWER9 Michael Neuling
2018-03-27 4:37 ` [PATCH v3 5/8] KVM: PPC: Book3S HV: Return error from h_set_dabr() " Michael Neuling
2018-03-27 4:37 ` [PATCH v3 6/8] KVM: PPC: Book3S HV: Handle migration with POWER9 disabled DAWR Michael Neuling
2018-03-27 4:37 ` [PATCH v3 7/8] powerpc: Disable DAWR on POWER9 via CPU feature quirk Michael Neuling
2018-03-27 4:37 ` [PATCH v3 8/8] powerpc: Disable DAWR in the base POWER9 CPU features Michael Neuling
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180327043724.13862-1-mikey@neuling.org \
--to=mikey@neuling.org \
--cc=ananth@linux.vnet.ibm.com \
--cc=david@gibson.dropbear.id.au \
--cc=kvm-ppc@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=paulus@ozlabs.org \
--cc=pedromfc@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).