linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Anshuman Khandual <khandual@linux.vnet.ibm.com>
To: Michael Ellerman <mpe@ellerman.id.au>
Cc: linuxppc-dev@ozlabs.org, linuxram@us.ibm.com,
	Jeremy Kerr <jk@ozlabs.org>
Subject: Re: [PATCH v3 2/2] selftests/powerpc: Add a test of the switch_endian() syscall
Date: Wed, 25 Mar 2015 17:02:10 +0530	[thread overview]
Message-ID: <55129CBA.4010402@linux.vnet.ibm.com> (raw)
In-Reply-To: <1427261327.29319.5.camel@ellerman.id.au>

On 03/25/2015 10:58 AM, Michael Ellerman wrote:
> On Wed, 2015-03-18 at 16:04 +1100, Michael Ellerman wrote:
>> On Tue, 2015-03-17 at 11:35 +0530, Anshuman Khandual wrote:
>>> On 03/17/2015 04:34 AM, Michael Ellerman wrote:
>>>> What are you seeing exactly?
>>>
>>> I am running on a BE PKVM guest but compiling the test case on
>>> a different BE machine which has newer version of the compiler.
>>>
>>> cc (GCC) 4.8.3 20140624
>>>
>>> cc -O2 -Wall -g -nostdlib -m64   -c -o check.o check.S
>>> objcopy -j .text --reverse-bytes=4 -O binary check.o check-reversed.o
>>> hexdump -v -e '/1 ".byte 0x%02X\n"' check-reversed.o > check-reversed.S
>>> cc -O2 -Wall -g -nostdlib -m64    switch_endian_test.S check-reversed.S   -o switch_endian_test
>>>
>>> which looks very similar to the details you have provided above.
>>> Running on guest or host should not make any difference.
>>
>> No it shouldn't.
>>
>> Can you try strace, that should give you the full result code.
>>
>> Also can you try gdb. You can't breakpoint in the wrong-endian region, but it
>> looks like you're getting through that anyway.
>>
>> So try setting a breakpoint at line ~77, and you should be back in BE. Then you
>> can single step and see where it errors out.
> 
> Did you try these?

Yeah. The test program is showing some strange behavior.

(1) Without strace: It just fails with 176 return code as before
(2) With strace: It works with return code 0 and prints everything !!

strace ./switch_endian_test
execve("./switch_endian_test", ["./switch_endian_test"], [/* 50 vars */]) = 0
SYS_363(0x5555aaaa5555aaaa, 0x5555aaaa5555aaae, 0x5555aaaa5555aaaf,
0x5555aaaa5555aab0, 0x5555aaaa5555aab1) = 6149008514797120170
write(1, "Hello wrong-endian world\n", 25Hello wrong-endian world
) = 25
SYS_363(0x19, 0x10010638, 0x19, 0x5555aaaa5555aab0, 0x5555aaaa5555aab1) = 25
write(1, "Hello right-endian world\n", 25Hello right-endian world
) = 25
write(1, "success: switch_endian_test\n", 28success: switch_endian_test
) = 28
exit(0)                                 = ?

With GDB and breaking at line 77, it exits with a different exit code this time

30		cmpd    r3,r5
(gdb) 
31		bne     1f
(gdb) 
32		addi    r3,r15,6
(gdb) 
33		cmpd    r3,r6
(gdb) 
34		bne     1f
(gdb) 
98	1:	li	r0, __NR_exit
(gdb) 
99		sc
(gdb) 
[Inferior 1 (process 6456) exited with code 0260]

Also (this might sound bit strange), after multiple attempts of GDB, the program
did ran successfully with exit code of 0. Also it ran successfully without GDB
as well. But again after a fresh reboot, the problem was recreated again.

Will look into this further.

  reply	other threads:[~2015-03-25 11:33 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-16  6:57 [PATCH v3 1/2] powerpc: Add a proper syscall for switching endianness Michael Ellerman
2015-03-16  6:57 ` [PATCH v3 2/2] selftests/powerpc: Add a test of the switch_endian() syscall Michael Ellerman
2015-03-16 11:00   ` Anshuman Khandual
2015-03-16 23:04     ` Michael Ellerman
2015-03-17  6:05       ` Anshuman Khandual
2015-03-18  5:04         ` Michael Ellerman
2015-03-25  5:28           ` Michael Ellerman
2015-03-25 11:32             ` Anshuman Khandual [this message]
2015-03-26  0:36               ` Michael Ellerman
2015-03-26  6:24                 ` Anshuman Khandual
2015-03-28  2:34                   ` Michael Ellerman

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=55129CBA.4010402@linux.vnet.ibm.com \
    --to=khandual@linux.vnet.ibm.com \
    --cc=jk@ozlabs.org \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=linuxram@us.ibm.com \
    --cc=mpe@ellerman.id.au \
    /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).