Bug 967915 - Fedora19:Alpha:Toolchain: gdb tests are failing
Fedora19:Alpha:Toolchain: gdb tests are failing
Status: CLOSED CURRENTRELEASE
Product: Fedora
Classification: Fedora
Component: gdb (Show other bugs)
19
ppc64 All
unspecified Severity high
: ---
: ---
Assigned To: Jan Kratochvil
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2013-05-28 10:41 EDT by IBM Bug Proxy
Modified: 2013-06-13 15:22 EDT (History)
8 users (show)

See Also:
Fixed In Version: gdb-7.6-31.fc19
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-05-28 12:15:05 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
gdb 32bit test out log (80.50 KB, application/octet-stream)
2013-05-28 10:41 EDT, IBM Bug Proxy
no flags Details
gdb 64bit test out log (82.04 KB, application/octet-stream)
2013-05-28 10:41 EDT, IBM Bug Proxy
no flags Details
backport patch to fix hw watchpoints on Power (1.64 KB, text/plain)
2013-05-28 10:42 EDT, IBM Bug Proxy
no flags Details


External Trackers
Tracker ID Priority Status Summary Last Updated
IBM Linux Technology Center 93594 None None None Never

  None (edit)
Description IBM Bug Proxy 2013-05-28 10:41:12 EDT
== Comment: #0 - Kumuda G <kumuda.govind@in.ibm.com> - 2013-05-20 07:33:24 ==
gdb tests are failing on Fedora 19 alpha ppc64 installed on Power7 lpar.

--- System Details ---
[root@ltcfbl6fb11 ~]# uname -a
Linux ltcfbl6fb11.austin.ibm.com 3.9.0-0.rc6.git2.4.fc19.ppc64p7 #1 SMP Mon Apr 15 19:03:07 MST 2013 ppc64 ppc64 ppc64 GNU/Linux

--- Steps to reproduce ---
1. Install gdb source- rpm -ivh gdb-7.6-28.fc19.src.rpm
2. cd rpmbuild/SPECS/; rpmbuild -bc gdb.spec
3. cd ../BUILD/gdb-7.6/build-ppc64-redhat-linux/
4. Execute tests in 32 bit mode, make check-gdb 'RUNTESTFLAGS=--target_board=unix/-m32 --tool_exec=/usr/bin/gdb'
5. Execute tests in 64 bit mode,  make check-gdb 'RUNTESTFLAGS=--target_board=unix/-m64 --tool_exec=/usr/bin/gdb'

GDB 32 bit mode test summary : 

                === gdb Summary ===

# of expected passes            23138
# of unexpected failures        139
# of unexpected successes       1
# of expected failures          35
# of known failures             57
# of unresolved testcases       2
# of untested testcases         59
# of unsupported tests          120


GDB 64 bit mode test summary : 

                === gdb Summary ===

# of expected passes            23304
# of unexpected failures        225
# of unexpected successes       1
# of expected failures          45
# of known failures             57
# of unresolved testcases       2
# of untested testcases         26
# of unsupported tests          120


Attached are gdb-7.6-32-F19.out and gdb-7.6-64bit-F19.out for reference.

== Comment: #1 - Kumuda G <kumuda.govind@in.ibm.com> - 2013-05-20 07:34:13 ==


== Comment: #6 - Edjunior Barbosa Machado <emachado@br.ibm.com> - 2013-05-28 10:16:07 ==
I was facing some difficulties to run the tests on the aforementioned machine due to the limited resource of the system (processes killed by OOM killer, testcases failing with 'timeout' error) then I managed to rerun the testsuite in another Power7 machine running Fedora19 with more memory and cpus and found better results:

32-bit inferior:
# of expected passes            23427
# of unexpected failures        114
# of unexpected successes       1
# of expected failures          34
# of known failures             57
# of unresolved testcases       2
# of untested testcases         57
# of unsupported tests          124

64-bit inferior:
# of expected passes            23669
# of unexpected failures        181
# of unexpected successes       1
# of expected failures          44
# of known failures             57
# of untested testcases         21
# of unresolved testcases       2
# of unsupported tests          123

