diff options
Diffstat (limited to 'open_issues')
27 files changed, 330 insertions, 153 deletions
diff --git a/open_issues/address_space_memory_mapping_entries.mdwn b/open_issues/address_space_memory_mapping_entries.mdwn index caf447dd..8ed69345 100644 --- a/open_issues/address_space_memory_mapping_entries.mdwn +++ b/open_issues/address_space_memory_mapping_entries.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2011 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2011, 2013 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 @@ -17,3 +17,5 @@ IRC, freenode, #hurd, 2011-05-07 linked list <braunr> a bare linked list <braunr> which makes faults and page cache lookups even slower + +A red-black tree was added to VM maps to speed up lookups. diff --git a/open_issues/alarm_setitimer.mdwn b/open_issues/alarm_setitimer.mdwn index 5999808c..a1c8a7d3 100644 --- a/open_issues/alarm_setitimer.mdwn +++ b/open_issues/alarm_setitimer.mdwn @@ -22,6 +22,7 @@ for a signal, while on GNU/Hurd it gets a new alarm and exits. [[alrm.c]] +This issue was recently fixed (around January 2013). # IRC, freenode, #hurd, 2012-07-29 diff --git a/open_issues/anatomy_of_a_hurd_system.mdwn b/open_issues/anatomy_of_a_hurd_system.mdwn index 8119cdd5..677e4625 100644 --- a/open_issues/anatomy_of_a_hurd_system.mdwn +++ b/open_issues/anatomy_of_a_hurd_system.mdwn @@ -174,6 +174,9 @@ Need more stuff like that. <abique> is it M:N ? <youpi> libthreads, actually <youpi> yes + +Actually, the Hurd has never used an M:N model. Both libthreads (cthreads) and libpthread use an 1:1 model. + <abique> nice <abique> is the task scheduler in the kernel ? <youpi> the kernel thread scheduler, yes, of course diff --git a/open_issues/benefits_of_a_native_hurd_implementation.mdwn b/open_issues/benefits_of_a_native_hurd_implementation.mdwn index afdcfb73..dfd41837 100644 --- a/open_issues/benefits_of_a_native_hurd_implementation.mdwn +++ b/open_issues/benefits_of_a_native_hurd_implementation.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 2011, 2013 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 @@ -120,6 +121,12 @@ IRC, #hurd, 2010-12-28 [...] <braunr> kilobug: right, a monolithick kernel is less folt-tolerant than a well designed/implemented microkernel based os + +It turns out that it is perfectly possible to isolate services running in the +same address space, as it was done in projects such as Singularity, the idea +being that the code is verified through static analysis when installed (but +this requires a language other than C). + <kilobug> braunr: well, the Hurd is buggy nowadays, but things like an ext2fs translator doing a segfault and being restarted is a fault-tolerance that would be almost impossible to have in Linux diff --git a/open_issues/clock_gettime.mdwn b/open_issues/clock_gettime.mdwn index b2fbf3e0..5ba6b418 100644 --- a/open_issues/clock_gettime.mdwn +++ b/open_issues/clock_gettime.mdwn @@ -14,7 +14,9 @@ License|/fdl]]."]]"""]] Missing `clock_gettime(CLOCK_MONOTONIC)` (e.g. for iceweasel) -It could be a mere matter of extending the mappable clock: add it to +It could be a mere matter of extending the +[[mapped-time_interface|master/microkernel/mach/gnumach/interface/device/time]]: +add it to `mapped_time_value_t` in gnumach, handle it in `gnumach/kern/mach_clock.c`, and make `clock_gettime` use it. @@ -193,3 +195,6 @@ In context of [[select]]. that blocked on something or just waiting to be continued? <pinotree> blocked on me needing to learn more the proper way to do "atomic" update of the struct with time :) + + +# Candidate for [[vDSO]] code? diff --git a/open_issues/dde.mdwn b/open_issues/dde.mdwn index b25e53d7..f0f7cae0 100644 --- a/open_issues/dde.mdwn +++ b/open_issues/dde.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010, 2011, 2012 Free Software Foundation, +[[!meta copyright="Copyright © 2010, 2011, 2012, 2013 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -393,6 +393,9 @@ After the microkernel devroom at [[community/meetings/FOSDEM_2013]]. we'd have to update 100times per second <youpi> so ZhengDa preferred to make jiffies a macro which calls a function which reads the mapped time + +[[Mapped-time_interface|master/microkernel/mach/gnumach/interface/device/time]]. + <youpi> however, that break any use of the work "jiffies", e.g. structure members & such <youpi> actually it's not only after headers that the #include has to be diff --git a/open_issues/debugging.mdwn b/open_issues/debugging.mdwn index b2d49b26..107acbf6 100644 --- a/open_issues/debugging.mdwn +++ b/open_issues/debugging.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 2011, 2013 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 @@ -23,6 +24,8 @@ We have debugging infrastructure. For example: # To Do + * [[glibc]]'s sotruss + * [[ltrace]] * [[latrace]] diff --git a/open_issues/file_system_exerciser.mdwn b/open_issues/file_system_exerciser.mdwn index c51863b9..f8cca6a1 100644 --- a/open_issues/file_system_exerciser.mdwn +++ b/open_issues/file_system_exerciser.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2011, 2012 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2011, 2012, 2013 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,20 +11,21 @@ License|/fdl]]."]]"""]] [[!tag open_issue_hurd]] -Test our file system implementations with the File System Exerciser. - - * <http://codemonkey.org.uk/projects/fsx/> +Test our file system implementations with the [File System +Exerciser](http://codemonkey.org.uk/projects/fsx/). See [[tmpfs +discussion|hurd/translator/tmpfs/discussion]], and on [[Maksym_Planeta]]. # Alternatives - ## fs_mark - ### IRC, freenode, #hurd, 2012-04-30 <pinotree> mcsim: http://sourceforge.net/projects/fsmark/ <pinotree> mcsim: just saw it in debian's NEW queue and from the description it seemed like something it could be helpful for you <pinotree> (and in general to test fs'es) + + +## [[VFAT_Test_Suite]] diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn index 66fad780..f86b5345 100644 --- a/open_issues/gcc.mdwn +++ b/open_issues/gcc.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012 Free Software -Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013 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 @@ -37,8 +37,8 @@ git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --> -Last reviewed up to the [[Git mirror's be3860ba8df48cca3253da4f02fd2d42d856ce80 -(2012-12-10) sources|source_repositories/gcc]]. +Last reviewed up to the [[Git mirror's 71cfadefb994de9249449fb7e71be012b6264a3f +(2013-02-17) sources|source_repositories/gcc]]. <http://gcc.gnu.org/install/configure.html> has documentation for the `configure` switches. @@ -330,8 +330,8 @@ Last reviewed up to the [[Git mirror's be3860ba8df48cca3253da4f02fd2d42d856ce80 # Build Here's a log of a GCC build run; this is from our [[Git repository's -a1d48e100791bc67ff355e0931a604e767c827b7 (2012-12-10; -be3860ba8df48cca3253da4f02fd2d42d856ce80 (2012-12-10)) +06a4535f69cf9613943fd12f97fe94e471dedcce (2013-02-18; +71cfadefb994de9249449fb7e71be012b6264a3f (2013-02-17)) sources|source_repositories/gcc]], run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C @@ -344,12 +344,14 @@ sources|source_repositories/gcc]], run on kepler.SCHWINGE and coulomb.SCHWINGE. Different hosts may default to different shells and compiler versions; thus harmonized. +We're stuck with GCC 4.6 until there are Debian *gnat-4.7* packages avaible. + This takes up around 3.5 GiB, and needs roughly 3.25 h on kepler.SCHWINGE and 14.25 h on coulomb.SCHWINGE. <!-- - $ (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 + $ (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 check 2>&1 | tee log_test --> @@ -565,6 +567,7 @@ coulomb.SCHWINGE: $ export LC_ALL=C + [reboot] $ make -k check-fixincludes 2>&1 | tee log_test_1_check-fixincludes [...] $ make -k -C gcc check-ada 2>&1 | tee log_test_2_gcc_check-ada @@ -584,10 +587,10 @@ coulomb.SCHWINGE: $ make -k check-target 2>&1 | tee log_test_4_check-target [...] -This needs roughly 7 h on kepler.SCHWINGE and 4 h (`check-fixincludes`, -`gcc/check-ada`) + 12.5 h (`gcc/check-c`) + 4.25 h (`gcc/check-c++`) + 5.5 h +This needs roughly 7 h on kepler.SCHWINGE and 3.5 h (`check-fixincludes`, +`gcc/check-ada`) + 13 h (`gcc/check-c`) + 4.25 h (`gcc/check-c++`) + 5.75 h (`gcc/check-fortran`, `gcc/check-java`, `gcc/check-lto`, `gcc/check-objc`) + -9 h (`check-intl`, [...], `check-lto-plugin`, `check-target`) = 35.25 h on +9.25 h (`check-intl`, [...], `check-lto-plugin`, `check-target`) = 35.75 h on coulomb.SCHWINGE. @@ -626,6 +629,9 @@ coulomb.SCHWINGE. They used to PASS. + * What is `gcc/testsuite/gcc.test-framework/test-framework.exp` and should we + define `CHECK_TEST_FRAMEWORK` to run these tests? + * TODO diff --git a/open_issues/gdb.mdwn b/open_issues/gdb.mdwn index c4433438..6b9cd135 100644 --- a/open_issues/gdb.mdwn +++ b/open_issues/gdb.mdwn @@ -33,8 +33,8 @@ git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --> -Last reviewed up to the [[Git mirror's 00e1c4298d2b6fe040a9a970e98349602b12ddbf -(2013-02-06) sources|source_repositories/gdb]]. +Last reviewed up to the [[Git mirror's 6b25dae901ddedb3f330803542d3eac73cdcae4b +(2013-03-13) sources|source_repositories/gdb]]. * Globally @@ -71,7 +71,7 @@ Last reviewed up to the [[Git mirror's 00e1c4298d2b6fe040a9a970e98349602b12ddbf Here's a log of a GDB build run; this is from our [[Git repository|source_repositories/gdb]]'s `tschwinge/Ferry_Tagscherer` branch, -commit 00e1c4298d2b6fe040a9a970e98349602b12ddbf (2013-02-06), run on +commit 6b25dae901ddedb3f330803542d3eac73cdcae4b (2013-03-13), run on kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C @@ -87,7 +87,7 @@ There are several occurences of *error: 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 210 MiB and needs roughly 7 min on kepler.SCHWINGE and 23 +This takes up around 210 MiB and needs roughly 9 min on kepler.SCHWINGE and 25 min on coulomb.SCHWINGE. <!-- @@ -107,7 +107,7 @@ formats and more emulation vectors. * Why do we specify `-D_GNU_SOURCE`, and GNU/Linux doesn't? - * GNU/Linux: `gdb/symfile-mem.c` for vDSO. + * GNU/Linux: `gdb/symfile-mem.c` for [[vDSO]]. * GNU/Linux: `gdb/i386-nat.c` for hardware breakpoints, etc. -- we should probably use that, too. Related to Samuel's Hurd GDB patch? @@ -143,7 +143,7 @@ formats and more emulation vectors. gnu-nat.c:2864:5: warning: format '%d' expects argument of type 'int', but argument 2 has type 'mach_port_t' [-Wformat] - * fe19822761b4635f392875a186e48af446b40f41..7a63e9515491f21eaf07301df87d389def20e317): + * fe19822761b4635f392875a186e48af446b40f41..7a63e9515491f21eaf07301df87d389def20e317: `-Wmissing-prototypes` @@ -185,6 +185,15 @@ formats and more emulation vectors. * Why does GNU/Linux have an additional `-ldl -rdynamic` when linking `gdb`? + * 00e1c4298d2b6fe040a9a970e98349602b12ddbf..6b25dae901ddedb3f330803542d3eac73cdcae4b: + + +../../Ferry_Tagscherer/gdb/gnu-nat.c: In function 'info_port_rights': + +../../Ferry_Tagscherer/gdb/gnu-nat.c:3058:11: warning: passing argument 1 of 'parse_to_comma_and_eval' from incompatible pointer type [enabled by default] + +In file included from ../../Ferry_Tagscherer/gdb/breakpoint.h:23:0, + + from ../../Ferry_Tagscherer/gdb/inferior.h:37, + + from ../../Ferry_Tagscherer/gdb/gnu-nat.c:56: + +../../Ferry_Tagscherer/gdb/value.h:729:22: note: expected 'const char **' but argument is of type 'char **' + # Install @@ -207,7 +216,7 @@ min on coulomb.SCHWINGE. $ make -k check 2>&1 | tee log_test [...] -This needs roughly 14 min on kepler.SCHWINGE and 120 min on coulomb.SCHWINGE. +This needs roughly 14 min on kepler.SCHWINGE and 70 min on coulomb.SCHWINGE. When running `make -k check 2>&1 | tee log_test`, at the end of the testsuite the `tee` process does not terminate if there are still stray leftover diff --git a/open_issues/glibc.mdwn b/open_issues/glibc.mdwn index 325801bf..0df40ae5 100644 --- a/open_issues/glibc.mdwn +++ b/open_issues/glibc.mdwn @@ -1028,7 +1028,8 @@ Last reviewed up to the [[Git mirror's d3bd58cf0a027016544949ffd27300ac5fb01bb8 adcd5c15d2a37794d021104160b425ff61f88219 -- `Always fill output buffer in XPG strerror function`. Change needed for `sysdeps/mach/xpg-strerror.c`? - * a91710475294c66d0005bdaae0919d36ef8ce3d2 -- sotruss. Does it work? + * a91710475294c66d0005bdaae0919d36ef8ce3d2 -- sotruss ([[debugging]], + [[profiling]]). Does it work? * b1ebd700c5295a449f8d114740f0d1fb6e6b2eb5 + 80e2212d8e59933a1641f029ebd360526ff0e074 + 4997db742946d08be4378cf91221f558f928bc73 -- `Don't document si_code diff --git a/open_issues/glibc_madvise_vs_static_linking.mdwn b/open_issues/glibc_madvise_vs_static_linking.mdwn index ab633b0f..4af41931 100644 --- a/open_issues/glibc_madvise_vs_static_linking.mdwn +++ b/open_issues/glibc_madvise_vs_static_linking.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010, 2011, 2012 Free Software Foundation, +[[!meta copyright="Copyright © 2010, 2011, 2012, 2013 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -29,7 +29,8 @@ no-op in glibc, avoiding the link-time warning. GCC c5db973fdab3db3e13db575e5650c0bcfd3630f4 (2011-10-17) makes use of this. As we now export the symbol (and `MADV_DONTNEED`, too), GCC will no longer `munmap` pages, but will keep them mapped for later re-use. This may increase -memory usage. +memory usage. The discussion in [[!message-id +"20120720162519.734e02eb@spoyarek"]] touches related topics. 2011-07: This is what Samuel has [done for Debian glibc](http://anonscm.debian.org/viewvc/pkg-glibc/glibc-package/trunk/debian/patches/hurd-i386/local-madvise_warn.diff). diff --git a/open_issues/gnat.mdwn b/open_issues/gnat.mdwn index 2d17e275..e3005ee4 100644 --- a/open_issues/gnat.mdwn +++ b/open_issues/gnat.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2011, 2012 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2011, 2012, 2013 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 @@ -25,11 +26,6 @@ There is a [[!FF_project 259]][[!tag bounty]] on this task. First, make the language functional, have its test suite pass without errors. -## Original [[community/GSoC]] Task Description - -[[!inline pages=community/gsoc/project_ideas/gnat feeds=no]] - - ## Debian GCC There has a patch been added for GNU/kFreeBSD: diff --git a/open_issues/hurd_file_name_lookup_retry_FS_RETRY_MAGIC.mdwn b/open_issues/hurd_file_name_lookup_retry_FS_RETRY_MAGIC.mdwn index b1eaf9a5..c38d029e 100644 --- a/open_issues/hurd_file_name_lookup_retry_FS_RETRY_MAGIC.mdwn +++ b/open_issues/hurd_file_name_lookup_retry_FS_RETRY_MAGIC.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2009, 2010, 2013 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 @@ -8,14 +9,38 @@ 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]]."]]"""]] -IRC, #hurd, 2009-08-25 +[[!tag open_issue_glibc open_issue_hurd]] - <cfhammar> also I fixed (what I think is) a bug in hurd_file_name_lookup_retry when opening FDs with FS_RETRY_MAGIC - <cfhammar> it didn't actually reopen the FD, rather it just (effectively) duped it - <scolobb> cfhammar: That's great! I think I had some problems because of not being able to truly reopen a port to a file. - <antrik> cfhammar: what is the difference, and why do you consider it a bug?... - <cfhammar> antrik: for one thing you can't change open modes, and it doesn't reset the file cursor + +# IRC, freenode, #hurd, 2009-08-25 + + <cfhammar> also I fixed (what I think is) a bug in + hurd_file_name_lookup_retry when opening FDs with FS_RETRY_MAGIC + <cfhammar> it didn't actually reopen the FD, rather it just (effectively) + duped it + <scolobb> cfhammar: That's great! I think I had some problems because of + not being able to truly reopen a port to a file. + <antrik> cfhammar: what is the difference, and why do you consider it a + bug?... + <cfhammar> antrik: for one thing you can't change open modes, and it + doesn't reset the file cursor <cfhammar> (which I actually needed, though I could have done it manually) <cfhammar> antrik: and also it isn't consistant with linux - <cfhammar> you can trigger the bug from the shell: cat /dev/fd/3 3>> /tmp/foo - <antrik> cfhammar: I can't say that I understand the test case... but I can at least confirm that it behaves differently on Hurd and on Linux :-) + <cfhammar> you can trigger the bug from the shell: cat /dev/fd/3 3>> + /tmp/foo + <antrik> cfhammar: I can't say that I understand the test case... but I can + at least confirm that it behaves differently on Hurd and on Linux :-) + + +## 2013-02-17 + +GNU/Linux: + + $ cat /dev/fd/3 3>> /tmp/foo + $ ls -l /tmp/foo + -rw-rw-r-- 1 thomas thomas 0 Feb 17 12:01 /tmp/foo + +GNU/Hurd: + + $ cat /dev/fd/3 3>> /tmp/foo + cat: /dev/fd/3: Bad file descriptor diff --git a/open_issues/implementing_hurd_on_top_of_another_system.mdwn b/open_issues/implementing_hurd_on_top_of_another_system.mdwn index 220c69cc..cf3db0ab 100644 --- a/open_issues/implementing_hurd_on_top_of_another_system.mdwn +++ b/open_issues/implementing_hurd_on_top_of_another_system.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010, 2011, 2012 Free Software Foundation, +[[!meta copyright="Copyright © 2010, 2011, 2012, 2013 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -358,8 +358,9 @@ Continue reading about the [[benefits_of_a_native_Hurd_implementation]]. <peo-xaci> what you talked about above "the user space system call code is loaded as a virtual shared library" <braunr> let's call it vdso - <braunr> i have to leave in a few minutes - <braunr> keep going, i'll read later + +[[vDSO]] + <peo-xaci> thanks, I looked it up on Wikipedia and understand immediately :P <peo-xaci> so VDSOs are provided by the kernel, not a regular library file, diff --git a/open_issues/latrace.mdwn b/open_issues/latrace.mdwn index b5a2928c..f5b7521e 100644 --- a/open_issues/latrace.mdwn +++ b/open_issues/latrace.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 2013 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 @@ -9,3 +9,8 @@ is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] Check whether <http://people.redhat.com/jolsa/latrace/> works. + + +# See Also + + * [[debugging]], [[profiling]] diff --git a/open_issues/libpthread.mdwn b/open_issues/libpthread.mdwn index acc03efd..28532320 100644 --- a/open_issues/libpthread.mdwn +++ b/open_issues/libpthread.mdwn @@ -17,13 +17,7 @@ License|/fdl]]."]]"""]] # cthreads -> pthreads Get rid of cthreads; switch to pthreads. - -There is a [[!FF_project 275]][[!tag bounty]] on this task. - - -## Original [[community/GSoC]] Task Description - -[[!inline pages=community/gsoc/project_ideas/pthreads feeds=no]] +Most of the issues raised on this page has been resolved, a few remain. ## IRC, freenode, #hurd, 2012-04-26 diff --git a/open_issues/libpthread_CLOCK_MONOTONIC.mdwn b/open_issues/libpthread_CLOCK_MONOTONIC.mdwn index 5a99778b..37ee548b 100644 --- a/open_issues/libpthread_CLOCK_MONOTONIC.mdwn +++ b/open_issues/libpthread_CLOCK_MONOTONIC.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2012 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2012, 2013 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 @@ -25,6 +25,9 @@ License|/fdl]]."]]"""]] <youpi> that's unfortunate, but that's what nptl actually does <pinotree> this way we could add inside hurdtime.c the mapped time stuff too + +[[Mapped-time_interface|master/microkernel/mach/gnumach/interface/device/time]]. + <pinotree> most probably a noobish question, but why does rt link to pthread? <youpi> no idea :) diff --git a/open_issues/llvm.mdwn b/open_issues/llvm.mdwn index 56b4513e..2a4b4ed5 100644 --- a/open_issues/llvm.mdwn +++ b/open_issues/llvm.mdwn @@ -47,10 +47,10 @@ git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --> Last reviewed up to the [[Git mirror's sources|source_repositories/llvm]]: llvm -e68542e67e5c0f8d4bbdae0dde6ccd24525a18e3 (2013-02-13), clang -2cbd427ec533f022f612fed0dd93ef5fa214478a (2013-02-12), compiler-rt -c242446f7a7c6a0c1f1bf9ad403d6dac6f215f1c (2013-02-12), test-suite -f621d1a62904df136cbaf4e4e63cbf9e9c45fd10 (2013-02-08). +6f7becfe23f38e8c28e9422d883263974058aeed (2013-03-24), clang +495cfa46300979642acde8d93a1f21c9291dac98 (2013-03-23), compiler-rt +a06fe9183fbffb78798a444da9bc3040fdd444aa (2013-03-23), test-suite +5a05572d268568fb15b48f374f9fc9f882adecd2 (2013-03-23). * <http://anonscm.debian.org/viewvc/pkg-llvm/llvm/trunk/debian/patches/>. @@ -69,12 +69,22 @@ f621d1a62904df136cbaf4e4e63cbf9e9c45fd10 (2013-02-08). * [low] Linuxisms + * In some CMake files (`CMakeLists.txt`, for example). + * `test/`, `unittests`, `tools/clang/test/`, `tools/clang/unittests/` not yet examined. * In clang's `test/Driver/` a lot of testing can be generalized from *Linux* to *GNU environment*, adding GNU/Hurd testing, too. + * LLVM commit 98fbe27ac8f0766ea94b89b8c03418131b72bea4 `Support for + HiPE-compatible code emission` + + Only relevant for `CallingConv::HiPE`. + + + assert(ST->isTargetLinux() && + + "HiPE prologue is only supported on Linux operating systems."); + * `compiler-rt` and `test-suite` not yet examined. * `/proc` usage @@ -92,11 +102,11 @@ f621d1a62904df136cbaf4e4e63cbf9e9c45fd10 (2013-02-08). Here's a log of a LLVM build run; this is from our [[Git repository's sources|source_repositories/llvm]], llvm -829831c561ca75cb81cbe217dee25b52dbe0e2f0 (2013-02-13), clang -6b02a96cdeecb9cc2070a5a5684d62bb32ba40d6 (2013-02-13), compiler-rt -c242446f7a7c6a0c1f1bf9ad403d6dac6f215f1c (2013-02-12), test-suite -f8647dbb30c3ee173c038aff10f815b0ba856793 (2013-02-09), run on kepler.SCHWINGE -and coulomb.SCHWINGE. +dc218fb6ae3241f4b66e9bf2c9d6352efecc0a14 (2013-03-24), clang +744290b5ecd48bddb4a6cf96d68cdc4a57e24e36 (2013-03-24), compiler-rt +a06fe9183fbffb78798a444da9bc3040fdd444aa (2013-03-23), test-suite +1821ab0ef1c73430705356fdfde3769460092382 (2013-03-24), run on +kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C $ (cd ../Horace_Silver/ && ln -sfn ../../../clang/tschwinge/Hank_Mobley tools/clang) @@ -118,8 +128,8 @@ for the corresponding GNU/Linux build). Using `--enable-debug-symbols the corresponding GNU/Linux build). Also there is a separate `--enable-debug-runtime`. -This takes up around 3 GiB, and needs roughly 1.25 h on kepler.SCHWINGE and -4.25 h on coulomb.SCHWINGE. +This takes up around 3.2 GiB, and needs roughly 1.5 h on kepler.SCHWINGE and +5.25 h on coulomb.SCHWINGE. Configuring without `--enable-optimized` even crashes mighty darnassus, probably because of too-big files when linking. Configuring with @@ -164,7 +174,7 @@ TODO $ make VERBOSE=1 install 2>&1 | tee log_install -This takes up around 350 MiB, and needs roughly 1 min on kepler.SCHWINGE and 12 +This takes up around 400 MiB, and needs roughly 1 min on kepler.SCHWINGE and 12 min on coulomb.SCHWINGE. @@ -183,8 +193,8 @@ TODO `LIT_ARGS=-v` is default for `VERBOSE=1`, but we want only one worker thread, for stable order and usable test output log. -This needs roughly 10 min (`check-all`) + 145 min (test-suite) = 155 min on -kepler.SCHWINGE and 40 min (`check-all`) + 80 min (test-suite) = 120 min on +This needs roughly 10 min (`check-all`) + 150 min (test-suite) = 160 min on +kepler.SCHWINGE and 45 min (`check-all`) + 165 min (test-suite) = 210 min on coulomb.SCHWINGE. @@ -227,6 +237,59 @@ coulomb.SCHWINGE. [...] int x; + #include <stdio.h> + #include <unistd.h> + + int main(int argc, char *argv[]) + { + while (argc > 0) + { + int err; + char *f = argv[argc -1]; + + err = access(f, F_OK); + if (err < 0) + printf("%s: %m\n", f); + + argc--; + } + + return 0; + } + + $ ./a.out /dev/fd/0 < /dev/null + $ cat < /dev/null | ./a.out /dev/fd/0 + /dev/fd/0: (ipc/mig) bad request message ID + + `file_check_access` fails with `MIG_BAD_ID`, meaning this RPC is not + implemented. + + The difference is that the former directly refers to the `/dev/null` + instance, whereas the latter goes through an intermediate pflocal instance. + + Similarly: + + $ stat /dev/fd/0 < /dev/null + File: `/dev/fd/0' + Size: 0 Blocks: 0 IO Block: 1048576 character special file + Device: 17h/23d Inode: 342820 Links: 1 Device type: 0,0 + Access: (0666/crw-rw-rw-) Uid: ( 0/ root) Gid: ( 0/ root) + Access: 2012-11-27 16:03:19.000000000 +0100 + Modify: 2012-11-27 16:03:19.000000000 +0100 + Change: 2012-11-27 16:03:19.000000000 +0100 + Birth: - + $ cat < /dev/null | stat /dev/fd/0 + File: `/dev/fd/0' + Size: 0 Blocks: 0 IO Block: 65536 fifo + Device: 9h/9d Inode: 0 Links: 0 + Access: (0000/p---------) Uid: ( 0/ root) Gid: ( 0/ root) + Access: 1970-01-01 01:00:00.000000000 +0100 + Modify: 1970-01-01 01:00:00.000000000 +0100 + Change: 1970-01-01 01:00:00.000000000 +0100 + Birth: - + + `io_stat_request` fills in these values. + * `Clang :: Tooling/clang-check-builtin-headers.cpp` Fails: `fatal error: 'stddef.h' file not found`; succeeds when ran diff --git a/open_issues/ltrace.mdwn b/open_issues/ltrace.mdwn index cf0df759..615d2d86 100644 --- a/open_issues/ltrace.mdwn +++ b/open_issues/ltrace.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 2013 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,10 +10,18 @@ License|/fdl]]."]]"""]] [[!tag open_issue_glibc]] -IRC, unknown channel, unknown date. +<http://www.ltrace.org/> + + +# IRC, unknown channel, unknown date. <youpi> it'd be good to have ltrace eventually <youpi> rpctrace has too many issues to be usable <youpi> (and a lot of them are hard to fix iirc) <youpi> ltrace traces library calls <youpi> in principle it should just work at the dynamic linker stage, so should be portable + + +# See Also + + * [[debugging]], [[profiling]] diff --git a/open_issues/multiprocessing.mdwn b/open_issues/multiprocessing.mdwn index 562ccd83..0ac7f195 100644 --- a/open_issues/multiprocessing.mdwn +++ b/open_issues/multiprocessing.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 2011, 2013 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 @@ -54,12 +55,6 @@ IRC, freenode, #hurd, 2011-07-26 < braunr> thread migration already takes into account smt, cores, and numa < braunr> it's hard to do something better < braunr> (here, thread migration means being dispatched on another cpu) - < braunr> some systems like dragonflybsd go as far as to pin threads on one - processor for their entire lifetime - < braunr> in order to have rcu-like locking almost everywhere - < braunr> (you could argue it's less efficient since in the worst case - everything runs on the same cpu, but it's very unlikely, and in practice - most patterns are well balanced) debian-hurd list diff --git a/open_issues/performance/io_system/read-ahead.mdwn b/open_issues/performance/io_system/read-ahead.mdwn index 4034e940..768dca93 100644 --- a/open_issues/performance/io_system/read-ahead.mdwn +++ b/open_issues/performance/io_system/read-ahead.mdwn @@ -1323,6 +1323,9 @@ License|/fdl]]."]]"""]] <antrik> well, in theory, specific kernel drivers can expose their own device_map() -- but IIRC the only one that does (besides mem of course) is maptime -- which is not a real driver either... + +[[Mapped-time_interface|master/microkernel/mach/gnumach/interface/device/time]]. + <braunr> oh btw, i didn't know you had a blog :) <antrik> well, it would be possible to replace the device interface by specific interfaces for the generic pseudo devices... I'm not sure how @@ -1870,6 +1873,9 @@ License|/fdl]]."]]"""]] <braunr> mcsim: does it work fine without the large storage patch ? <mcsim> braunr: looks fine, but TBH I can't even run such things like fsx, because even without my changes it failed mightily at once. + +[[file_system_exerciser]]. + <braunr> mcsim: right, well, that will be part of another task :) diff --git a/open_issues/profiling.mdwn b/open_issues/profiling.mdwn index 7e3c7350..26e6c97c 100644 --- a/open_issues/profiling.mdwn +++ b/open_issues/profiling.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 2011, 2013 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 @@ -17,6 +18,12 @@ done for [[performance analysis|performance]] reasons. Should be working, but some issues have been reported, regarding GCC spec files. Should be possible to fix (if not yet done) easily. + * [[glibc]]'s sotruss + + * [[ltrace]] + + * [[latrace]] + * [[community/gsoc/project_ideas/dtrace]] Have a look at this, integrate it into the main trees. diff --git a/open_issues/time.mdwn b/open_issues/time.mdwn index cc3951c3..becb88b0 100644 --- a/open_issues/time.mdwn +++ b/open_issues/time.mdwn @@ -52,7 +52,7 @@ GNU time's *elapsed* value is off by some factor. user 0m0.000s sys 0m0.010s -As above; also here all the running time should be attriuted to *user* time. +As above; also here all the running time should be attributed to *user* time. This is probably a [[!taglink open_issue_gnumach]]. @@ -69,74 +69,15 @@ While testing some [[performance/IPC_virtual_copy]] performance issues: <tschwinge> And I can confirm that with dd if=/dev/zero of=/dev/null bs=4k running, a parallel sleep 10 takes about 20 s (on strauss). +# 2013-03-30/31 -# IRC, OFTC, #debian-hurd, 2013-03-30 - - <clopez> /usr/bin/time seems broken on hurd. It reports weird things. Ex: - <clopez> # /usr/bin/time sleep 1 - <clopez> 0.00user 0.00system 4:37:46elapsed 0%CPU (0avgtext+0avgdata - 0maxresident)k - <clopez> 0inputs+0outputs (0major+0minor)pagefaults 0swaps - <pinotree> o_O - <pinotree> indeed, let's see what that time does - <pinotree> seems like only the elapsed time, %E - <clopez> not only the time, but also the other variables (pagefaults, cpu - used, etc) are wrong. For example compare the output of - <clopez> /usr/bin/time openssl speed ecdhp521 - <clopez> on linux and hurd - <pinotree> most probably they are not implemented yet - <pinotree> they are all 0 - <clopez> yes - <clopez> should i report a bug to pkg time? - <pinotree> not sure - <pinotree> at least, there's this difference between eg amd64 and hurd-i386 - in configure's output: - <pinotree> -checking for wait3 that fills in rusage... yes - <pinotree> +checking for wait3 that fills in rusage... no - <clopez> found this: - https://www.gnu.org/software/hurd/open_issues/time.html - <pinotree> seems related, yes - <pinotree> clopez: apparently all the ways to get the HZ define, either - directly or with CLOCKS_PER_SEC or CLK_TCK, so it gets defined as HZ - <pinotree> ... as 60, i mean (instead of 1000000) - <pinotree> $ ./time sleep 1 - <pinotree> 0.00user 0.00system 0:01.01elapsed 0PU (0avgtext+0avgdata - 0maxresident)k - <pinotree> :) - <clopez> what it was? - <pinotree> i added the check for time.h, and included in the no-wait3 case - in resuse.c - <pinotree> (omg, the last release of gnu time was in 1997) - <clopez> lol - <pinotree> hm not yet fixed - <pinotree> oh minor typo - <pinotree> clopez: http://paste.debian.net/246004/ - <pinotree> i will update the wiki page (on the hurd site) and send the - patch tomorrow - <clopez> nice - <pinotree> yw, thanks again - <clopez> i dropped the patch on debian/patches of pkg time.. rebuilt it - both on linux and hurd - <clopez> and works as expected in both cases - <clopez> i think you should forward the patch to the mantainer of pkg time - <pinotree> is there anyone maintaining gnu time? - <clopez> http://packages.qa.debian.org/t/time.html - <clopez> Maintainers for time are Bob Proulx <bob@proulx.com>. - <pinotree> that's the debian maintainer, yes, which is what i implied - earlier with "send the patch" - <clopez> i guess that filling a bug against time with this patch attached - should be enough - <pinotree> yeah - <clopez> wow... not only you fixed the elapsed time but also the other - variables :) - <clopez> /usr/bin/time openssl speed ecdhp521 - <clopez> now it reports cpu used and pagefaults :) - <pinotree> does it? - <clopez> 10.00user 0.01system 0:10.11elapsed 99%CPU (0avgtext+0avgdata - 0maxresident)k - <clopez> 0inputs+0outputs (67major+656minor)pagefaults 0swaps - - -# IRC, OFTC, #debian-hurd, 2013-03-31 - - <pinotree> clopez: #704283 +Investigating time's `configure`, a difference of the output between Linux and +Hurd shows: + + -checking for wait3 that fills in rusage... yes + +checking for wait3 that fills in rusage... no + +This causes a different code path in `resuse.c` to be used; such code path does +not get a define for `HZ`, which is then defined with a fallback value of 60. + +[[!debbug 704283]] has been filed with a fix for this no-wait3 case. diff --git a/open_issues/vdso.mdwn b/open_issues/vdso.mdwn new file mode 100644 index 00000000..2b2d2805 --- /dev/null +++ b/open_issues/vdso.mdwn @@ -0,0 +1,48 @@ +[[!meta copyright="Copyright © 2013 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_glibc open_issue_gnumach open_issue_hurd]] + +Evaluate whether or not usage of vDSOs (virtual dynamically linked shared +objects; [[!wikipedia vDSO]]) can be useful in a GNU Hurd system. + +Explanation and example for the Linux kernel: [Creating a vDSO: the Colonel's +Other +Chicken](http://www.linuxjournal.com/content/creating-vdso-colonels-other-chicken), +Matt Davis, 2012-02-06. The *Resources* given are also worth reading. +Basically, this is useful for exporting data from the kernel (generally, or +given a process context ([[Unix]]), or task/thread context, and so on). + +On a GNU Hurd system, parts of the data that makes up a process context doesn't +actually live inside the kernel, but instead is directly held in glibc. For +example `sysdeps/mach/hurd/getpid.c:__getpid` does a mere `return _hurd_pid`. +For this reason, vDSOs might not be as useful on GNU Hurd as they are with the +Linux kernel. Or, put another way, as GNU Hurd system doesn't have many +[[system_call]]s, also there aren't many that could be replaced. + +Generally only *real* [[system_call]]s should be candidates for implementation +with vDSO code, because otherwise that'd break the ([[RPC]]) system's inherent +[[/virtualization]] capabilities. + +Having vDSO code might be useful for: + + * `mach_*_self`: `mach_host_self`, `mach_task_self`, `mach_thread_self`? + + * [[mapped-time_interface|master/microkernel/mach/gnumach/interface/device/time]] + + Every application can then use that via the regular + `gettimeofday`/`clock_gettime` and similar calls instead of using the + special [[hurd/libshouldbeinlibc]]'s `<maptime.h>` interface. + + Can implement [[`clock_gettime` stuff|clock_gettime]] more easily that way, + for example for nanosecond precision? + + Now, the [[mapped-time_interface]] is virtualizable -- the question is + whether there is a way so that we can make a compromise here? diff --git a/open_issues/vfat_test_suite.mdwn b/open_issues/vfat_test_suite.mdwn new file mode 100644 index 00000000..e06f07e3 --- /dev/null +++ b/open_issues/vfat_test_suite.mdwn @@ -0,0 +1,20 @@ +[[!meta copyright="Copyright © 2013 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 referenced in Linux kernel's `Documentation/filesystems/vfat.txt`, on +<http://web.archive.org/web/*/http://bmrc.berkeley.edu/people/chaffee/vfat.html> +one can find a VFAT Test Suite. Run it on our [[hurd/translator/fatfs]]. + + +# See Also + + * [[File_System_Exerciser]] diff --git a/open_issues/visudo.mdwn b/open_issues/visudo.mdwn new file mode 100644 index 00000000..e9892e33 --- /dev/null +++ b/open_issues/visudo.mdwn @@ -0,0 +1,22 @@ +[[!meta copyright="Copyright © 2013 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]]."]]"""]] + +[[!meta title="visudo: /etc/sudoers is busy, try again later"]] + +[[!tag open_issue_hurd]] + +visudo does not work: + + /etc/sudoers is busy, try again later + +Apparently there is some locking that sudo does which does not +work. Uninvestigated for now. + +One can just edit the /etc/sudoers file and take care of correctness by hand. |