From: David Hildenbrand <david@redhat.com>
To: Cornelia Huck <cohuck@redhat.com>, Janosch Frank <frankja@linux.ibm.com>
Cc: qemu-s390x@nongnu.org, borntraeger@de.ibm.com, thuth@redhat.com,
qemu-devel@nongnu.org
Subject: Re: [PATCH] s390x: sigp: Fix sense running reporting
Date: Fri, 24 Jan 2020 13:03:27 +0100 [thread overview]
Message-ID: <63618540-bc70-918a-6a26-14656f66742f@redhat.com> (raw)
In-Reply-To: <20200124110547.50c73851.cohuck@redhat.com>
On 24.01.20 11:05, Cornelia Huck wrote:
> On Fri, 24 Jan 2020 05:01:37 -0500
> Janosch Frank <frankja@linux.ibm.com> wrote:
>
>> The logic was inversed and reported running if the cpu was stopped.
>
> s/inversed/inverted/ ?
>
>> Let's fix that.
>>
>
> Fixes: d1b468bc8869 ("s390x/tcg: implement SIGP SENSE RUNNING STATUS")
>
>> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
>> ---
>> target/s390x/sigp.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/target/s390x/sigp.c b/target/s390x/sigp.c
>> index 727875bb4a..286c0d6c9c 100644
>> --- a/target/s390x/sigp.c
>> +++ b/target/s390x/sigp.c
>> @@ -347,7 +347,7 @@ static void sigp_sense_running(S390CPU *dst_cpu, SigpInfo *si)
>> }
>>
>> /* If halted (which includes also STOPPED), it is not running */
>> - if (CPU(dst_cpu)->halted) {
>> + if (!CPU(dst_cpu)->halted) {
>> si->cc = SIGP_CC_ORDER_CODE_ACCEPTED;
>> } else {
>> set_sigp_status(si, SIGP_STAT_NOT_RUNNING);
>
> I'm wondering why nobody noticed this before...
AFAIR, it "SENSE RUNNING" allows you to test if the target CPU is
scheduled by the hypervisor. So it is used for performance optimization,
but correctness of a program barely depends on it.
a) You can always return "not running" and it would be totally fine
b) Return "running" would also most probably always valid (although it
does not make too much sense for STOPPED CPUs).
E.g., in KVM we set CPUSTAT_RUNNING whenever we load the CPU. This can
also happen (AFAIR) when the CPU state is already stopped (e.g.,
currently getting stopped) or still sleeping (e.g., about to wake up, or
in kvm_vcpu_block()).
Long story short: There is no trusting on these values.
But yeah, the heuristic we are using is sub-optimal. :)
Reviewed-by: David Hildenbrand <david@redhat.com>
--
Thanks,
David / dhildenb
next prev parent reply other threads:[~2020-01-24 12:04 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-24 10:01 [PATCH] s390x: sigp: Fix sense running reporting Janosch Frank
2020-01-24 10:05 ` Cornelia Huck
2020-01-24 12:03 ` David Hildenbrand [this message]
2020-01-24 13:00 ` Janosch Frank
2020-01-24 13:01 ` Janosch Frank
2020-01-24 13:15 ` David Hildenbrand
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=63618540-bc70-918a-6a26-14656f66742f@redhat.com \
--to=david@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=thuth@redhat.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).