However, there is a fix for hw watchpoints on Power not included yet on Fedora19 (http://sourceware.org/ml/gdb-patches/2013-05/msg00422.html) that reduces the number of failures in around 40 errors:

32-bit inferior
# of expected passes            23464
# of unexpected failures        77
# of unexpected successes       1
# of expected failures          34
# of known failures             56
# of unresolved testcases       2
# of untested testcases         57
# of unsupported tests          124

64-bit inferior
# of expected passes            23710
# of unexpected failures        140
# of unexpected successes       1
# of expected failures          44
# of known failures             56
# of untested testcases         21
# of unresolved testcases       2
# of unsupported tests          123

== Comment: #7 - Edjunior Barbosa Machado <emachado@br.ibm.com> - 2013-05-28 10:24:01 ==
This patch against gdb-7.6-30.fc19.src.rpm fixes the insertion of hardware watchpoints on Power server processors. It was already accepted upstream:

http://sourceware.org/ml/gdb-patches/2013-05/msg00706.html
Comment 1 IBM Bug Proxy 2013-05-28 10:41:38 EDT
Created attachment 753934 [details]
gdb 32bit test out log
Comment 2 IBM Bug Proxy 2013-05-28 10:41:54 EDT
Created attachment 753935 [details]
gdb 64bit test out log
Comment 3 IBM Bug Proxy 2013-05-28 10:42:07 EDT
Created attachment 753936 [details]
backport patch to fix hw watchpoints on Power
Comment 4 Jan Kratochvil 2013-05-28 10:52:25 EDT
Could you state in such cases the list of testcases (or diffable test results)?
I do not see this way which testcase I should see FAIL->PASS with the patch.
Comment 5 IBM Bug Proxy 2013-05-28 11:11:25 EDT
------- Comment From emachado@br.ibm.com 2013-05-28 15:02 EDT-------
This fix can be seen in some watchpoint-related testcases:

Running ../../../gdb/testsuite/gdb.base/watchpoint-hw.exp ...
PASS: gdb.base/watchpoint-hw.exp: watch watchee
-FAIL: gdb.base/watchpoint-hw.exp: start (timeout)
-FAIL: gdb.base/watchpoint-hw.exp: info watchpoints
+PASS: gdb.base/watchpoint-hw.exp: start
+PASS: gdb.base/watchpoint-hw.exp: info watchpoints
Running ../../../gdb/testsuite/gdb.base/watchpoint-hw-hit-once.exp ...
PASS: gdb.base/watchpoint-hw-hit-once.exp: rwatch watchee
-FAIL: gdb.base/watchpoint-hw-hit-once.exp: continue
-FAIL: gdb.base/watchpoint-hw-hit-once.exp: continue to break-at-exit (the program exited)
+PASS: gdb.base/watchpoint-hw-hit-once.exp: continue
+PASS: gdb.base/watchpoint-hw-hit-once.exp: continue to break-at-exit
...
Running ../../../gdb/testsuite/gdb.base/watch-read.exp ...
-FAIL: gdb.base/watch-read.exp: set hardware read watchpoint on global variable
-FAIL: gdb.base/watch-read.exp: read watchpoint triggers on first read (timeout)
-FAIL: gdb.base/watch-read.exp: read watchpoint triggers on read after value changed (timeout)
-FAIL: gdb.base/watch-read.exp: set write watchpoint on global variable (timeout)
-FAIL: gdb.base/watch-read.exp: write watchpoint triggers (timeout)
-FAIL: gdb.base/watch-read.exp: only write watchpoint triggers when value changes (timeout)
-FAIL: gdb.base/watch-read.exp: read watchpoint triggers when value doesn't change, trapping reads and writes (timeout)
-FAIL: gdb.base/watch-read.exp: only read watchpoint triggers when value doesn't change (timeout)
+PASS: gdb.base/watch-read.exp: set hardware read watchpoint on global variable
+PASS: gdb.base/watch-read.exp: read watchpoint triggers on first read
+PASS: gdb.base/watch-read.exp: read watchpoint triggers on read after value changed
+PASS: gdb.base/watch-read.exp: set write watchpoint on global variable
+PASS: gdb.base/watch-read.exp: write watchpoint triggers
+PASS: gdb.base/watch-read.exp: only write watchpoint triggers when value changes
+PASS: gdb.base/watch-read.exp: read watchpoint triggers when value doesn't change, trapping reads and writes
+PASS: gdb.base/watch-read.exp: only read watchpoint triggers when value doesn't change
...
-FAIL: gdb.base/watch_thread_num.exp: Watchpoint on shared variable
+PASS: gdb.base/watch_thread_num.exp: Watchpoint on shared variable
PASS: gdb.base/watch_thread_num.exp: info breakpoint 3
-FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 1
+PASS: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 1
PASS: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 1
-FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 2
+PASS: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 2
PASS: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 2
-FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 3
+PASS: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 3
PASS: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 3
-FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 4
+PASS: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 4
PASS: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 4
-FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 5
+PASS: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 5
PASS: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 5
-FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 6
+PASS: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 6
PASS: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 6
-FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 7
+PASS: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 7
PASS: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 7
-FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 8
+PASS: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 8
PASS: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 8
-FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 9
+PASS: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 9
PASS: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 9
-FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 10
+PASS: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 10

Thanks.
Comment 6 Jan Kratochvil 2013-05-28 12:15:05 EDT
Pushed
  http://sourceware.org/ml/gdb-cvs/2013-05/msg00146.html
to F-19 build.

I see no testsuite results changes on 
cpu		: POWER7 (architected), altivec supported
revision	: 2.1 (pvr 003f 0201)

but that is probably due to
kernel-3.6.10-4.fc18.ppc64p7

and I do not have more recent ppc64 Fedora box available.
Comment 7 Jan Kratochvil 2013-05-28 12:20:08 EDT
(In reply to IBM Bug Proxy from comment #5)
> -FAIL: gdb.base/watchpoint-hw.exp: start (timeout)
> -FAIL: gdb.base/watchpoint-hw-hit-once.exp: continue
> -FAIL: gdb.base/watch-read.exp: set hardware read watchpoint on global
> variable
> -FAIL: gdb.base/watch_thread_num.exp: Watchpoint on shared variable

I had all these already PASSING on gdb-7.6-30.fc19 without this patch in configuration according to Comment 6 - I see it understandable now with old kernel.
Comment 8 IBM Bug Proxy 2013-05-28 13:12:09 EDT
------- Comment From emachado@br.ibm.com 2013-05-28 16:51 EDT-------
(In reply to comment #14)
> Pushed
> http://sourceware.org/ml/gdb-cvs/2013-05/msg00146.html
> to F-19 build.
>
> I see no testsuite results changes on
> cpu		: POWER7 (architected), altivec supported
> revision	: 2.1 (pvr 003f 0201)
>
> but that is probably due to
> kernel-3.6.10-4.fc18.ppc64p7

Exactly, this is a fix for gdb to use the new PowerPC specific ptrace interface available for Power servers in kernel v3.7 and newer.

Thanks Red Hat for your support.
Comment 9 IBM Bug Proxy 2013-06-13 15:22:02 EDT
------- Comment From emachado@br.ibm.com 2013-06-13 19:10 EDT-------
I retested gdb-7.6-32.fc19 and noticed the fix was included. Now the testsuite results look more reasonable:

ppc64 gdb with 32-bit inferior:

# of expected passes		22147
# of unexpected failures	77
# of unexpected successes	1
# of expected failures		55
# of known failures		56
# of unresolved testcases	2
# of untested testcases		55
# of unsupported tests		123

ppc64 gdb with 64-bit inferior:

# of expected passes		22069
# of unexpected failures	129
# of unexpected successes	1
# of expected failures		57
# of known failures		56
# of untested testcases		48
# of unresolved testcases	2
# of unsupported tests		123

Thanks Red Hat for your support.

Note You need to log in before you can comment on or make changes to this bug.