From d583f0f96691a3edcddef92a6066ee9f191610d1 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 25 Jul 2014 15:19:54 +0200 Subject: open_issues/performance: Configuration required for huge pages and CPU sets. --- open_issues/performance.mdwn | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'open_issues') diff --git a/open_issues/performance.mdwn b/open_issues/performance.mdwn index 64b245f2..ab08dd11 100644 --- a/open_issues/performance.mdwn +++ b/open_issues/performance.mdwn @@ -241,13 +241,26 @@ call|/glibc/fork]]'s case. i especially like how general it is -# Measurement +# Measure + +On some pages, we're filing information about performace measurements. + + +## kepler.SCHWINGE + +Debian GNU/Linux, x86. Running as a Xen domU, the system is not reserved +exclusively for measurement purposes, so it's a best-effort service. + + +## laplace.SCHWINGE + +Debian GNU/Hurd, x86. Running as a QEMU/KVM instance, the system is not +reserved exclusively for measurement purposes, so it's a best-effort service. -## coulomb ### [[!message-id "87wqghouoc.fsf@schwinge.name"]] -## IRC, freenode, #hurd, 2014-02-27 +### IRC, freenode, #hurd, 2014-02-27 tschwinge: about your concern with regard to performance measurements, you could run kvm with hugetlbfs and cpuset @@ -257,4 +270,10 @@ call|/glibc/fork]]'s case. hugetlbs reduces the overhead of page faults, and also implies locked memory while cpuset isolates the vm from global scheduling hugetlbfs* - Thanks, will look into that. + + +### 2014-07-25, tschwinge + +Support for [huge pages](https://wiki.debian.org/Hugepages) as well as [CPU +sets](https://code.google.com/p/cpuset/) requires special setup; not doing that +at the moment. -- cgit v1.2.3 From d957a9cc3f957229c15a91a5d9eccc622cad7d19 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 28 Jul 2014 08:08:12 +0200 Subject: open_issues/binutils: binutils-gdb: Re-run on the new laplace.SCHWINGE. --- open_issues/binutils.mdwn | 49 +++++++++++++++++++++++++++++++++++++---------- toolchain/logs | 2 +- 2 files changed, 40 insertions(+), 11 deletions(-) (limited to 'open_issues') diff --git a/open_issues/binutils.mdwn b/open_issues/binutils.mdwn index 306ba38a..c56926c6 100644 --- a/open_issues/binutils.mdwn +++ b/open_issues/binutils.mdwn @@ -173,7 +173,7 @@ c2853f3d99797a321c37948297441ca6021f719a (2014-02-14) plus [[!message-id "8761ofv62k.fsf@kepler.schwinge.homeip.net"]], [[!message-id "1391759958-972-2-git-send-email-yao@codesourcery.com"]], [[!message-id "1391759958-972-3-git-send-email-yao@codesourcery.com"]], run on -kepler.SCHWINGE and coulomb.SCHWINGE. +kepler.SCHWINGE and laplace.SCHWINGE. $ export LC_ALL=C $ ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/dash CC=gcc-4.8 CXX=g++-4.8 --disable-werror 2>&1 | tee log_build @@ -189,8 +189,8 @@ dereferencing type-punned pointer will break strict-aliasing rules* in the MIG-generated stub files; thus no `-Werror` until that is resolved ([[strict_aliasing]]). -This takes up around 1.3 GiB, and needs roughly 17 min on kepler.SCHWINGE and -79 min on coulomb.SCHWINGE. +This takes up around 1.3 GiB, and runs for [[20 min|performance#measure]] on +kepler.SCHWINGE and [[22 min|performance#measure]] on laplace.SCHWINGE. -Last reviewed up to Git commit c2853f3d99797a321c37948297441ca6021f719a -(2014-02-14). +Last reviewed up to Git commit a01cbb490b34eda832c0215b8447e6aef68b0278 +(2014-09-11). * Globally @@ -119,6 +119,35 @@ Last reviewed up to Git commit c2853f3d99797a321c37948297441ca6021f719a * In `gdb/gnu-nat.c:gnu_wait`, we don't implement `gdb/target/wait.h:TARGET_WNOHANG`. What is this needed for? + * *complete errno.h* + + diff --git toolchain/logs/binutils-gdb/kepler.SCHWINGE/log_build_ toolchain/logs/binutils-gdb/laplace.SCHWINGE/log_build_ + [...] + -checking for complete errno.h... yes + +checking for complete errno.h... no + +checking for EMULTIHOP value... yes + +checking for ENOLINK value... yes + +checking for EOVERFLOW value... yes + [...] + +rm -f errno.h-t errno.h && \ + +{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ + + -e 's|@''INCLUDE_NEXT''@|include_next|g' \ + + -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \ + + -e 's|@''PRAGMA_COLUMNS''@||g' \ + + -e 's|@''NEXT_ERRNO_H''@||g' \ + + -e 's|@''EMULTIHOP_HIDDEN''@|0|g' \ + + -e 's|@''EMULTIHOP_VALUE''@||g' \ + + -e 's|@''ENOLINK_HIDDEN''@|0|g' \ + + -e 's|@''ENOLINK_VALUE''@||g' \ + + -e 's|@''EOVERFLOW_HIDDEN''@|0|g' \ + + -e 's|@''EOVERFLOW_VALUE''@||g' \ + + < ../../../../W._C._Handy/gdb/gnulib/import/errno.in.h; \ + +} > errno.h-t && \ + +mv errno.h-t errno.h + + [[!taglink open_issue_glibc]]? + * `libdecnumber/` Should/can probably align to GNU/Linux. @@ -167,13 +196,8 @@ Last reviewed up to Git commit c2853f3d99797a321c37948297441ca6021f719a # Build Here's a log of a binutils-gdb build run; this is from Git commit -c2853f3d99797a321c37948297441ca6021f719a (2014-02-14) plus -[[!message-id "87vbxxhww4.fsf@kepler.schwinge.homeip.net"]], -[[!message-id "8738kyi30l.fsf@kepler.schwinge.homeip.net"]], -[[!message-id "8761ofv62k.fsf@kepler.schwinge.homeip.net"]], -[[!message-id "1391759958-972-2-git-send-email-yao@codesourcery.com"]], -[[!message-id "1391759958-972-3-git-send-email-yao@codesourcery.com"]], run on -kepler.SCHWINGE and laplace.SCHWINGE. +a01cbb490b34eda832c0215b8447e6aef68b0278 (2014-09-11), run on kepler.SCHWINGE +and laplace.SCHWINGE. $ export LC_ALL=C $ ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/dash CC=gcc-4.8 CXX=g++-4.8 --disable-werror 2>&1 | tee log_build @@ -308,7 +332,7 @@ kepler.SCHWINGE and [[2 min|performance#measure]] on laplace.SCHWINGE. $ make -k check 2>&1 | tee log_test [...] -This runs for [[25 min|performance#measure]] on kepler.SCHWINGE and [[60 +This runs for [[29 min|performance#measure]] on kepler.SCHWINGE and [[67 min|performance#measure]] on laplace.SCHWINGE. When running `make -k check 2>&1 | tee log_test`, at the end of the testsuite @@ -316,8 +340,8 @@ the `tee` process does not terminate if there are still stray leftover processes that [have their stdout/stderr open](http://sourceware.org/ml/gdb-patches/2012-10/msg00489.html). `kill`ing these (`SIGKILL` may be needed), makes the `tee` process terminate, too. On -GNU/Hurd, these generally are `gdb.multi/watchpoint-multi`, and an unknown -(`?`) GDB one ("57 PIDs before" `expect [...] gdb.cp`). +GNU/Hurd, these generally are `gdb.base/sigaltstack`, `gdb.base/siginfo`, +`gdb.base/watch-read`, `gdb.multi/watchpoint-multi`. ## Analysis @@ -388,6 +412,8 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting * Disabled + * `gdb.base/attach-wait-input.exp` + * `gdb.base/interrupt.exp` PASS: gdb.base/interrupt.exp: child process is alive @@ -562,6 +588,12 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting From `send signal TSTP` on, all FAIL running into timeouts. + * `gdb.base/watch-vfork.exp` + + * `gdb.base/watchpoint-hw-hit-once.exp` + + * `gdb.base/watchpoint-hw.exp` + * `gdb.python/py-inferior.exp` (mostly disabled) Running ../../../Ferry_Tagscherer/gdb/testsuite/gdb.python/py-inferior.exp ... @@ -606,6 +638,8 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting At this point, the system hangs; no new processes can be spawned, so perhaps an issue with the exec server. + * `gdb.threads/hand-call-in-threads.exp` + * `gdb.threads/manythreads.exp` [[!taglink open_issue_libpthread]]. Perhaps fails due to pthread @@ -615,6 +649,14 @@ like `gdb/testsuite/boards/cc-with-tweaks.exp` would help, or setting manythreads: ../libpthread/sysdeps/mach/pt-thread-halt.c:51: __pthread_thread_halt: Unexpected error: (ipc/rcv) invalid name. Killed + * `gdb.threads/signal-delivered-right-thread.exp` + + * `gdb.threads/step-over-trips-on-watchpoint.exp` + + * `gdb.threads/thread-find.exp` + + * `gdb.threads/watchpoint-fork.exp` + * Linux syscall usage, `` * `UNSUPPORTED: gdb.threads/ia64-sigill.exp: Couldn't compile ../../../master/gdb/testsuite/gdb.threads/ia64-sigill.c: unrecognized error` diff --git a/toolchain/logs b/toolchain/logs index a45cffd4..85758d1c 160000 --- a/toolchain/logs +++ b/toolchain/logs @@ -1 +1 @@ -Subproject commit a45cffd44759a294dd6b39fb8766831eed5eebce +Subproject commit 85758d1cedd4345ebe9ff1e3df5eab9513fd040e -- cgit v1.2.3 From 912131d8271bc6853b64f4b37c508bbbb5276e8e Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 16 Sep 2014 09:47:12 +0200 Subject: open_issues/libpthread_assertion_thread_prevp: Another one. --- open_issues/libpthread_assertion_thread_prevp.mdwn | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'open_issues') diff --git a/open_issues/libpthread_assertion_thread_prevp.mdwn b/open_issues/libpthread_assertion_thread_prevp.mdwn index f93f07d6..85ac58d4 100644 --- a/open_issues/libpthread_assertion_thread_prevp.mdwn +++ b/open_issues/libpthread_assertion_thread_prevp.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2011, 2013 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2011, 2013, 2014 Free Software Foundation, +Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -107,3 +108,13 @@ failed"]] so i guess something is wrong with thread recycling but i wanted to completely rewrite that part with the new kernel call i asked bddebian to work on :) + + +## 2014-09-15 + +During a run of the GDB testsuite, [[I|tschwinge]] hit `C-c`, and then saw: + + [...] + Running ../../../W._C._Handy/gdb/testsuite/gdb.base/shreloc.exp ... + ^Cexpect: ./pthread/pt-internal.h:131: __pthread_enqueue: Assertion `thread->prevp == 0' failed. + Aborted -- cgit v1.2.3 From 941044997b795869b2a2aed255446d115d45d78e Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 16 Sep 2014 12:45:04 +0200 Subject: open_issues/binutils: binutils-gdb: Add hardware watchpoint support for x86 GNU Hurd. --- open_issues/binutils.mdwn | 101 ++++++++++++++++++++++++++++++++++++---------- toolchain/logs | 2 +- 2 files changed, 80 insertions(+), 23 deletions(-) (limited to 'open_issues') diff --git a/open_issues/binutils.mdwn b/open_issues/binutils.mdwn index 7e9cb831..7b7005e7 100644 --- a/open_issues/binutils.mdwn +++ b/open_issues/binutils.mdwn @@ -148,6 +148,50 @@ Last reviewed up to Git commit a01cbb490b34eda832c0215b8447e6aef68b0278 [[!taglink open_issue_glibc]]? + * Watchpoints + + * Unresolved issues w.r.t. watchpoint usage in context of multiple + threads, and `fork`/`vfork`. The Linux port has a bunch of + special-case code. + + * We don't have anything corresponding to Linux' + `linux_nat_set_forget_process`, `x86_forget_process`, or Linux' + whole `linux-fork.c` machinery. Likewise for + `linux_nat_set_prepare_to_resume`, `x86_linux_prepare_to_resume`, + which the Linux port uses to actually set the debug registers. + Likewise for `linux_nat_set_new_thread`, `x86_linux_new_thread`, + and `linux_nat_set_new_fork`, `x86_linux_new_fork`. + + * Look into `*_cleanup_dregs`, `*_post_startup_inferior`. Commits + 53a5351d907ef4eacd463a48a86d35b2b70b9f60, + 52b9821179d84d61852ac2ae2bd16fbb56ffe277, + 9742079a314711c13d269e9e583b7b82dc42f1a6, + e24d4c64ff2e89327ba84fdcc77cc557791eb3cd, + fa4ba8da6c28c972dd1b6b9971e29b51aabaafcc, + 9b4f1ba7ede77d776fabb9642cbeef5091e38e1d, + 4de4c07c6b48659ae212352236be9413c853a23c, + 4056d25828218621e7276a3a0c0567cac892ae84, + 10d6c8cd3f92fadf295eb3c91d550626f6080f79, + 4105de343e714e0096723905ada442f1524776a6, + c5af0dad33ff96dbb404710539f01b011cff0453, + 9bb9e8ade770027f5cced2856574e2d317b15254, + 1ced966e3458bf3db742913f4d0a55549824e298, + 4403d8e9b35649c5b24f65c0ec0decc3839e1164, + 26cb8b7c1a23586ea311d7480f882e2883f6f1f5. + + * [[!message-id "201112051601.59664.pedro@codesourcery.com"]]. + + * `I386_WATCHPOINTS_IN_TARGET_VECTOR` + + * `prepare_to_resume` + + * `new_fork` + + * `forget_process` + + * `dr_status_mirror` is not really used anywhere. Get rid of it; or, + update it everytime the real value is read from the kernel? + * `libdecnumber/` Should/can probably align to GNU/Linux. @@ -196,8 +240,10 @@ Last reviewed up to Git commit a01cbb490b34eda832c0215b8447e6aef68b0278 # Build Here's a log of a binutils-gdb build run; this is from Git commit -a01cbb490b34eda832c0215b8447e6aef68b0278 (2014-09-11), run on kepler.SCHWINGE -and laplace.SCHWINGE. +a01cbb490b34eda832c0215b8447e6aef68b0278 (2014-09-11) plus [[!message-id +"20140912182911.GF3202@type.youpi.perso.aquilenet.fr"]], run on kepler.SCHWINGE +and laplace.SCHWINGE (with [[!message-id "87iokondoc.fsf@schwinge.name"]] +applied). $ export LC_ALL=C $ ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/dash CC=gcc-4.8 CXX=g++-4.8 --disable-werror 2>&1 | tee log_build @@ -214,7 +260,7 @@ MIG-generated stub files; thus no `-Werror` until that is resolved ([[strict_aliasing]]). This takes up around 1.3 GiB, and runs for [[20 min|performance#measure]] on -kepler.SCHWINGE and [[24 min|performance#measure]] on laplace.SCHWINGE. +kepler.SCHWINGE and [[22 min|performance#measure]] on laplace.SCHWINGE. -Last reviewed up to Git commit a01cbb490b34eda832c0215b8447e6aef68b0278 -(2014-09-11). +Last reviewed up to Git commit 05db5edd7923711a20c6225ea8e15f36e819d140 +(2014-09-16). * Globally @@ -240,8 +240,7 @@ Last reviewed up to Git commit a01cbb490b34eda832c0215b8447e6aef68b0278 # Build Here's a log of a binutils-gdb build run; this is from Git commit -a01cbb490b34eda832c0215b8447e6aef68b0278 (2014-09-11) plus [[!message-id -"20140912182911.GF3202@type.youpi.perso.aquilenet.fr"]], run on kepler.SCHWINGE +05db5edd7923711a20c6225ea8e15f36e819d140 (2014-09-16), run on kepler.SCHWINGE and laplace.SCHWINGE (with [[!message-id "87iokondoc.fsf@schwinge.name"]] applied). @@ -259,8 +258,8 @@ dereferencing type-punned pointer will break strict-aliasing rules* in the MIG-generated stub files; thus no `-Werror` until that is resolved ([[strict_aliasing]]). -This takes up around 1.3 GiB, and runs for [[20 min|performance#measure]] on -kepler.SCHWINGE and [[22 min|performance#measure]] on laplace.SCHWINGE. +This takes up around 1.3 GiB, and runs for [[21 min|performance#measure]] on +kepler.SCHWINGE and [[24 min|performance#measure]] on laplace.SCHWINGE.