summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2012-11-25 10:04:14 +0100
committerThomas Schwinge <thomas@codesourcery.com>2012-11-25 10:04:14 +0100
commit2bf43f4d28c19f346d4261630dadcca15f1389df (patch)
treee0f5029c2714db546bd6bff32a149f1bc0235404
parent61ce0487a68560c58367d3a82f30ab00345cd72f (diff)
open_issues/gcc: 3336556d2cb32f46322922a83015f760cfb79d8f (2012-11-13; 6b7a0b5b7dfa4071c95418040cc0ee1528ba7915 (2012-08-05))
-rw-r--r--hurd/translator/exec.mdwn4
-rw-r--r--open_issues/exec_memory_leaks.mdwn24
-rw-r--r--open_issues/fifo_thread_explosion.mdwn20
-rw-r--r--open_issues/gcc.mdwn161
m---------toolchain/logs10
5 files changed, 193 insertions, 26 deletions
diff --git a/hurd/translator/exec.mdwn b/hurd/translator/exec.mdwn
index d5b6bfbc..54abba7e 100644
--- a/hurd/translator/exec.mdwn
+++ b/hurd/translator/exec.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2009, 2012 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
@@ -10,3 +10,5 @@ License|/fdl]]."]]"""]]
The *exec* server, listening on `/servers/exec`, is responsible for
preparing the execution of processes.
+
+ * [[open_issues/exec_memory_leaks]].
diff --git a/open_issues/exec_memory_leaks.mdwn b/open_issues/exec_memory_leaks.mdwn
new file mode 100644
index 00000000..1a73ce9a
--- /dev/null
+++ b/open_issues/exec_memory_leaks.mdwn
@@ -0,0 +1,24 @@
+[[!meta copyright="Copyright © 2012 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
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_hurd]]
+
+There are is some memory leak in [[`exec`|hurd/translator/exec]]. After twelve
+hours worth of `fork/exec` ([[GCC]]'s `check-c` part of the testsuite), we got:
+
+ PID UID PPID PGrp Sess TH Vmem RSS %CPU User System Args
+ 4 0 3 1 1 10 392M 262M 0.0 2:18.29 2hrs /hurd/exec
+
+The *RSS* seems a tad high. Also the system part of CPU time consumption is
+quite noticeable. In comparison:
+
+ 0 0 1 1 1 19 131M 1.14M 0.0 3:30.25 9:17.79 /hurd/proc
+ 3 0 1 1 1 224 405M 12.6M 0.2 42:20.25 67min ext2fs --readonly --multiboot-command-line=root=device:hd0s6 --host-priv-port=1 --device-master-port=2 --exec-server-task=3 -T typed device:hd0s6
+ 276 0 3 1 1 344 442M 28.2M 0.6 48:09.36 91min /hurd/ext2fs /dev/hd2s5
diff --git a/open_issues/fifo_thread_explosion.mdwn b/open_issues/fifo_thread_explosion.mdwn
new file mode 100644
index 00000000..08f682f2
--- /dev/null
+++ b/open_issues/fifo_thread_explosion.mdwn
@@ -0,0 +1,20 @@
+[[!meta copyright="Copyright © 2012 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
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_hurd]]
+
+As reported in [[!message-id "87sj80yb3e.fsf@kepler.schwinge.homeip.net"]],
+after a [[GCC]] build (native, so three stages bootstrap), we got:
+
+ PID UID PPID PGrp Sess TH Vmem RSS %CPU User System Args
+ 449 1000 3 1 1 10118 782M 198M 0.0 0:40.78 2:26.65 /hurd/fifo
+
+The other processes, in particular two instances of ext2fs and one of [[exec]],
+looked reasonable.
diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn
index d9940716..97dcb159 100644
--- a/open_issues/gcc.mdwn
+++ b/open_issues/gcc.mdwn
@@ -31,14 +31,14 @@ example. Especially all the compiler magic is all the same.
<!--
git checkout reviewed
-git log --reverse --pretty=fuller --stat=$COLUMNS,$COLUMNS -p -C --cc ..upstream/trunk
+git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --cc ..upstream/trunk
-i
-/^commit |^---$|hurd|linux|nptl|glibc
+/^commit |^Merge:|^---$|hurd|linux|nacl|nptl|glibc|gs:
-->
-Last reviewed up to the [[Git mirror's dfed30bca14de84e0446cc02f5a27407dbfdc3e1
-(2012-06-11) sources|source_repositories/gcc]].
+Last reviewed up to the [[Git mirror's 6b7a0b5b7dfa4071c95418040cc0ee1528ba7915
+(2012-08-05) sources|source_repositories/gcc]].
<http://gcc.gnu.org/install/configure.html> has documentation for the
`configure` switches.
@@ -89,9 +89,9 @@ Last reviewed up to the [[Git mirror's dfed30bca14de84e0446cc02f5a27407dbfdc3e1
* `--enable-languages=[...]`
- * GNAT is not yet ported / bootstrapped?
+ * [[Ada (GNAT)|GNAT]] support is work in progress.
- * The Google Go's libgo (introduced in
+ * The [[Google Go's libgo|gccgo]] (introduced in
e440a3286bc89368b8d3a8fd6accd47191790bf2 (2010-12-03)) needs
OS configuration / support.
@@ -136,9 +136,13 @@ Last reviewed up to the [[Git mirror's dfed30bca14de84e0446cc02f5a27407dbfdc3e1
* [-fstack-protector shouldn't use TLS in freestanding
mode](http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838)
+ * See also commit bf1c0af128f33bd342636c4afeaa8f3a8a7cf8ca (reverted in
+ commit a204f0622242865ffea889bd698bc7c7bd236bd1), commit
+ 05c1aa95e6c37b3b281d749c76c673392941a031.
+
* Check before/after Joseph changes. (Should be fine.)
- * 34618b3190c110b8926cc2b1db4b4eac95451995
+ * 34618b3190c110b8926cc2b1db4b4eac95451995 »config-list.mk«
What's this used for? (Check ML.) Ask to include i686-pc-gnu (once it is
buildable out of the box)? See also
@@ -194,6 +198,17 @@ Last reviewed up to the [[Git mirror's dfed30bca14de84e0446cc02f5a27407dbfdc3e1
to find out why some stuff wasn't compiling even after kfreebsd
porting patches adding preprocessors checks for __GLIBC__
+ GNU/kFreeBSD and GNU/kNetBSD: commit
+ 6396cc37141180db4d2c8f73cab4f5977d8a1e19 (2004-06-24, r83577),
+ GNU/kOpenSolaris: commit 3bef40126fb1633018fce47828df0fa9f65f110c
+ (2009-01-29, r143768). See also GDB commits
+ fda1b24c62843f81d31de2af57b1ed9c55f1e348 and
+ 1acb4f4ff73d20850a7524fc939d2651be75f47b, and binutils commits
+ e3081899be7570eb90ccfd5d767950d3a62871ee,
+ 127c4d4a4fe65bd17ea64db1be7f3c93d393afcb,
+ 47dbf5b634b955c2db1221715d15751e1281546a, and
+ ad2be7e8b846f4cd67fa1e032f98d5dc1cdb6b8d.
+
IRC, freenode, #hurd, 2012-05-25:
<gnu_srs> Hi, looks like __GLIBC__ is not defined by default for GNU?
@@ -248,6 +263,8 @@ Last reviewed up to the [[Git mirror's dfed30bca14de84e0446cc02f5a27407dbfdc3e1
<pinotree> what should be done first is, however, find out why that
define has been added to gcc
+ [[!message-id "201211061305.02565.pino@debian.org"]].
+
* [low] Does `-mcpu=native` etc. work? (For example,
2ae1f0cc764e998bfc684d662aba0497e8723e52.)
@@ -278,13 +295,15 @@ Last reviewed up to the [[Git mirror's dfed30bca14de84e0446cc02f5a27407dbfdc3e1
C.f. [[!message-id "x57jobtqx89w.fsf@frobland.mtv.corp.google.com"]],
[[!message-id "x57jd359fkx3.fsf@frobland.mtv.corp.google.com"]] as well as
[[!debbug 629866]]/[[!message-id
- "20110609002620.GA16719@const.famille.thibault.fr"]].
+ "20110609002620.GA16719@const.famille.thibault.fr"]]. commit
+ 026e608ecebcb2a6193971006a85276307d79b00.
# Build
Here's a log of a GCC build run; this is from our [[Git repository's
-2e2db3f92b534460c68c2f9ae64455884424beb6 (2012-06-15; 2012-06-06)
+3336556d2cb32f46322922a83015f760cfb79d8f (2012-11-13;
+6b7a0b5b7dfa4071c95418040cc0ee1528ba7915 (2012-08-05))
sources|source_repositories/gcc]], run on kepler.SCHWINGE and coulomb.SCHWINGE.
$ export LC_ALL=C
@@ -297,12 +316,12 @@ sources|source_repositories/gcc]], run on kepler.SCHWINGE and coulomb.SCHWINGE.
Different hosts may default to different shells and compiler versions; thus
harmonized.
-This takes up around 3.1 GiB, and needs roughly 3.0 h on kepler.SCHWINGE and
-12.75 h on coulomb.SCHWINGE.
+This takes up around 3.1 GiB, and needs roughly 3.25 h on kepler.SCHWINGE and
+14.5 h on coulomb.SCHWINGE.
<!--
- $ (make && touch .go-install) 2>&1 | tee log_build_ && test -f .go-install && (make install && touch .go-check) 2>&1 | tee log_install && test -f .go-check && make -k RUNTESTFLAGS=-v check 2>&1 | tee log_check
+ $ (make && touch .go-install) 2>&1 | tee log_build_ && test -f .go-install && (make install && touch .go-test) 2>&1 | tee log_install && test -f .go-test && make -k RUNTESTFLAGS=-v check 2>&1 | tee log_test
-->
@@ -482,6 +501,15 @@ This takes up around 3.1 GiB, and needs roughly 3.0 h on kepler.SCHWINGE and
* `libatomic` on GNU/Linux compiles several more files than on GNU/Hurd. Is
that correct? Probably futex support.
+ * 2e2db3f92b534460c68c2f9ae64455884424beb6..3336556d2cb32f46322922a83015f760cfb79d8f
+
+ Both GNU/Linux and GNU/Hurd:
+
+ -checking assembler for rep and lock prefix... yes
+ +checking assembler for rep and lock prefix... no
+
+ TODO.
+
# Install
@@ -514,24 +542,117 @@ min on coulomb.SCHWINGE.
Testing on GNU/Hurd is blocked on
[[fork_mach_port_mod_refs_ekern_urefs_owerflow]].
-TODO. Can use parallel testing, see [[!message-id
-"20110331070322.GI11563@sunsite.ms.mff.cuni.cz"]].
+TODO. On GNU/Hurd, it is advisable to reboot after having built and installed
+GCC, before running the testsuite, as otherwise there seems to be a tendency
+that the system crashes during the `gcc.c-torture/compile/limits-structnest.c`
+tests, which are rather memory hungry, see [[!message-id
+"87bol6aixd.fsf@schwinge.name"]]. Likewise, it also seems advisable to add
+further reboots in between, that is, separate `make check`'s `check-host` into
+several separate runs, and then one for `check-target` (see
+`[build]/Makefile:do-check`, `[build]/gcc/Makefile:CHECK_TARGETS`), as
+otherwise there seems to be a tendency for the system crashing sooner or later.
+(Running `check-host` accumulates to something like 44 hours worth of
+forking/execing of GCC and testcases.) On GNU/Linux we run it in one go, so
+that we'll catch any fundamental rearrangements of/additions to the testsuites.
+
+kepler.SCHWINGE:
+
+ $ make -k RUNTESTFLAGS=-v check 2>&1 | tee log_test
+ [...]
+
+coulomb.SCHWINGE:
+
+ $ grep ^CHECK_TARGETS gcc/Makefile
+ CHECK_TARGETS = check-ada check-c check-c++ check-fortran check-java check-lto check-objc
- $ make -k RUNTESTFLAGS=-v check 2>&1 | tee log_check
+ $ export LC_ALL=C
+ $ t=check-ada/t=check-c/t=check-c++/t=check-fortran/t=check-java/t=check-lto/t=check-objc
+ $ make -k -C gcc RUNTESTFLAGS=-v "$t" 2>&1 | tee log_test_gcc_"$t"
+ [...]
+ $ make -k RUNTESTFLAGS=-v check-target 2>&1 | tee log_test_check-target
[...]
-This needs roughly 6.5 h on kepler.SCHWINGE and 50.25 h on coulomb.SCHWINGE.
+This needs roughly 6.75 h on kepler.SCHWINGE and 3.75 h (`gcc/check-ada`) +
+12.5 h (`gcc/check-c`) + 4.5 h (`gcc/check-c++`) + 5.25 h (`gcc/check-fortran`)
++ 0 h (`gcc/check-java`) + 0 h (`gcc/check-lto`) + 0.5 h (`gcc/check-objc`) +
+8.5 h (`check-target`) = 35 h on coulomb.SCHWINGE.
## Analysis
$ toolchain/logs/process gcc test
-TODO.
+ * PTYs
+
+ Occasionally tests FAIL due to:
+
+ spawn -open -1 failed, 1 5, The system has no more ptys. Ask your system administrator to create more.
+
+ TODO.
+
+ * TODO
+
+
+## Enhancements
+
+
+### Parallel Testing
+
+[[!message-id "20110331070322.GI11563@sunsite.ms.mff.cuni.cz"]].
+
+
+### Distributed Testing
+
+
+#### IRC, OFTC, #gcc, 2012-05-31
+ <dnovillo> jsm28: in your mentor testing, you have the source and build
+ tree available for make check? or it's a pure installed-tree test?
+ <jsm28> dnovillo: Source tree, install tree, no build tree.
+ <dnovillo> jsm28: so, you run make check on top of the source tree or copy
+ the */testsuite trees to a testing area?
+ <jsm28> Create a site.exp and do runtest in a temporary directory. runtest
+ is pointed to the source tree to find sources.
+ <jsm28> For cross testing for GNU/Linux targets, the temporary directory is
+ mounted at the same path on host and target.
+ <dnovillo> jsm28: thanks. i guess i'll have to find the slice of the
+ source tree i need to copy.
+ <dnovillo> jsm28: for libstdc++ do you write a different site.exp?
+ <dnovillo> i noticed that it generates a different site,exp there.
+ <jsm28> The site.exp is mostly the same for all testsuites (so includes
+ settings that only some testsuites use).
+ <dnovillo> ok, thanks.
+ <dnovillo> and when you say "pointed to the source tree" you mean "set
+ srcdir /path/to/top/of/gcc" ?
+ <dnovillo> (in site.exp)
+ <jsm28> The GDB testsuite requires that you run the GDB testsuite's
+ configure script in the temporary directory where you will run runtest.
+ I don't think any GCC testsuites we use have requirements like that.
+ <jsm28> dnovillo: --srcdir option to runtest.
+ <dnovillo> ah, yes.
+ <jsm28> (and --tool, --target_board etc.)
+ <dnovillo> right
+ <dnovillo> since i'm distributing the tests. i want each node to only do a
+ bunch of files. this means that i either use 'tool.exp=file-pattern' or
+ simply copy the subset of files i want tool.exp to find.
+ <dnovillo> i chose the second approach, but that breaks in a handful of
+ cases that need files from other sub-directories.
+ <dnovillo> like g++.dg gcc.dg using stuff from c-c++-common.
+ <dnovillo> for libstdc++, the possibilities for splitting are enormous as
+ it has many directories.
+ <dnovillo> but i'm not setting it right. runtest runs without even trying
+ to test anything.
+ <dnovillo> i'm not having it pick up the right driver.
+ <jsm28> Probably all .exp files should be copied to anywhere running
+ testsuites, since some read .exp files from other directories.
+ <dnovillo> jsm28: that could be it too. it's irritating that libstdc++
+ does not even error out. runtest just does nothing and returns 0.
-# Specific Languages
+##### IRC, OFTC, #gcc, 2012-06-06
- * [[GNAT]]
+ <dnovillo> any libstdc++ maintainer around?
+ <dnovillo> or, does anyone know when the testsuite/data files are copied
+ into the running testsuite/ dir?
+ <dnovillo> seems to be done in advance by make.
- * [[gccgo]]
+##### [[!message-id "4FC7791E.6040407@gmail.com"]]
diff --git a/toolchain/logs b/toolchain/logs
-Subproject 1084b70a4926752fc06e78e79e1b58f815b4dd2
+Subproject f168fcad9d41a6ac88ce24da8238e9c417a9f11