summaryrefslogtreecommitdiff
path: root/community/gsoc
diff options
context:
space:
mode:
Diffstat (limited to 'community/gsoc')
-rw-r--r--community/gsoc/project_ideas/disk_io_performance.mdwn10
-rw-r--r--community/gsoc/project_ideas/dtrace.mdwn8
-rw-r--r--community/gsoc/project_ideas/libdiskfs_locking.mdwn10
-rw-r--r--community/gsoc/project_ideas/procfs.mdwn8
-rw-r--r--community/gsoc/project_ideas/valgrind.mdwn2
5 files changed, 26 insertions, 12 deletions
diff --git a/community/gsoc/project_ideas/disk_io_performance.mdwn b/community/gsoc/project_ideas/disk_io_performance.mdwn
index b6f223c8..ae634709 100644
--- a/community/gsoc/project_ideas/disk_io_performance.mdwn
+++ b/community/gsoc/project_ideas/disk_io_performance.mdwn
@@ -11,6 +11,8 @@ License|/fdl]]."]]"""]]
[[!meta title="Disk I/O Performance Tuning"]]
+[[!tag open_issue_hurd]]
+
The most obvious reason for the Hurd feeling slow compared to mainstream
systems like GNU/Linux, is a low I/O system performance, in particular very
slow hard disk access.
@@ -18,8 +20,8 @@ slow hard disk access.
The reason for this slowness is lack and/or bad implementation of common
optimization techniques, like scheduling reads and writes to minimize head
movement; effective block caching; effective reads/writes to partial blocks;
-[[reading/writing multiple blocks at once|clustered_page_faults]]; and
-[[read-ahead]]. The
+[[reading/writing multiple blocks at once|open_issues/performance/io_system/clustered_page_faults]]; and
+[[open_issues/performance/io_system/read-ahead]]. The
[[ext2_filesystem_server|hurd/translator/ext2fs]] might also need some
optimizations at a higher logical level.
@@ -29,12 +31,12 @@ requires understanding the data flow through the various layers involved in
disk access on the Hurd ([[filesystem|hurd/virtual_file_system]],
[[pager|hurd/libpager]], driver), and general experience with
optimizing complex systems. That said, the killing feature we are definitely
-missing is the [[read-ahead]], and even a very simple implementation would bring
+missing is the [[open_issues/performance/io_system/read-ahead]], and even a very simple implementation would bring
very big performance speedups.
Here are some real testcases:
- * [[binutils_ld_64ksec]];
+ * [[open_issues/performance/io_system/binutils_ld_64ksec]];
* running the Git testsuite which is mostly I/O bound;
diff --git a/community/gsoc/project_ideas/dtrace.mdwn b/community/gsoc/project_ideas/dtrace.mdwn
index 252c303a..8fd3231f 100644
--- a/community/gsoc/project_ideas/dtrace.mdwn
+++ b/community/gsoc/project_ideas/dtrace.mdwn
@@ -11,13 +11,15 @@ License|/fdl]]."]]"""]]
[[!meta title="dtrace Support"]]
+[[!tag open_issue_gnumach]]
+
One of the main problems of the current Hurd implementation is very poor
-[[performance]]. While we have a bunch of ideas what could cause the performance
+[[open_issues/performance]]. While we have a bunch of ideas what could cause the performance
problems, these are mostly just guesses. Better understanding what really
causes bad performance is necessary to improve the situation.
For that, we need tools for performance measurements. While all kinds of more
-or less specific [[profiling]] tools could be conceived, the most promising and
+or less specific [[open_issues/profiling]] tools could be conceived, the most promising and
generic approach seems to be a framework for logging certain events in the
running system (both in the microkernel and in the Hurd servers). This would
allow checking how much time is spent in certain modules, how often certain
@@ -35,7 +37,7 @@ with integrating existing components as well as low-level programming.
Possible mentors: Samuel Thibault (youpi)
-Related: [[profiling]], [[LTTng]], [[SystemTap]]
+Related: [[open_issues/profiling]], [[LTTng]], [[SystemTap]]
Exercise: In lack of a good exercise directly related to this task, just pick
one of the kernel-related or generally low-level tasks from the bug/task
diff --git a/community/gsoc/project_ideas/libdiskfs_locking.mdwn b/community/gsoc/project_ideas/libdiskfs_locking.mdwn
index 74937389..faac8bd9 100644
--- a/community/gsoc/project_ideas/libdiskfs_locking.mdwn
+++ b/community/gsoc/project_ideas/libdiskfs_locking.mdwn
@@ -11,6 +11,8 @@ License|/fdl]]."]]"""]]
[[!meta title="Fix libdiskfs Locking Issues"]]
+[[!tag open_issue_hurd]]
+
Nowadays the most often encountered cause of Hurd crashes seems to be lockups
in the [[hurd/translator/ext2fs]] server. One of these could be traced
recently, and turned out to be a lock inside [[hurd/libdiskfs]] that was taken
@@ -20,19 +22,19 @@ 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
+runtime. Or implementing a [[open_issues/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|security]] would probably suffice to find the
+(A [[systematic code review|open_issues/security]] 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|multithreading]] applications.
+[[multithreaded|open_issues/multithreading]] applications.
-Tools have been written for automated [[code analysis]]; these can help to
+Tools have been written for automated [[open_issues/code_analysis]]; these can help to
locate and fix such errors.
Possible mentors: Samuel Thibault (youpi)
diff --git a/community/gsoc/project_ideas/procfs.mdwn b/community/gsoc/project_ideas/procfs.mdwn
index d4760aae..b4d1dc5f 100644
--- a/community/gsoc/project_ideas/procfs.mdwn
+++ b/community/gsoc/project_ideas/procfs.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2011 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
@@ -43,3 +44,8 @@ Exercise: Add or fix one piece in the existing procfs translator.
*Status*: Madhusudan.C.S has implemented a new, fully functional [[procfs|madhusudancs]] for
GSoC 2008. He is still working on some outstanding issues.
+
+---
+
+Note that [[jkoenig's `procfs` re-write|hurd/translator/procfs/jkoenig]] should
+address all these issues already.
diff --git a/community/gsoc/project_ideas/valgrind.mdwn b/community/gsoc/project_ideas/valgrind.mdwn
index 5fa748ff..17385f75 100644
--- a/community/gsoc/project_ideas/valgrind.mdwn
+++ b/community/gsoc/project_ideas/valgrind.mdwn
@@ -11,6 +11,8 @@ License|/fdl]]."]]"""]]
[[!meta title="Porting Valgrind to the Hurd"]]
+[[!tag open_issue_gnumach open_issues_hurd]]
+
[Valgrind](http://valgrind.org/) is an extremely useful debugging tool for memory errors.
(And some other kinds of hard-to-find errors too.)
Aside from being useful for program development in general,