qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] target-s390x: Mask the SIGP order_code to 8bit.
       [not found] <1439897731-3645-1-git-send-email-phil@philkern.de>
@ 2015-08-18 11:50 ` Philipp Kern
  2015-08-20 17:16   ` Thomas Huth
  0 siblings, 1 reply; 9+ messages in thread
From: Philipp Kern @ 2015-08-18 11:50 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philipp Kern

According to "CPU Signaling and Response", "Signal-Processor Orders",
the order field is bit position 56-63. Without this, the Linux
guest kernel is sometimes unable to stop emulation and enters
an infinite loop of "XXX unknown sigp: 0xffffffff00000005".

Signed-off-by: Philipp Kern <phil@philkern.de>
---
 target-s390x/misc_helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target-s390x/misc_helper.c b/target-s390x/misc_helper.c
index 8eac0e1..0f0907c 100644
--- a/target-s390x/misc_helper.c
+++ b/target-s390x/misc_helper.c
@@ -500,7 +500,7 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t order_code, uint32_t r1,
     /* Remember: Use "R1 or R1 + 1, whichever is the odd-numbered register"
        as parameter (input). Status (output) is always R1. */
 
-    switch (order_code) {
+    switch (order_code & 0xff) {
     case SIGP_SET_ARCH:
         /* switch arch */
         break;
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH] target-s390x: Mask the SIGP order_code to 8bit.
  2015-08-18 11:50 ` Philipp Kern
@ 2015-08-20 17:16   ` Thomas Huth
  2015-08-26  9:18     ` Alexander Graf
  0 siblings, 1 reply; 9+ messages in thread
From: Thomas Huth @ 2015-08-20 17:16 UTC (permalink / raw)
  To: Philipp Kern, qemu-devel, Richard Henderson, Alexander Graf

On 18/08/15 04:50, Philipp Kern wrote:
> According to "CPU Signaling and Response", "Signal-Processor Orders",
> the order field is bit position 56-63. Without this, the Linux
> guest kernel is sometimes unable to stop emulation and enters
> an infinite loop of "XXX unknown sigp: 0xffffffff00000005".
> 
> Signed-off-by: Philipp Kern <phil@philkern.de>
> ---
>  target-s390x/misc_helper.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/target-s390x/misc_helper.c b/target-s390x/misc_helper.c
> index 8eac0e1..0f0907c 100644
> --- a/target-s390x/misc_helper.c
> +++ b/target-s390x/misc_helper.c
> @@ -500,7 +500,7 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t order_code, uint32_t r1,
>      /* Remember: Use "R1 or R1 + 1, whichever is the odd-numbered register"
>         as parameter (input). Status (output) is always R1. */
>  
> -    switch (order_code) {
> +    switch (order_code & 0xff) {
>      case SIGP_SET_ARCH:
>          /* switch arch */
>          break;

Reviewed-by: Thomas Huth <thuth@tuxfamily.org>

(by the way, please make sure to copy the maintainers on CC: or your
patch might get lost in the high traffic of qemu-devel mailing list)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH] target-s390x: Mask the SIGP order_code to 8bit.
  2015-08-20 17:16   ` Thomas Huth
@ 2015-08-26  9:18     ` Alexander Graf
  2016-05-29 14:10       ` Philipp Kern
  0 siblings, 1 reply; 9+ messages in thread
From: Alexander Graf @ 2015-08-26  9:18 UTC (permalink / raw)
  To: Thomas Huth, Philipp Kern, qemu-devel, Richard Henderson



On 20.08.15 19:16, Thomas Huth wrote:
> On 18/08/15 04:50, Philipp Kern wrote:
>> According to "CPU Signaling and Response", "Signal-Processor Orders",
>> the order field is bit position 56-63. Without this, the Linux
>> guest kernel is sometimes unable to stop emulation and enters
>> an infinite loop of "XXX unknown sigp: 0xffffffff00000005".
>>
>> Signed-off-by: Philipp Kern <phil@philkern.de>
>> ---
>>  target-s390x/misc_helper.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/target-s390x/misc_helper.c b/target-s390x/misc_helper.c
>> index 8eac0e1..0f0907c 100644
>> --- a/target-s390x/misc_helper.c
>> +++ b/target-s390x/misc_helper.c
>> @@ -500,7 +500,7 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t order_code, uint32_t r1,
>>      /* Remember: Use "R1 or R1 + 1, whichever is the odd-numbered register"
>>         as parameter (input). Status (output) is always R1. */
>>  
>> -    switch (order_code) {
>> +    switch (order_code & 0xff) {
>>      case SIGP_SET_ARCH:
>>          /* switch arch */
>>          break;
> 
> Reviewed-by: Thomas Huth <thuth@tuxfamily.org>

Thanks, applied to s390-next.


Alex

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH] target-s390x: Mask the SIGP order_code to 8bit.
  2015-08-26  9:18     ` Alexander Graf
@ 2016-05-29 14:10       ` Philipp Kern
  0 siblings, 0 replies; 9+ messages in thread
From: Philipp Kern @ 2016-05-29 14:10 UTC (permalink / raw)
  To: Alexander Graf; +Cc: Thomas Huth, qemu-devel, Richard Henderson

[-- Attachment #1: Type: text/plain, Size: 1562 bytes --]

Hi,

On Wed, Aug 26, 2015 at 11:18:42AM +0200, Alexander Graf wrote:
> On 20.08.15 19:16, Thomas Huth wrote:
> > On 18/08/15 04:50, Philipp Kern wrote:
> >> According to "CPU Signaling and Response", "Signal-Processor Orders",
> >> the order field is bit position 56-63. Without this, the Linux
> >> guest kernel is sometimes unable to stop emulation and enters
> >> an infinite loop of "XXX unknown sigp: 0xffffffff00000005".
> >>
> >> Signed-off-by: Philipp Kern <phil@philkern.de>
> >> ---
> >>  target-s390x/misc_helper.c | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/target-s390x/misc_helper.c b/target-s390x/misc_helper.c
> >> index 8eac0e1..0f0907c 100644
> >> --- a/target-s390x/misc_helper.c
> >> +++ b/target-s390x/misc_helper.c
> >> @@ -500,7 +500,7 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t order_code, uint32_t r1,
> >>      /* Remember: Use "R1 or R1 + 1, whichever is the odd-numbered register"
> >>         as parameter (input). Status (output) is always R1. */
> >>  
> >> -    switch (order_code) {
> >> +    switch (order_code & 0xff) {
> >>      case SIGP_SET_ARCH:
> >>          /* switch arch */
> >>          break;
> > 
> > Reviewed-by: Thomas Huth <thuth@tuxfamily.org>
> Thanks, applied to s390-next.

it looks like this patch never made it to qemu master. Could someone apply it
please?

(It also seems to be the only pending patch in agraf's s390-next[1].)

Kind regards and thanks
Philipp Kern

[1] https://github.com/agraf/qemu/tree/s390-next

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH] target-s390x: Mask the SIGP order_code to 8bit.
@ 2017-04-23 22:32 Aurelien Jarno
  2017-04-24  8:25 ` Alexander Graf
  0 siblings, 1 reply; 9+ messages in thread
From: Aurelien Jarno @ 2017-04-23 22:32 UTC (permalink / raw)
  To: qemu-devel
  Cc: Alexander Graf, Richard Henderson, Philipp Kern, Aurelien Jarno

From: Philipp Kern <phil@philkern.de>

According to "CPU Signaling and Response", "Signal-Processor Orders",
the order field is bit position 56-63. Without this, the Linux
guest kernel is sometimes unable to stop emulation and enters
an infinite loop of "XXX unknown sigp: 0xffffffff00000005".

Signed-off-by: Philipp Kern <phil@philkern.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 target/s390x/misc_helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

This patch has been sent by Philipp Kern a lot of time ago, and it seems
has been lost. I am resending it, as it is still useful.

diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c
index 3bf09ea222..4946b56ab3 100644
--- a/target/s390x/misc_helper.c
+++ b/target/s390x/misc_helper.c
@@ -534,7 +534,7 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t order_code, uint32_t r1,
     /* Remember: Use "R1 or R1 + 1, whichever is the odd-numbered register"
        as parameter (input). Status (output) is always R1. */
 
-    switch (order_code) {
+    switch (order_code & 0xff) {
     case SIGP_SET_ARCH:
         /* switch arch */
         break;
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH] target-s390x: Mask the SIGP order_code to 8bit.
  2017-04-23 22:32 [Qemu-devel] [PATCH] target-s390x: Mask the SIGP order_code to 8bit Aurelien Jarno
@ 2017-04-24  8:25 ` Alexander Graf
  2017-04-25  9:51   ` Richard Henderson
  0 siblings, 1 reply; 9+ messages in thread
From: Alexander Graf @ 2017-04-24  8:25 UTC (permalink / raw)
  To: Aurelien Jarno, qemu-devel; +Cc: Richard Henderson, Philipp Kern



On 24.04.17 00:32, Aurelien Jarno wrote:
> From: Philipp Kern <phil@philkern.de>
>
> According to "CPU Signaling and Response", "Signal-Processor Orders",
> the order field is bit position 56-63. Without this, the Linux
> guest kernel is sometimes unable to stop emulation and enters
> an infinite loop of "XXX unknown sigp: 0xffffffff00000005".
>
> Signed-off-by: Philipp Kern <phil@philkern.de>
> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> ---
>  target/s390x/misc_helper.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> This patch has been sent by Philipp Kern a lot of time ago, and it seems
> has been lost. I am resending it, as it is still useful.
>
> diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c
> index 3bf09ea222..4946b56ab3 100644
> --- a/target/s390x/misc_helper.c
> +++ b/target/s390x/misc_helper.c
> @@ -534,7 +534,7 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t order_code, uint32_t r1,
>      /* Remember: Use "R1 or R1 + 1, whichever is the odd-numbered register"
>         as parameter (input). Status (output) is always R1. */
>
> -    switch (order_code) {
> +    switch (order_code & 0xff) {

This definitely needs a comment above the mask. Ideally I'd love to just 
change the function prototype to pass order_code as uint8_t, but I don't 
think that's possible with the TCG glue.


Alex

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH] target-s390x: Mask the SIGP order_code to 8bit.
  2017-04-24  8:25 ` Alexander Graf
@ 2017-04-25  9:51   ` Richard Henderson
  2017-04-25 11:21     ` Philipp Kern
  0 siblings, 1 reply; 9+ messages in thread
From: Richard Henderson @ 2017-04-25  9:51 UTC (permalink / raw)
  To: Alexander Graf, Aurelien Jarno, qemu-devel; +Cc: Philipp Kern

On 04/24/2017 10:25 AM, Alexander Graf wrote:
> 
> 
> On 24.04.17 00:32, Aurelien Jarno wrote:
>> From: Philipp Kern <phil@philkern.de>
>>
>> According to "CPU Signaling and Response", "Signal-Processor Orders",
>> the order field is bit position 56-63. Without this, the Linux
>> guest kernel is sometimes unable to stop emulation and enters
>> an infinite loop of "XXX unknown sigp: 0xffffffff00000005".
>>
>> Signed-off-by: Philipp Kern <phil@philkern.de>
>> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
>> ---
>>  target/s390x/misc_helper.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> This patch has been sent by Philipp Kern a lot of time ago, and it seems
>> has been lost. I am resending it, as it is still useful.
>>
>> diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c
>> index 3bf09ea222..4946b56ab3 100644
>> --- a/target/s390x/misc_helper.c
>> +++ b/target/s390x/misc_helper.c
>> @@ -534,7 +534,7 @@ uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t 
>> order_code, uint32_t r1,
>>      /* Remember: Use "R1 or R1 + 1, whichever is the odd-numbered register"
>>         as parameter (input). Status (output) is always R1. */
>>
>> -    switch (order_code) {
>> +    switch (order_code & 0xff) {
> 
> This definitely needs a comment above the mask. Ideally I'd love to just change 
> the function prototype to pass order_code as uint8_t, but I don't think that's 
> possible with the TCG glue.

Correct.  We'll need to leave the mask here.


r~

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH] target-s390x: Mask the SIGP order_code to 8bit.
  2017-04-25  9:51   ` Richard Henderson
@ 2017-04-25 11:21     ` Philipp Kern
  2017-04-25 11:32       ` Alexander Graf
  0 siblings, 1 reply; 9+ messages in thread
From: Philipp Kern @ 2017-04-25 11:21 UTC (permalink / raw)
  To: Richard Henderson
  Cc: Alexander Graf, Aurelien Jarno, qemu-devel, Richard Henderson

On 2017-04-25 11:51, Richard Henderson wrote:
> On 04/24/2017 10:25 AM, Alexander Graf wrote:
>> On 24.04.17 00:32, Aurelien Jarno wrote:
>>> From: Philipp Kern <phil@philkern.de>
>>> 
>>> According to "CPU Signaling and Response", "Signal-Processor Orders",
>>> the order field is bit position 56-63. Without this, the Linux
>>> guest kernel is sometimes unable to stop emulation and enters
>>> an infinite loop of "XXX unknown sigp: 0xffffffff00000005".
>>> 
>>> Signed-off-by: Philipp Kern <phil@philkern.de>
>>> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
>>> ---
>>>  target/s390x/misc_helper.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>> 
>>> This patch has been sent by Philipp Kern a lot of time ago, and it 
>>> seems
>>> has been lost. I am resending it, as it is still useful.
>>> 
>>> diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c
>>> index 3bf09ea222..4946b56ab3 100644
>>> --- a/target/s390x/misc_helper.c
>>> +++ b/target/s390x/misc_helper.c
>>> @@ -534,7 +534,7 @@ uint32_t HELPER(sigp)(CPUS390XState *env, 
>>> uint64_t order_code, uint32_t r1,
>>>      /* Remember: Use "R1 or R1 + 1, whichever is the odd-numbered 
>>> register"
>>>         as parameter (input). Status (output) is always R1. */
>>> 
>>> -    switch (order_code) {
>>> +    switch (order_code & 0xff) {
>> 
>> This definitely needs a comment above the mask. Ideally I'd love to 
>> just change the function prototype to pass order_code as uint8_t, but 
>> I don't think that's possible with the TCG glue.
> 
> Correct.  We'll need to leave the mask here.

I shall point out that Alexander merged it into the s390-next tree when 
I first sent it but that was never merged into qemu proper. I don't 
think there's a problem in adding a comment that says what the commit 
description says right there, like this:

/* sigp contains the order code in bit positions 56-63, mask it here. */

Kind regards
Philipp Kern

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH] target-s390x: Mask the SIGP order_code to 8bit.
  2017-04-25 11:21     ` Philipp Kern
@ 2017-04-25 11:32       ` Alexander Graf
  0 siblings, 0 replies; 9+ messages in thread
From: Alexander Graf @ 2017-04-25 11:32 UTC (permalink / raw)
  To: Philipp Kern, Richard Henderson
  Cc: Aurelien Jarno, qemu-devel, Richard Henderson

On 04/25/2017 01:21 PM, Philipp Kern wrote:
> On 2017-04-25 11:51, Richard Henderson wrote:
>> On 04/24/2017 10:25 AM, Alexander Graf wrote:
>>> On 24.04.17 00:32, Aurelien Jarno wrote:
>>>> From: Philipp Kern <phil@philkern.de>
>>>>
>>>> According to "CPU Signaling and Response", "Signal-Processor Orders",
>>>> the order field is bit position 56-63. Without this, the Linux
>>>> guest kernel is sometimes unable to stop emulation and enters
>>>> an infinite loop of "XXX unknown sigp: 0xffffffff00000005".
>>>>
>>>> Signed-off-by: Philipp Kern <phil@philkern.de>
>>>> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
>>>> ---
>>>>  target/s390x/misc_helper.c | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> This patch has been sent by Philipp Kern a lot of time ago, and it 
>>>> seems
>>>> has been lost. I am resending it, as it is still useful.
>>>>
>>>> diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c
>>>> index 3bf09ea222..4946b56ab3 100644
>>>> --- a/target/s390x/misc_helper.c
>>>> +++ b/target/s390x/misc_helper.c
>>>> @@ -534,7 +534,7 @@ uint32_t HELPER(sigp)(CPUS390XState *env, 
>>>> uint64_t order_code, uint32_t r1,
>>>>      /* Remember: Use "R1 or R1 + 1, whichever is the odd-numbered 
>>>> register"
>>>>         as parameter (input). Status (output) is always R1. */
>>>>
>>>> -    switch (order_code) {
>>>> +    switch (order_code & 0xff) {
>>>
>>> This definitely needs a comment above the mask. Ideally I'd love to 
>>> just change the function prototype to pass order_code as uint8_t, 
>>> but I don't think that's possible with the TCG glue.
>>
>> Correct.  We'll need to leave the mask here.
>
> I shall point out that Alexander merged it into the s390-next tree 
> when I first sent it but that was never merged into qemu proper. I 
> don't think there's a problem in adding a comment that says what the 
> commit description says right there, like this:
>
> /* sigp contains the order code in bit positions 56-63, mask it here. */

Ouch, you're right. Let me fix that up and send out a pull request.


Alex

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-04-25 11:32 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-23 22:32 [Qemu-devel] [PATCH] target-s390x: Mask the SIGP order_code to 8bit Aurelien Jarno
2017-04-24  8:25 ` Alexander Graf
2017-04-25  9:51   ` Richard Henderson
2017-04-25 11:21     ` Philipp Kern
2017-04-25 11:32       ` Alexander Graf
     [not found] <1439897731-3645-1-git-send-email-phil@philkern.de>
2015-08-18 11:50 ` Philipp Kern
2015-08-20 17:16   ` Thomas Huth
2015-08-26  9:18     ` Alexander Graf
2016-05-29 14:10       ` Philipp Kern

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).