summaryrefslogtreecommitdiff
path: root/open_issues
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@schwinge.name>2010-11-29 07:58:51 +0100
committerThomas Schwinge <thomas@schwinge.name>2010-11-29 07:58:51 +0100
commiteccf2986513cc41c412b1c30aa5dcb88a4c981b5 (patch)
treee4c973f5c863cf9bd1cfb936e161be431ed0ba33 /open_issues
parente688f83d17f89a37eeef599b12e9626f5ba1629c (diff)
Add links to some LWN articles, and then some.
Diffstat (limited to 'open_issues')
-rw-r--r--open_issues/debugging.mdwn42
-rw-r--r--open_issues/gdb-heap.mdwn15
-rw-r--r--open_issues/locking.mdwn53
-rw-r--r--open_issues/performance.mdwn2
-rw-r--r--open_issues/unit_testing.mdwn10
-rw-r--r--open_issues/virtualization/file_systems.mdwn3
6 files changed, 124 insertions, 1 deletions
diff --git a/open_issues/debugging.mdwn b/open_issues/debugging.mdwn
new file mode 100644
index 00000000..95b7bf9b
--- /dev/null
+++ b/open_issues/debugging.mdwn
@@ -0,0 +1,42 @@
+[[!meta copyright="Copyright © 2010 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]]."]]"""]]
+
+
+# Existing
+
+We have debugging infrastructure. For example:
+
+ * [[GDB]]
+
+ * [[GNU Mach debugging|microkernel/mach/gnumach/debugging]]
+
+ * [[GNU Hurd debugging|hurd/debugging]], including
+ [[hurd/debugging/rpctrace]] and more.
+
+
+# To Do
+
+ * [[ltrace]]
+
+ * [[latrace]]
+
+ * [[profiling]]
+
+ * *[Checkpoint/restart](http://lwn.net/Articles/412749/) allows the state of
+ a set of processes to be saved to persistent storage, then restarted at
+ some future time* -- quoting from Jonathan Corbet's 2010 Linux Kernel
+ Summit report.
+
+ This is surely a very useful facility to have for reproducing failures, for
+ example. But on the other hand it's questionable how it can help with
+ debugging failures in [[GNU Hurd server|hurd/translator]]s' interactions,
+ as their state is typically spread between several processes.
+
+ * [[locking]]
diff --git a/open_issues/gdb-heap.mdwn b/open_issues/gdb-heap.mdwn
new file mode 100644
index 00000000..75c31bbe
--- /dev/null
+++ b/open_issues/gdb-heap.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 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_gdb]]
+
+Might be interesting to have a look at
+[*gdb-heap*](https://fedorahosted.org/gdb-heap/) with respect to our
+long-lived [[hurd/translator]] processes.
diff --git a/open_issues/locking.mdwn b/open_issues/locking.mdwn
new file mode 100644
index 00000000..1717133a
--- /dev/null
+++ b/open_issues/locking.mdwn
@@ -0,0 +1,53 @@
+[[!meta copyright="Copyright © 2008, 2009, 2010 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]]
+
+Every now and then, new locking issues are discovered in
+[[hurd/libdiskfs]] or [[hurd/translator/ext2fs]], for example. Nowadays
+these in fact seem to be the most often encountered cause of Hurd crashes
+/ lockups.
+
+One of these could be traced
+recently, and turned out to be a lock inside [[hurd/libdiskfs]] that was taken
+and not released in some cases. There is reason to believe that there are more
+faulty paths causing these lockups.
+
+The task is systematically checking the [[hurd/libdiskfs]] code for this kind of locking
+issues. To achieve this, some kind of test harness has to be implemented: For
+example instrumenting the code to check locking correctness constantly at
+runtime. Or implementing a [[unit testing]] framework that explicitly checks
+locking in various code paths. (The latter could serve as a template for
+implementing unit tests in other parts of the Hurd codebase...)
+
+(A systematic code review would probably suffice to find the existing locking
+issues; but it wouldn't document the work in terms of actual code produced, and
+thus it's not suitable for a GSoC project...)
+
+This task requires experience with debugging locking issues in multithreaded
+applications.
+
+Tools have been written for static code analysis, than can help to locate
+and fix such errors.
+
+ * Coccinelle
+
+ * <http://lwn.net/Articles/315686/>
+
+ * <http://www.google.com/search?q=coccinelle+analysis>
+
+ * clang
+
+ * <http://www.google.com/search?q=clang+analysis>
+
+ * Linux' sparse
+
+ * <https://sparse.wiki.kernel.org/>
diff --git a/open_issues/performance.mdwn b/open_issues/performance.mdwn
index a4816680..3d146a72 100644
--- a/open_issues/performance.mdwn
+++ b/open_issues/performance.mdwn
@@ -11,3 +11,5 @@ License|/fdl]]."]]"""]]
* [[I/O System|io_system]]
* [[fork]]
+
+ * [[unit testing]]
diff --git a/open_issues/unit_testing.mdwn b/open_issues/unit_testing.mdwn
index b9fb3700..80a2860a 100644
--- a/open_issues/unit_testing.mdwn
+++ b/open_issues/unit_testing.mdwn
@@ -43,3 +43,13 @@ abandoned).
* <http://www.codesourcery.com/public/qmtest/qmtest-snapshot/share/doc/qmtest/html/tutorial/index.html>
* <http://www.codesourcery.com/public/qmtest/qmtest-snapshot/share/doc/qmtest/html/manual/index.html>
+
+ * [*[ANNOUNCE] ktest.pl: Easy and flexible testing script for Linux Kernel
+ Developers*](http://lwn.net/Articles/412302/) by Steven Rostedt,
+ 2010-10-28.
+
+ * <http://www.phoronix-test-suite.com/> -- ``comprehensive testing and
+ benchmarking platform''. This one might be useful for [[performance]]
+ testing, too?
+
+ * <http://ltp.sourceforge.net/>
diff --git a/open_issues/virtualization/file_systems.mdwn b/open_issues/virtualization/file_systems.mdwn
index 3bf2299d..a12ea10d 100644
--- a/open_issues/virtualization/file_systems.mdwn
+++ b/open_issues/virtualization/file_systems.mdwn
@@ -20,4 +20,5 @@ be explored.
* Linux saw a patch for [*generic name to handle and open by handle
syscalls*](http://thread.gmane.org/gmane.linux.file-systems/46648) posted,
which in turn can be beneficial for a [[QEMU]] emulation of a 9P file
- system.
+ system. LWN's Jonathan Corbet covered this [*open by
+ handle*](http://lwn.net/Articles/375888/) functionality on 2010-02-23.