On 04/09/2018 01:44 PM, David Hildenbrand wrote: > On 09.04.2018 13:40, Christian Borntraeger wrote: >> >> >> On 04/09/2018 01:36 PM, David Hildenbrand wrote: >>> On 09.04.2018 13:35, Christian Borntraeger wrote: >>>> >>>> >>>> On 04/09/2018 01:30 PM, David Hildenbrand wrote: >>>>> Let's simplify it a bit. On some weird circumstances we would have tried >>>>> to recompute watchpoints when running under KVM. > > > >>>>> >>>>> Signed-off-by: David Hildenbrand <da...@redhat.com> >>>>> --- >>>>> target/s390x/helper.c | 10 ++++++---- >>>>> 1 file changed, 6 insertions(+), 4 deletions(-) >>>>> >>>>> diff --git a/target/s390x/helper.c b/target/s390x/helper.c >>>>> index 615fa24ab9..e8548f340a 100644 >>>>> --- a/target/s390x/helper.c >>>>> +++ b/target/s390x/helper.c >>>>> @@ -103,16 +103,18 @@ void load_psw(CPUS390XState *env, uint64_t mask, >>>>> uint64_t addr) >>>>> >>>>> env->psw.addr = addr; >>>>> env->psw.mask = mask; >>>>> - if (tcg_enabled()) { >>>>> - env->cc_op = (mask >> 44) & 3; >>>>> + >>>>> + /* KVM will handle all WAITs and trigger a WAIT exit on >>>>> disabled_wait */ >>>>> + if (!tcg_enabled()) { >>>>> + return; >>>>> } >>>>> + env->cc_op = (mask >> 44) & 3; >>>> >>>> Do we have any call path were KVM could call load_psw? >>> >>> do_restart_interrupt() >>> >>> SIGP while the target CPU is stopped. >> >> makes sense. Can you add that to the patch description? that makes it easier >> to understand >> what can really go wrong without this patch. > > Sure! > > Conny, when (and if ;) ) picking this up, can you change the description to > > "Let's simplify it a bit. On some weird circumstances we would have > tried to recompute watchpoints when running under KVM. load_psw() is > called from do_restart_interrupt() during a SIGP RESTART if the target > CPU is STOPPED. Let's touch watchpoints only in the TCG case - where > they are used for PER emulation." > With that:
Acked-by: Christian Borntraeger <borntrae...@de.ibm.com>