aboutsummaryrefslogtreecommitdiff
path: root/open_issues
diff options
context:
space:
mode:
Diffstat (limited to 'open_issues')
-rw-r--r--open_issues/address_space_memory_mapping_entries.mdwn4
-rw-r--r--open_issues/alarm_setitimer.mdwn1
-rw-r--r--open_issues/anatomy_of_a_hurd_system.mdwn3
-rw-r--r--open_issues/benefits_of_a_native_hurd_implementation.mdwn9
-rw-r--r--open_issues/clock_gettime.mdwn7
-rw-r--r--open_issues/dde.mdwn5
-rw-r--r--open_issues/debugging.mdwn5
-rw-r--r--open_issues/file_system_exerciser.mdwn14
-rw-r--r--open_issues/gcc.mdwn26
-rw-r--r--open_issues/gdb.mdwn23
-rw-r--r--open_issues/glibc.mdwn3
-rw-r--r--open_issues/glibc_madvise_vs_static_linking.mdwn5
-rw-r--r--open_issues/gnat.mdwn8
-rw-r--r--open_issues/hurd_file_name_lookup_retry_FS_RETRY_MAGIC.mdwn43
-rw-r--r--open_issues/implementing_hurd_on_top_of_another_system.mdwn7
-rw-r--r--open_issues/latrace.mdwn7
-rw-r--r--open_issues/libpthread.mdwn8
-rw-r--r--open_issues/libpthread_CLOCK_MONOTONIC.mdwn5
-rw-r--r--open_issues/llvm.mdwn91
-rw-r--r--open_issues/ltrace.mdwn12
-rw-r--r--open_issues/multiprocessing.mdwn9
-rw-r--r--open_issues/performance/io_system/read-ahead.mdwn6
-rw-r--r--open_issues/profiling.mdwn9
-rw-r--r--open_issues/time.mdwn83
-rw-r--r--open_issues/vdso.mdwn48
-rw-r--r--open_issues/vfat_test_suite.mdwn20
-rw-r--r--open_issues/visudo.mdwn22
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.