From 42dc7198bbea79f4abe15d40804f539ffed1b05b Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Thu, 3 Nov 2011 10:29:38 +0100 Subject: news: expanded the text and links in the q3 --- contributing/web_pages/news/moth_next.mdwn | 62 ++++++++++++++++++++++-------- 1 file changed, 45 insertions(+), 17 deletions(-) diff --git a/contributing/web_pages/news/moth_next.mdwn b/contributing/web_pages/news/moth_next.mdwn index 870122d5..346dd95a 100644 --- a/contributing/web_pages/news/moth_next.mdwn +++ b/contributing/web_pages/news/moth_next.mdwn @@ -25,7 +25,7 @@ else=" -This month [hurd hacker] [item] +In the third quarter of 2011, the [hurd hacker] [item] Also … @@ -43,23 +43,51 @@ And … * [[toolchain/ELFOSABI_GNU]] - * [Arch Hurd, DDE](http://www.archhurd.org/news/22/) - - * Arch Hurd will have a booth at [FrOSCon](http://www.froscon.org/). - - * Bits from the Debian GNU/Hurd porters, - id:"20110721172827.GF4057@const.famille.thibault.fr", - - - * [[2011-q2-ps]] - - * GSoC end + * The Arch Hurd Hackers [packaged DDE](http://www.archhurd.org/news/22/), so + Linux 2.6 drivers can now be compiled on Arch Hurd to run in + userspace. At the time of writing it supports network cards, while + other driver-types still need their interfaces ported. + + * Also they had + [a booth at FrOSCon](http://www.froscon.de/aussteller/projekt) and + [released a new Arch Hurd LiveCD](http://www.archhurd.org/news/24/), + so new users can easily test the current state of the Arch flavor + of the Hurd. + + * The videos and slides from the GNU Hacker Meeting 2011 in Paris + are [online](http://www.gnu.org/ghm/2011/paris/), including the + talk from Samuel Thibault: + [GNU/Hurd, aka. Extensibility from the Ground](http://audio-video.gnu.org/video/ghm2011/Samuel_Thibault-GNU_Hurd.ogv) + ([slides](http://www.gnu.org/ghm/2011/paris/slides/samuel-thibault-hurd.pdf)). He + explains nicely how the simple concept of translators gives power + to non-priviledged and casual users (once we get some of those :) + ) without security implications, and how Sub-Hurds and + Neighbor-Hurds compare to Linux containers. + + “It’s all about freedom #0” + + * Samuel Thibault wrote a new + [Bits from the Debian GNU/Hurd porters](http://lists.debian.org/debian-devel-announce/2011/07/msg00002.html) + + * Thomas Schwinge improved the technical documentation of the + [[hurd/io_path]] in translators to make it easier for new developers to start hacking. + + * Guillem Jover, Fridolin Pokorny and Jonathan Neuschäfer + [sent](http://lists.gnu.org/bug-hurd/2011-08/msg00184.html) + [many](http://lists.gnu.org/bug-hurd/2011-08/msg00093.html) + [patches](http://lists.gnu.org/bug-hurd/2011-08/msg00030.html) for + gnumach, improving stability, fixing memory leaks and cleaning up + code. + + * Jeremie Koenig finished his Google Summer of Code project to + [Improve Java on Hurd](http://www.gnu.org/software/hurd/user/jkoenig/java.html). He + [improved the Hurd signalling](http://lists.gnu.org/bug-hurd/2011-06/msg00073.html), + ported OpenJDK and created a + [Java Hurd-Library](https://github.com/jeremie-koenig/hurd-java) + which already allows writing a + [Hello World translator in Java](https://github.com/jeremie-koenig/hurd-java/blob/master/HelloMach.java), + though still pretty low-level. * mcsim memory allocator project - * GHM. - - * ; Samuel. Slides. Also add - all to media. - """]] -- cgit v1.2.3 From 3ebdfe56c9cde5128b5f9da1be2f82104049fa7b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 5 Nov 2011 15:06:52 +0100 Subject: contributing/web_pages: Savannah web pages repository. --- contributing/web_pages.mdwn | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/contributing/web_pages.mdwn b/contributing/web_pages.mdwn index d1b3c0fc..b2e96121 100644 --- a/contributing/web_pages.mdwn +++ b/contributing/web_pages.mdwn @@ -130,13 +130,22 @@ is also read-only. $ git clone http://www.bddebian.com:8888/git/hurd-web [dest] -For all cases: if you omit `[dest]` it will default to `hurd-web`. +Or, you can check out the Savannah repository: -Later, you can just `cd` into the `hurd-web` directory and run a `git pull` to -get hold of the latest changes others have been installing in the mean time. -(In most cases, you should use `git pull --rebase`, -to avoid useless *Merge branch ...* messages. See the -Git documentation for details.) + $ git clone git://git.savannah.gnu.org/hurd/web.git [dest] + +See . If you're using the `ssh` +protocol, and you're a member of the Hurd's [[rules/Savannah_group]], you can +also push to this repository. The disadvantage of pushing to the Savannah +repository is that there is no [[ikiwiki]] installation where the pushed +changes are immediatelly rendered and viewable by everyone. + +For all cases: if you omit `[dest]` it will default to `hurd-web` for the +`bddebian.com` repositories, or `web` for a Savannah clone. + +Later, you can just `cd` into the `hurd-web` or `web` directory, and, for +example, run `git pull` to get hold of the latest changes others have been +installing in the mean time. ## Editing the Content -- cgit v1.2.3 From 4cc3f682fb57a920e3cc14e99323d66e380c1ee7 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 5 Nov 2011 23:19:34 +0100 Subject: open_issues/performance/io_system/binutils_ld_64ksec: Move Xen lseek stuff... open_issues/xen_lseek: ... here. --- .../performance/io_system/binutils_ld_64ksec.mdwn | 23 +++------------------- open_issues/performance/io_system/test-lseek.c | 17 ---------------- open_issues/performance/io_system/test-mach.c | 19 ------------------ open_issues/xen_lseek.mdwn | 22 +++++++++++++++++++++ open_issues/xen_lseek/test-lseek.c | 17 ++++++++++++++++ open_issues/xen_lseek/test-mach.c | 19 ++++++++++++++++++ 6 files changed, 61 insertions(+), 56 deletions(-) delete mode 100644 open_issues/performance/io_system/test-lseek.c delete mode 100644 open_issues/performance/io_system/test-mach.c create mode 100644 open_issues/xen_lseek/test-lseek.c create mode 100644 open_issues/xen_lseek/test-mach.c diff --git a/open_issues/performance/io_system/binutils_ld_64ksec.mdwn b/open_issues/performance/io_system/binutils_ld_64ksec.mdwn index d0b8ea7f..931fd0ee 100644 --- a/open_issues/performance/io_system/binutils_ld_64ksec.mdwn +++ b/open_issues/performance/io_system/binutils_ld_64ksec.mdwn @@ -27,10 +27,6 @@ extracted from cdf7c161ebd4a934c9e705d33f5247fd52975612 sources, 2010-10-24. On the idle grubber, this one repeatedly takes a few minutes wall time to complete successfully, contrary to a few seconds on a GNU/Linux system. -> On order of slowness may in fact be due to a Xen-specific issue, see -> [[xen_lseek]]. (But there are probably still one or two orders left, even -> without Xen.) - While processing the object files, there is heavy interaction with the relevant [[hurd/translator/ext2fs]] process. Running [[hurd/debugging/rpctrace]] on the testee shows that (primarily) an ever-repeating series of `io_seek` and @@ -38,19 +34,6 @@ the testee shows that (primarily) an ever-repeating series of `io_seek` and shows the equivalent thing (`_llseek`, `read`) -- but Linux' I/O system isn't as slow as the Hurd's. ---- - -IRC, freenode, #hurd, 2011-09-01: - - hum, f951 does myriads of 71->io_seek_request (32768 0) = 0 32768 - no wonder it's slow - unfortunately that's also what it does on linux, the system call is - just less costly - apparently gfortran calls io_seek for, like, every token of the - sourced file - (fgetpos actually, but that's the same) - and it is indeed about 10 times slower under Xen for some reason - -Also see testcase [[test-lseek.c]] and [[test-mach.c]] - -[[!tag open_issue_xen]] +As Samuel figured out later, this slowness may in fact be due to a Xen-specific +issue, see [[Xen_lseek]]. After the latter has been addressed, we can +re-evaluate this issue here. diff --git a/open_issues/performance/io_system/test-lseek.c b/open_issues/performance/io_system/test-lseek.c deleted file mode 100644 index 667dce66..00000000 --- a/open_issues/performance/io_system/test-lseek.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include -#include -#include -#include -#define N 100000 -int main(void) { - int fd = open("test.c", O_RDONLY); - struct timeval tv1, tv2; - int i; - gettimeofday(&tv1, NULL); - for (i = 0; i < N; i++) - lseek(fd, 0, SEEK_CUR); - gettimeofday(&tv2, NULL); - printf("%fµs\n", (float)((tv2.tv_sec-tv1.tv_sec) * 1000000 + tv2.tv_usec - tv1.tv_usec)/N); - return 0; -} diff --git a/open_issues/performance/io_system/test-mach.c b/open_issues/performance/io_system/test-mach.c deleted file mode 100644 index 90337346..00000000 --- a/open_issues/performance/io_system/test-mach.c +++ /dev/null @@ -1,19 +0,0 @@ -#define _GNU_SOURCE -#include -#include -#include -#define N 1000000 -int main(void) { - struct timeval tv1, tv2; - int i; - task_t task; - task = mach_task_self(); - mach_port_urefs_t refs; - gettimeofday(&tv1, NULL); - for (i = 0; i < N; i++) { - mach_port_get_refs(task, task, MACH_PORT_RIGHT_RECEIVE, &refs); - } - gettimeofday(&tv2, NULL); - printf("%fµs\n", (float)((tv2.tv_sec-tv1.tv_sec) * 1000000 + tv2.tv_usec - tv1.tv_usec)/N); - return 0; -} diff --git a/open_issues/xen_lseek.mdwn b/open_issues/xen_lseek.mdwn index accc7c8f..756abf5e 100644 --- a/open_issues/xen_lseek.mdwn +++ b/open_issues/xen_lseek.mdwn @@ -10,6 +10,17 @@ License|/fdl]]."]]"""]] [[!tag open_issue_xen]] +IRC, freenode, #hurd, 2011-09-01: + + hum, f951 does myriads of 71->io_seek_request (32768 0) = 0 32768 + no wonder it's slow + unfortunately that's also what it does on linux, the system call is + just less costly + apparently gfortran calls io_seek for, like, every token of the + sourced file + (fgetpos actually, but that's the same) + and it is indeed about 10 times slower under Xen for some reason + IRC, freenode, #hurd, 2011-11-02: btw, we have a performance issue with xen @@ -33,3 +44,14 @@ IRC, freenode, #hurd, 2011-11-02: http://www.gnu.org/software/hurd/open_issues/performance/io_system/binutils_ld_64ksec.html [[performance/io_system/binutils_ld_64ksec]]. + +Also see the simple testcases [[test-lseek.c]] and [[test-mach.c]]. + +IRC, freenode, #hurd, 2011-11-05: + + [test-mach.c is] mostly as a reference for the trap overhead + 0.56µs (xen) vs 0.48µs(kvm) on test-mach + 455µs(xen) vs 16µs(kvm) on test-lseek + that might simply be an issue in the RPC mechanism, which behaves + badly with the xen memory management + yes, about 0.5ms for an lseek, that's quite high :) diff --git a/open_issues/xen_lseek/test-lseek.c b/open_issues/xen_lseek/test-lseek.c new file mode 100644 index 00000000..667dce66 --- /dev/null +++ b/open_issues/xen_lseek/test-lseek.c @@ -0,0 +1,17 @@ +#include +#include +#include +#include +#include +#define N 100000 +int main(void) { + int fd = open("test.c", O_RDONLY); + struct timeval tv1, tv2; + int i; + gettimeofday(&tv1, NULL); + for (i = 0; i < N; i++) + lseek(fd, 0, SEEK_CUR); + gettimeofday(&tv2, NULL); + printf("%fµs\n", (float)((tv2.tv_sec-tv1.tv_sec) * 1000000 + tv2.tv_usec - tv1.tv_usec)/N); + return 0; +} diff --git a/open_issues/xen_lseek/test-mach.c b/open_issues/xen_lseek/test-mach.c new file mode 100644 index 00000000..90337346 --- /dev/null +++ b/open_issues/xen_lseek/test-mach.c @@ -0,0 +1,19 @@ +#define _GNU_SOURCE +#include +#include +#include +#define N 1000000 +int main(void) { + struct timeval tv1, tv2; + int i; + task_t task; + task = mach_task_self(); + mach_port_urefs_t refs; + gettimeofday(&tv1, NULL); + for (i = 0; i < N; i++) { + mach_port_get_refs(task, task, MACH_PORT_RIGHT_RECEIVE, &refs); + } + gettimeofday(&tv2, NULL); + printf("%fµs\n", (float)((tv2.tv_sec-tv1.tv_sec) * 1000000 + tv2.tv_usec - tv1.tv_usec)/N); + return 0; +} -- cgit v1.2.3 From 21608c7e5aabb217977fd2db4657f28eae848d51 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 5 Nov 2011 23:44:32 +0100 Subject: hurd/libpthread.git ea6390b2f20a03b7d504bc68a1c95e645d271149 --- .../libpthread_pthread_key_create_reuse.mdwn | 66 +--------------------- .../pthread_key_create_reuse.c | 48 ---------------- 2 files changed, 1 insertion(+), 113 deletions(-) delete mode 100644 open_issues/libpthread_pthread_key_create_reuse/pthread_key_create_reuse.c diff --git a/open_issues/libpthread_pthread_key_create_reuse.mdwn b/open_issues/libpthread_pthread_key_create_reuse.mdwn index ca2da2f5..ea6a0abf 100644 --- a/open_issues/libpthread_pthread_key_create_reuse.mdwn +++ b/open_issues/libpthread_pthread_key_create_reuse.mdwn @@ -8,75 +8,11 @@ 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="libpthread: pthread_key_create, reuse"]] +[[!meta title="libpthread vs. licq"]] [[!tag open_issue_libpthread]] IRC, FreeNode, #hurd, 2011-07-02: - < pinotree> hm, maybe i found a libpthread bug - * pinotree tries a testcase - < pinotree> yesssss, found the bug :) - < pinotree> youpi: it's a problem of the key reuse in pthread_key_create() - < youpi> it doesn't reset it? - < youpi> were you looking at the licq issue? - < pinotree> no, gtest - < youpi> k < youpi> licq has a failing threadspecific issue < youpi> [ FAILED ] ThreadSpecificData.dataDeletedWhenThreadExits - < pinotree> basically, pthread_key_delete() does not delete the key values - from the "thread_specifics" ihash - < pinotree> but those were new keys, so i'm not sure it is allowed to - return values of previous keys? - < pinotree> after all, the actual key value is an implementation detail, - applications shouldn't care about it being reused - < pinotree> (imho) - < youpi> Upon key creation, the value NULL shall be associated with the new - key in all active threads. - < youpi> ok, so we have to clear it in all threads - < youpi> that's a pity - < pinotree> or just remove the entry from the hash on key removal - < youpi> pinotree: from all the hashes, you mean? - < pinotree> youpi: from how i see it, adding a snippet like - http://paste.debian.net/121690/ in pthread_key_delete() should do the job - < youpi> that only drops from the current thread - < pinotree> ah hm, other threads - < youpi> we need to drop from all threads - < youpi> that's the pity part - < pinotree> youpi: the licq case could look like a similar issue, at a - veeery quick glance - -Test program: [[pthread_key_create_reuse.c]] - - -2011-11-01: - - youpi: about the bug with pthread keys (reuse): would be an - acceptable solution having a mutex for the thread_specifics of each - thread? - you mean one per thread, one global, or one per key, or ? - what is it supposed to protect? - the thread_specifics of each thread - pinotree: but against what? - the idea would be: when destroying a key, iterate over all the - exiting threads and remove the key data from the thread_specifics of each - thread - one of the issue is getting to browse through the whole list of - threads - the other is concurrency between that, and a thread dying - there's the __pthread_threads_lock rwlock - it should be enough to keep it locked during the iteration - but that wouldn't be enough when one thread is destroying a key, - and another one is doing {get,set}specific() on that key - that's not supposed to happen - mmm - “The effect of calling pthread_getspecific() or - pthread_setspecific() with a key value not obtained from - pthread_key_create() or after key has been deleted with - pthread_key_delete() is undefined.” - undefined -> you are allowed to just blow up - but it's not been deleted yet... :) - it could be, just a matter of time - you're not supposed to rely on time-luckyness :) - mmm - bah, you've convinced me ( :) ) diff --git a/open_issues/libpthread_pthread_key_create_reuse/pthread_key_create_reuse.c b/open_issues/libpthread_pthread_key_create_reuse/pthread_key_create_reuse.c deleted file mode 100644 index f7f5874e..00000000 --- a/open_issues/libpthread_pthread_key_create_reuse/pthread_key_create_reuse.c +++ /dev/null @@ -1,48 +0,0 @@ -#include -#include -#include - -#define DEBUG - -void del(void *x __attribute__((unused))) -{ -} - -void work(int val) -{ - pthread_key_t key1; - pthread_key_t key2; - -#ifdef DEBUG - printf("work/%d: start\n", val); -#endif - assert(pthread_key_create(&key1, &del) == 0); - assert(pthread_key_create(&key2, &del) == 0); -#ifdef DEBUG - printf("work/%d: pre-setspecific: %p,%p\n", val, pthread_getspecific(key1), pthread_getspecific(key2)); -#else - assert(pthread_getspecific(key1) == NULL); - assert(pthread_getspecific(key2) == NULL); -#endif - assert(pthread_setspecific(key1, (void *)(0x100 + val)) == 0); - assert(pthread_setspecific(key2, (void *)(0x200 + val)) == 0); -#ifdef DEBUG - printf("work/%d: post-setspecific: %p,%p\n", val, pthread_getspecific(key1), pthread_getspecific(key2)); -#else - assert(pthread_getspecific(key1) == (void *)(0x100 + val)); - assert(pthread_getspecific(key2) == (void *)(0x200 + val)); -#endif - assert(pthread_key_delete(key1) == 0); - assert(pthread_key_delete(key2) == 0); -} - -int main() -{ - int i; - - for (i = 0; i < 8; ++i) { - work(i + 1); - } - - return 0; -} -- cgit v1.2.3 From e0d7f527ef47be4da27c3dbf32db8756fa5449f9 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 6 Nov 2011 10:56:44 +0100 Subject: hurd/libpthread.git 76af844177c2bacd7a39e865cf0bbe484a68ddb8 --- open_issues/libpthread_pthread_key_create_reuse.mdwn | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 open_issues/libpthread_pthread_key_create_reuse.mdwn diff --git a/open_issues/libpthread_pthread_key_create_reuse.mdwn b/open_issues/libpthread_pthread_key_create_reuse.mdwn deleted file mode 100644 index ea6a0abf..00000000 --- a/open_issues/libpthread_pthread_key_create_reuse.mdwn +++ /dev/null @@ -1,18 +0,0 @@ -[[!meta copyright="Copyright © 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 -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="libpthread vs. licq"]] - -[[!tag open_issue_libpthread]] - -IRC, FreeNode, #hurd, 2011-07-02: - - < youpi> licq has a failing threadspecific issue - < youpi> [ FAILED ] ThreadSpecificData.dataDeletedWhenThreadExits -- cgit v1.2.3 From 43553ba1b27adcf2147c729c22bc9dd71deaca64 Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Sun, 6 Nov 2011 13:22:55 +0100 Subject: news: added 69,9% of deb pkgs + new boxes. --- contributing/web_pages/news/moth_next.mdwn | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contributing/web_pages/news/moth_next.mdwn b/contributing/web_pages/news/moth_next.mdwn index 346dd95a..0e09abc1 100644 --- a/contributing/web_pages/news/moth_next.mdwn +++ b/contributing/web_pages/news/moth_next.mdwn @@ -90,4 +90,8 @@ And … * mcsim memory allocator project + * 69.9% of debian packages [are now available for the Hurd](https://buildd.debian.org/stats/graph-big.png), so we’re getting closer to the goal of reaching 85%. If you can port debian packages and want to help the Hurd, this is the perfect time to get in contact and make your favorite missing packge build on the Hurd. + + * buildd, porterbox and public boxes at sceen.net, provided by Richard + """]] -- cgit v1.2.3 From 9c0ac8a8febc9d9037991dfebf4eb2f5affd322f Mon Sep 17 00:00:00 2001 From: mcsim Date: Sun, 6 Nov 2011 13:28:37 +0100 Subject: --- user/Maksym_Planeta.mdwn | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 user/Maksym_Planeta.mdwn diff --git a/user/Maksym_Planeta.mdwn b/user/Maksym_Planeta.mdwn new file mode 100644 index 00000000..64dc6e19 --- /dev/null +++ b/user/Maksym_Planeta.mdwn @@ -0,0 +1,19 @@ +[[!meta copyright="Copyright © 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 +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]]."]]"""]] + +[[!toc]] +Notes on tmpfs +============== + +#Debugging + +To debug tmpfs, using libraries from "$PWD"/lib and trace rpc: + +settrans -ca foo /usr/bin/env LD_LIBRARY_PATH="$PWD"/lib utils/rpctrace -I /usr/share/msgids/ tmpfs/tmpfs 1M -- cgit v1.2.3 From 821e73fe8a9cd60afc286187fd1773c7b5a90701 Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Sun, 6 Nov 2011 14:19:11 +0100 Subject: link for porting --- contributing/web_pages/news/moth_next.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing/web_pages/news/moth_next.mdwn b/contributing/web_pages/news/moth_next.mdwn index 0e09abc1..b563d308 100644 --- a/contributing/web_pages/news/moth_next.mdwn +++ b/contributing/web_pages/news/moth_next.mdwn @@ -90,7 +90,7 @@ And … * mcsim memory allocator project - * 69.9% of debian packages [are now available for the Hurd](https://buildd.debian.org/stats/graph-big.png), so we’re getting closer to the goal of reaching 85%. If you can port debian packages and want to help the Hurd, this is the perfect time to get in contact and make your favorite missing packge build on the Hurd. + * 69.9% of debian packages [are now available for the Hurd](https://buildd.debian.org/stats/graph-big.png), so we’re getting closer to the goal of reaching 85%. If you can port debian packages and want to help the Hurd, this is the perfect time to get in contact and [port your favorite missing package](http://www.debian.org/ports/hurd/hurd-devel-debian) to the Hurd. * buildd, porterbox and public boxes at sceen.net, provided by Richard -- cgit v1.2.3 From a71770c23a7f889d24a4fa6327318c188b2a625f Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Sun, 6 Nov 2011 16:16:24 +0100 Subject: news: q3: mcsim memory allocator project --- contributing/web_pages/news/moth_next.mdwn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contributing/web_pages/news/moth_next.mdwn b/contributing/web_pages/news/moth_next.mdwn index b563d308..c878e7d4 100644 --- a/contributing/web_pages/news/moth_next.mdwn +++ b/contributing/web_pages/news/moth_next.mdwn @@ -88,10 +88,10 @@ And … [Hello World translator in Java](https://github.com/jeremie-koenig/hurd-java/blob/master/HelloMach.java), though still pretty low-level. - * mcsim memory allocator project + * Maksym Planeta replaced GNUmach’s old zalloc memory allocator with the new balloc from Richard Braun ([cleanup commit](http://git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=8e78f3c0674cedc55953bf36d88c664ea80380a2)), which handles slabs and should waste less memory than zalloc. Also balloc has a cpu cache level, so it should work faster on SMP systems, once we get up do date SMP CPU drivers for GNUmach. - * 69.9% of debian packages [are now available for the Hurd](https://buildd.debian.org/stats/graph-big.png), so we’re getting closer to the goal of reaching 85%. If you can port debian packages and want to help the Hurd, this is the perfect time to get in contact and [port your favorite missing package](http://www.debian.org/ports/hurd/hurd-devel-debian) to the Hurd. + * 69.96% of debian packages [are now available for the Hurd](https://buildd.debian.org/stats/graph-big.png), so we’re getting closer to the goal of reaching 85%. If you can port debian packages and want to help the Hurd, this is the perfect time to get in contact and [port your favorite missing package](http://www.debian.org/ports/hurd/hurd-devel-debian) to the Hurd. - * buildd, porterbox and public boxes at sceen.net, provided by Richard + * buildd, porterbox and public boxes at sceen.net, provided by Richard Braun. """]] -- cgit v1.2.3 From 8b99a1ed3988a3190bb1015f744f058e4f79393e Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Sun, 6 Nov 2011 16:19:03 +0100 Subject: news: q3: M-q --- contributing/web_pages/news/moth_next.mdwn | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/contributing/web_pages/news/moth_next.mdwn b/contributing/web_pages/news/moth_next.mdwn index c878e7d4..c0467afa 100644 --- a/contributing/web_pages/news/moth_next.mdwn +++ b/contributing/web_pages/news/moth_next.mdwn @@ -88,9 +88,20 @@ And … [Hello World translator in Java](https://github.com/jeremie-koenig/hurd-java/blob/master/HelloMach.java), though still pretty low-level. - * Maksym Planeta replaced GNUmach’s old zalloc memory allocator with the new balloc from Richard Braun ([cleanup commit](http://git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=8e78f3c0674cedc55953bf36d88c664ea80380a2)), which handles slabs and should waste less memory than zalloc. Also balloc has a cpu cache level, so it should work faster on SMP systems, once we get up do date SMP CPU drivers for GNUmach. - - * 69.96% of debian packages [are now available for the Hurd](https://buildd.debian.org/stats/graph-big.png), so we’re getting closer to the goal of reaching 85%. If you can port debian packages and want to help the Hurd, this is the perfect time to get in contact and [port your favorite missing package](http://www.debian.org/ports/hurd/hurd-devel-debian) to the Hurd. + * Maksym Planeta replaced GNUmach’s old zalloc memory allocator with + the new balloc from Richard Braun + ([cleanup commit](http://git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=8e78f3c0674cedc55953bf36d88c664ea80380a2)), + which handles slabs and should waste less memory than zalloc. Also + balloc has a cpu cache level, so it should work faster on SMP + systems, once we get up do date SMP CPU drivers for GNUmach. + + * 69.96% of debian packages + [are now available for the Hurd](https://buildd.debian.org/stats/graph-big.png), + so we’re getting closer to the goal of reaching 85%. If you can + port debian packages and want to help the Hurd, this is the + perfect time to get in contact and + [port your favorite missing package](http://www.debian.org/ports/hurd/hurd-devel-debian) + to the Hurd. * buildd, porterbox and public boxes at sceen.net, provided by Richard Braun. -- cgit v1.2.3 From acd0b1f43f08a1f84a07bf55894fced35298b679 Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Sun, 6 Nov 2011 16:26:14 +0100 Subject: news: q3: balloc: use a later integration commit. --- contributing/web_pages/news/moth_next.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing/web_pages/news/moth_next.mdwn b/contributing/web_pages/news/moth_next.mdwn index c0467afa..b4c35280 100644 --- a/contributing/web_pages/news/moth_next.mdwn +++ b/contributing/web_pages/news/moth_next.mdwn @@ -90,7 +90,7 @@ And … * Maksym Planeta replaced GNUmach’s old zalloc memory allocator with the new balloc from Richard Braun - ([cleanup commit](http://git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=8e78f3c0674cedc55953bf36d88c664ea80380a2)), + ([integration commit](http://git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=50d073c5ef0feb1676606d0068abf626e8297cd7)), which handles slabs and should waste less memory than zalloc. Also balloc has a cpu cache level, so it should work faster on SMP systems, once we get up do date SMP CPU drivers for GNUmach. -- cgit v1.2.3 From d9f2d407821a620978706f7a5a6713c1572f6274 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlZbobQoOJvtnsfNjUK-VFlTlrT7GFvCc0" Date: Sun, 6 Nov 2011 20:13:39 +0100 Subject: --- public_hurd_boxen.mdwn | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/public_hurd_boxen.mdwn b/public_hurd_boxen.mdwn index 5a281368..54238080 100644 --- a/public_hurd_boxen.mdwn +++ b/public_hurd_boxen.mdwn @@ -28,6 +28,10 @@ image|hurd/running/qemu]]. "[[bddebian]]","goober","Debian GNU/Hurd","?" "[[bddebian]]","grubber","Debian GNU/Hurd","Celeron 2.2 GHz; 554 MiB","Xen domU on [[zenhost]]; for experimental stuff" "[[bddebian]]","[[zenhost]]","Debian GNU/Linux","Celeron 2.2 GHz","Xen dom0 for several hosts" +"[[sceen]]","darnassus","Debian GNU/Hurd","Core i5 3.1 GHz, 1.8 GiB","KVM guest on shattrath; public hurdbox" +"[[sceen]]","ironforge","Debian GNU/Hurd","Core i5 3.1 GHz, 1.8 GiB","KVM guest on shattrath; Debian buildd" +"[[sceen]]","exodar","Debian GNU/Hurd","Core i5 3.1 GHz, 1.8 GiB","KVM guest on shattrath; Debian porterbox" +"[[sceen]]","shattrath","Debian GNU/Linux","Core i5 3.1 GHz","KVM host" "Debian","[strauss.debian.net](http://strauss.debian.net/ssh)","Debian GNU/Hurd",,"all Debian Developers have access" """]] -- cgit v1.2.3 From 71d2293e70997d147c41585268dda8f6a9775400 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlZbobQoOJvtnsfNjUK-VFlTlrT7GFvCc0" Date: Sun, 6 Nov 2011 20:19:01 +0100 Subject: --- sceen.mdwn | 1 + 1 file changed, 1 insertion(+) create mode 100644 sceen.mdwn diff --git a/sceen.mdwn b/sceen.mdwn new file mode 100644 index 00000000..1e4e17ce --- /dev/null +++ b/sceen.mdwn @@ -0,0 +1 @@ + -- cgit v1.2.3 From c4b6c1d7714426b9ceb204b5a26553aafdd5a265 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlZbobQoOJvtnsfNjUK-VFlTlrT7GFvCc0" Date: Sun, 6 Nov 2011 20:23:57 +0100 Subject: --- public_hurd_boxen.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public_hurd_boxen.mdwn b/public_hurd_boxen.mdwn index 54238080..c395da7a 100644 --- a/public_hurd_boxen.mdwn +++ b/public_hurd_boxen.mdwn @@ -35,7 +35,7 @@ image|hurd/running/qemu]]. "Debian","[strauss.debian.net](http://strauss.debian.net/ssh)","Debian GNU/Hurd",,"all Debian Developers have access" """]] -To request an account on the *[[bddebian]]* machines either contact +To request an account on the *[[bddebian]]* or *[[sceen]]* machines, either contact *tschwinge* (other people might also be able to help) in [[IRC]] or send email to (please include your desired user name and public SSH key). Also use these contact -- cgit v1.2.3 From f8dc61388c5c7ea1bc2bf1984d3c85de76c8c837 Mon Sep 17 00:00:00 2001 From: mcsim Date: Sun, 6 Nov 2011 21:10:45 +0100 Subject: --- user/Maksym_Planeta.mdwn | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/user/Maksym_Planeta.mdwn b/user/Maksym_Planeta.mdwn index 64dc6e19..3872bc68 100644 --- a/user/Maksym_Planeta.mdwn +++ b/user/Maksym_Planeta.mdwn @@ -9,8 +9,27 @@ is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!toc]] -Notes on tmpfs -============== +#Notes on tmpfs + +## mach-defpager + + : 1. On every system there is a ``default pager'' (mach-defpager). That one is responsible + for all ``anonymous memory''. For example, when you do malloc(10 MiB), and then there is memory pressure, + this 10 MiB memory region is backed by the default pager, whose job then is it to provide the backing store for this. + : This is what commonly would be known as a swap partition. + : And this is also the way tmpfs works (as I understand it). + : malloc(10 MiB) can also be mmap(MAP_ANONYMOUS, 10 MIB); that's the same, essentially. + : Now, for ext2fs or any other disk-based file system, this is different: + : The ext2fs translator implements its own backing store, namely it accesses the disk for storing + changed file content, or to read in data from disk if a new file is opened. + +## Steps + +1. Find out what causes crashes in tmpfs with defpager + +2. Write own pager + + 6.11.11 Reading/writing for files that fit in vm_page_size works #Debugging -- cgit v1.2.3 From d5e2cfcb3050f33d3662fa02858e8a8e100400c6 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 6 Nov 2011 21:28:43 +0100 Subject: hurd/incubator.git 5e422eff99f2381b4ea649620da84596cd27abd7 --- open_issues/dde.mdwn | 23 +++-------------------- open_issues/dde/137784 | 43 ------------------------------------------- 2 files changed, 3 insertions(+), 63 deletions(-) delete mode 100644 open_issues/dde/137784 diff --git a/open_issues/dde.mdwn b/open_issues/dde.mdwn index 9e2ec742..e2cff94f 100644 --- a/open_issues/dde.mdwn +++ b/open_issues/dde.mdwn @@ -8,25 +8,8 @@ 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]]."]]"""]] -[[General Information|/dde]]. - - -# IRC, freenode, #hurd, 2011-10-18 +[[!tag open_issue_hurd open_issue_gnumach]] -[[!tag open_issue_hurd]] - - [DDE crash, or similar] - it's fake_local_irq_disable_flags(), then raw_local_irq_disable(), - then raw_local_irq_restore(), which *does not* release the cli_lock - the "prove it" comment is (as I expected) completely wrong - npnth: http://paste.debian.net/137784/ - -[[137784]] +[[General Information|/dde]]. - could you try this patch ? - (I've not even tried to build it) - youpi: speaking of which, it still seems to hang :/ I'll 1) double - check it applied correctly and 2) get a gdb output if it did - npnth: could you add printing the value of unlock_refcnt? - so we can check what's happening - unlock_refcnt is at 0, interesting +Still waiting for interface finalization and proper integration. diff --git a/open_issues/dde/137784 b/open_issues/dde/137784 deleted file mode 100644 index 1529465b..00000000 --- a/open_issues/dde/137784 +++ /dev/null @@ -1,43 +0,0 @@ -diff --git a/libdde_linux26/lib/src/arch/l4/cli_sti.c b/libdde_linux26/lib/src/arch/l4/cli_sti.c -index 051f259..6a8c460 100644 ---- a/libdde_linux26/lib/src/arch/l4/cli_sti.c -+++ b/libdde_linux26/lib/src/arch/l4/cli_sti.c -@@ -4,6 +4,8 @@ - - /* IRQ lock reference counter */ - static atomic_t _refcnt = ATOMIC_INIT(0); -+/* Refcnt value at which unlocking the cli_lock (it's not always 0) */ -+static int unlock_refcnt; - static ddekit_lock_t cli_lock; - - /* Check whether IRQs are currently disabled. -@@ -57,9 +59,6 @@ void fake_local_irq_restore(unsigned long flags) - /* Store the current flags state. - * - * This is done by returning the current refcnt. -- * -- * XXX: Up to now, flags was always 0 at this point and -- * I assume that this is always the case. Prove? - */ - unsigned long __raw_local_save_flags(void) - { -@@ -82,7 +81,7 @@ void raw_local_irq_restore(unsigned long flags) - { - Assert(cli_lock != NULL); - atomic_set(&_refcnt, flags); -- if (flags == 0) -+ if (flags == unlock_refcnt) - ddekit_lock_unlock(&cli_lock); - } - -@@ -95,7 +94,9 @@ void raw_local_irq_disable(void) - if (cli_lock == NULL) - ddekit_lock_init_unlocked(&cli_lock); - -- nested_lock(cli_lock); -+ if (nested_lock(cli_lock)) -+ /* Tell the corresponding restorer to release cli_lock */ -+ unlock_refcnt = atomic_read(&_refcnt); - atomic_inc(&_refcnt); - } - -- cgit v1.2.3 From efa018157b7b65efb8b3b4cf212c6d80c2e52fd6 Mon Sep 17 00:00:00 2001 From: Arne Babenhauserheide Date: Sun, 6 Nov 2011 21:29:53 +0100 Subject: news: q3: sceen boxes. --- contributing/web_pages/news/moth_next.mdwn | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/contributing/web_pages/news/moth_next.mdwn b/contributing/web_pages/news/moth_next.mdwn index b4c35280..cd03a366 100644 --- a/contributing/web_pages/news/moth_next.mdwn +++ b/contributing/web_pages/news/moth_next.mdwn @@ -103,6 +103,9 @@ And … [port your favorite missing package](http://www.debian.org/ports/hurd/hurd-devel-debian) to the Hurd. - * buildd, porterbox and public boxes at sceen.net, provided by Richard Braun. + * And Richard Braun contributed a new + [[buildd,_porterbox_and_public_box|public_hurd_boxen]] via + sceen.net, making it easier to test the Hurd without much setup as + well as improving debian packaging. """]] -- cgit v1.2.3 From 015294a039550442ae58fe69b9b14acad11dee25 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 6 Nov 2011 21:44:43 +0100 Subject: sceen -> public_hurd_boxen/sceen --- public_hurd_boxen/sceen.mdwn | 11 +++++++++++ sceen.mdwn | 1 - 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 public_hurd_boxen/sceen.mdwn delete mode 100644 sceen.mdwn diff --git a/public_hurd_boxen/sceen.mdwn b/public_hurd_boxen/sceen.mdwn new file mode 100644 index 00000000..25416857 --- /dev/null +++ b/public_hurd_boxen/sceen.mdwn @@ -0,0 +1,11 @@ +[[!meta copyright="Copyright © 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 +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]]."]]"""]] + + diff --git a/sceen.mdwn b/sceen.mdwn deleted file mode 100644 index 1e4e17ce..00000000 --- a/sceen.mdwn +++ /dev/null @@ -1 +0,0 @@ - -- cgit v1.2.3 From aabfaee0ff59555d4e18d263d1ec760e34d10f2e Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 6 Nov 2011 21:59:49 +0100 Subject: public_hurd_boxen: Update some more for Richard's boxen. Also drop the toggle, as it was only creating confusion. --- public_hurd_boxen.mdwn | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/public_hurd_boxen.mdwn b/public_hurd_boxen.mdwn index c395da7a..6bce8ffb 100644 --- a/public_hurd_boxen.mdwn +++ b/public_hurd_boxen.mdwn @@ -28,7 +28,7 @@ image|hurd/running/qemu]]. "[[bddebian]]","goober","Debian GNU/Hurd","?" "[[bddebian]]","grubber","Debian GNU/Hurd","Celeron 2.2 GHz; 554 MiB","Xen domU on [[zenhost]]; for experimental stuff" "[[bddebian]]","[[zenhost]]","Debian GNU/Linux","Celeron 2.2 GHz","Xen dom0 for several hosts" -"[[sceen]]","darnassus","Debian GNU/Hurd","Core i5 3.1 GHz, 1.8 GiB","KVM guest on shattrath; public hurdbox" +"[[sceen]]","darnassus","Debian GNU/Hurd","Core i5 3.1 GHz, 1.8 GiB","KVM guest on shattrath; public Hurd box" "[[sceen]]","ironforge","Debian GNU/Hurd","Core i5 3.1 GHz, 1.8 GiB","KVM guest on shattrath; Debian buildd" "[[sceen]]","exodar","Debian GNU/Hurd","Core i5 3.1 GHz, 1.8 GiB","KVM guest on shattrath; Debian porterbox" "[[sceen]]","shattrath","Debian GNU/Linux","Core i5 3.1 GHz","KVM host" @@ -45,14 +45,11 @@ addresses for requesting support with respect to software installations, etc. For easy access, you should append your public SSH key(s) to `~/.ssh/authorized_keys` on the remote machine. -Also, add the [[!toggle id=bddebian_ssh_config text="following stanza (click -here to toggle display)"]] to the `~/.ssh/config` file of the machine you're -connecting from. - -[[!toggleable id=bddebian_ssh_config text=""" +Also, add the following stanza to the `~/.ssh/config` file of the machine +you're connecting from. # Stanza from , - # 2010-12-15. + # 2011-11-06. Host blubber.bddebian.com blubber HostName blubber.bddebian.com @@ -84,13 +81,16 @@ connecting from. Port 2260 Host blubber.bddebian.com blubber grubber.bddebian.com grubber snubber.bddebian.com snubber - ProxyCommand ssh zenhost socat - TCP4:%h:%p + # Tunnel through zenhost. + ProxyCommand ssh zenhost exec socat - TCP4:%h:%p Host *.bddebian.com blubber clubber flubber gnubber goober grubber snubber zenhost + # Don't worry about the IP address (dial-up connection). CheckHostIP no User [user name] - -The `CheckHostIP` statement is for not having to worry about the machines's IP -addresses changing (due to being behind a dial-up connection). - -"""]] + + Host darnassus.sceen.net darnassus + HostName darnassus.sceen.net + + Host *.sceen.net darnassus + User [user name] -- cgit v1.2.3 From 0bfe39bd20bbec4d2b61f46d6d6b62a98890b1e7 Mon Sep 17 00:00:00 2001 From: mcsim Date: Sun, 6 Nov 2011 22:05:05 +0100 Subject: --- user/Maksym_Planeta.mdwn | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/user/Maksym_Planeta.mdwn b/user/Maksym_Planeta.mdwn index 3872bc68..477f11ed 100644 --- a/user/Maksym_Planeta.mdwn +++ b/user/Maksym_Planeta.mdwn @@ -35,4 +35,5 @@ License|/fdl]]."]]"""]] To debug tmpfs, using libraries from "$PWD"/lib and trace rpc: -settrans -ca foo /usr/bin/env LD_LIBRARY_PATH="$PWD"/lib utils/rpctrace -I /usr/share/msgids/ tmpfs/tmpfs 1M + settrans -ca foo /usr/bin/env LD_LIBRARY_PATH="$PWD"/lib utils/rpctrace -I /usr/share/msgids/ tmpfs/tmpfs 1M + LD_LIBRARY_PATH="$PWD"/lib gdb tmpfs/tmpfs 698 -- cgit v1.2.3 From 19a1db1623afd94d91570b1ec3ebf2d24c7b4f08 Mon Sep 17 00:00:00 2001 From: mcsim Date: Tue, 8 Nov 2011 09:26:15 +0100 Subject: --- user/Maksym_Planeta.mdwn | 3 +++ 1 file changed, 3 insertions(+) diff --git a/user/Maksym_Planeta.mdwn b/user/Maksym_Planeta.mdwn index 477f11ed..e1a4ece3 100644 --- a/user/Maksym_Planeta.mdwn +++ b/user/Maksym_Planeta.mdwn @@ -27,9 +27,12 @@ License|/fdl]]."]]"""]] 1. Find out what causes crashes in tmpfs with defpager +http://www.gnu.org/s/hurd/hurd/translator/tmpfs/notes_various.html + 2. Write own pager 6.11.11 Reading/writing for files that fit in vm_page_size works + 7.11.11 Works for any size. #Debugging -- cgit v1.2.3 From 8efeff1b878761f8a212aa952c3057b5bd1ecdcd Mon Sep 17 00:00:00 2001 From: mcsim Date: Tue, 8 Nov 2011 10:05:51 +0100 Subject: --- user/Maksym_Planeta.mdwn | 49 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/user/Maksym_Planeta.mdwn b/user/Maksym_Planeta.mdwn index e1a4ece3..f9436668 100644 --- a/user/Maksym_Planeta.mdwn +++ b/user/Maksym_Planeta.mdwn @@ -23,20 +23,67 @@ License|/fdl]]."]]"""]] : The ext2fs translator implements its own backing store, namely it accesses the disk for storing changed file content, or to read in data from disk if a new file is opened. +[[defpager|http://www.bddebian.com:8888/~hurd-web/user/Maksym_Planeta/#defpager81111]] + ## Steps 1. Find out what causes crashes in tmpfs with defpager -http://www.gnu.org/s/hurd/hurd/translator/tmpfs/notes_various.html +[[http://www.gnu.org/s/hurd/hurd/translator/tmpfs/notes_various.html]] 2. Write own pager 6.11.11 Reading/writing for files that fit in vm_page_size works + 7.11.11 Works for any size. +3. Make links work + + Symlinks behavior: [[links|http://www.bddebian.com:8888/~hurd-web/user/Maksym_Planeta/#links81111]] + #Debugging To debug tmpfs, using libraries from "$PWD"/lib and trace rpc: settrans -ca foo /usr/bin/env LD_LIBRARY_PATH="$PWD"/lib utils/rpctrace -I /usr/share/msgids/ tmpfs/tmpfs 1M LD_LIBRARY_PATH="$PWD"/lib gdb tmpfs/tmpfs 698 + +#Conversations + +## 8.11.11 + +### links + (10:29:11) braunr: mcsim: ln -s foo/bar foo/baz means the link name is baz in the foo directory, + and its target (relative to its directory) is foo/bar (which would mean /tmp/foo/foo/bar in canonical form) + (10:29:42) braunr: youpi: tschwinge: what did ludovic achieve ? + (10:30:06) tschwinge: mcsim: As Richard says, symlink targets are always relative to the directory they're contained in. + (10:30:51) tschwinge: braunr: This Hydra/Nix (I wtill mix it all up) thing is kind of a package managing system. + (10:31:17) tschwinge: He has written scripts for bootstrapping a Hurd toolchain. + (10:31:26) braunr: oh ok + (10:31:27) mcsim: so, if I want to create link in cd, first I need to cd there? + (10:31:28) tschwinge: And then uses that to build a whole bootable image. + (10:31:36) mcsim: in foo* + (10:31:36) braunr: mcsim: just provide the right paths + (10:32:11) braunr: $ touch foo/bar + (10:32:14) braunr: $ ln -s bar foo/baz + (10:32:32) braunr: bar + (10:32:35) braunr: baz -> bar + +### defpager + (10:36:14) mcsim: who else uses defpager besides tmpfs and kernel? + (10:36:27) braunr: normally, nothing directly + (10:37:04) mcsim: than why tmpfs should use defpager? + (10:37:22) braunr: it's its backend + (10:37:28) braunr: backign store rather + (10:37:38) braunr: the backing store of most file systems are partitions + (10:37:44) braunr: tmpfs has none, it uses the swap space + (10:39:31) mcsim: if we allocate memory for tmpfs using vm_allocate, will it be able to use swap partition? + (10:39:56) braunr: it should + (10:40:27) braunr: vm_allocate just maps anonymous memory + (10:41:27) braunr: anonymous memory uses swap space as its backing store too + (10:43:47) braunr: but be aware that this part of the vm system is known to have deficiencies + (10:44:14) braunr: which is why all mach based implementations have rewritten their default pager + (10:44:41) youpi: ArneBab: the intro is already in in my qemu image + (10:45:11) mcsim: what kind of deficiencies? + (10:45:16) braunr: bugs + (10:45:39) braunr: and design issues, making anonymous memory fragmentation horrible -- cgit v1.2.3 From 04f195d9f689c55165323eec55d5eea9d78c7614 Mon Sep 17 00:00:00 2001 From: mcsim Date: Tue, 8 Nov 2011 14:59:37 +0100 Subject: --- user/Maksym_Planeta.mdwn | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/user/Maksym_Planeta.mdwn b/user/Maksym_Planeta.mdwn index f9436668..a72c277b 100644 --- a/user/Maksym_Planeta.mdwn +++ b/user/Maksym_Planeta.mdwn @@ -87,3 +87,14 @@ To debug tmpfs, using libraries from "$PWD"/lib and trace rpc: (10:45:11) mcsim: what kind of deficiencies? (10:45:16) braunr: bugs (10:45:39) braunr: and design issues, making anonymous memory fragmentation horrible + + ... + + (15:23:33) antrik: mcsim: vm_allocate doesn't return a memory object; so it can't be passed to clients for mmap() + (15:50:37) mcsim: antrik: I use vm_allocate in pager_read_page + (15:54:43) antrik: mcsim: well, that means that you have to actually implement a pager yourself + (15:56:10) antrik: also, when the kernel asks the pager to write back some pages, it expects the memory to become free. + if you are "paging" to ordinary anonymous memory, this doesn't happen; so I expect it to have a very bad effect + on system performance + (15:56:54) antrik: both can be avoided by just passing a real anonymous memory object, i.e. one provided by the defpager + (15:57:07) antrik: only problem is that the current defpager implementation can't really handle that... -- cgit v1.2.3 From 2fc47a0b3091bb62a206cfdc7839bda4c5fe13b3 Mon Sep 17 00:00:00 2001 From: mcsim Date: Tue, 8 Nov 2011 19:22:42 +0100 Subject: --- user/Maksym_Planeta.mdwn | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/user/Maksym_Planeta.mdwn b/user/Maksym_Planeta.mdwn index a72c277b..707507a7 100644 --- a/user/Maksym_Planeta.mdwn +++ b/user/Maksym_Planeta.mdwn @@ -48,6 +48,12 @@ To debug tmpfs, using libraries from "$PWD"/lib and trace rpc: settrans -ca foo /usr/bin/env LD_LIBRARY_PATH="$PWD"/lib utils/rpctrace -I /usr/share/msgids/ tmpfs/tmpfs 1M LD_LIBRARY_PATH="$PWD"/lib gdb tmpfs/tmpfs 698 +For debugging ext2fs: + settrans --create --active ramdisk0 /hurd/storeio -T copy zero:32M && \ + /sbin/mkfs.ext2 -F -b 4096 ramdisk0 && \ + settrans --active --orphan ramdisk0 /usr/bin/env LD_LIBRARY_PATH="$PWD"/lib utils/rpctrace -I /usr/share/msgids/ \ + ext2fs/ext2fs.static ramdisk0 + #Conversations ## 8.11.11 -- cgit v1.2.3 From 9b8d20762549403e542d44008e0d28ba76901527 Mon Sep 17 00:00:00 2001 From: mcsim Date: Tue, 8 Nov 2011 20:41:00 +0100 Subject: --- user/Maksym_Planeta.mdwn | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/user/Maksym_Planeta.mdwn b/user/Maksym_Planeta.mdwn index 707507a7..6f9bf3ec 100644 --- a/user/Maksym_Planeta.mdwn +++ b/user/Maksym_Planeta.mdwn @@ -13,16 +13,6 @@ License|/fdl]]."]]"""]] ## mach-defpager - : 1. On every system there is a ``default pager'' (mach-defpager). That one is responsible - for all ``anonymous memory''. For example, when you do malloc(10 MiB), and then there is memory pressure, - this 10 MiB memory region is backed by the default pager, whose job then is it to provide the backing store for this. - : This is what commonly would be known as a swap partition. - : And this is also the way tmpfs works (as I understand it). - : malloc(10 MiB) can also be mmap(MAP_ANONYMOUS, 10 MIB); that's the same, essentially. - : Now, for ext2fs or any other disk-based file system, this is different: - : The ext2fs translator implements its own backing store, namely it accesses the disk for storing - changed file content, or to read in data from disk if a new file is opened. - [[defpager|http://www.bddebian.com:8888/~hurd-web/user/Maksym_Planeta/#defpager81111]] ## Steps @@ -41,6 +31,21 @@ License|/fdl]]."]]"""]] Symlinks behavior: [[links|http://www.bddebian.com:8888/~hurd-web/user/Maksym_Planeta/#links81111]] + 8.11.11 Symlinks work. + +4. Control of used space by tmpfs. + + TODO: Make tmpfs use not more space than it was allowed. + +5. Thread safety. + + TODO: During execution tmpfs hangs in random places. The most possible is variant is deadlocks, + because nothing was undertaken for thread safety. + +6. After sometime of inactivity tmpfs exits. + + TODO: Find out why and correct this. + #Debugging To debug tmpfs, using libraries from "$PWD"/lib and trace rpc: @@ -49,6 +54,7 @@ To debug tmpfs, using libraries from "$PWD"/lib and trace rpc: LD_LIBRARY_PATH="$PWD"/lib gdb tmpfs/tmpfs 698 For debugging ext2fs: + settrans --create --active ramdisk0 /hurd/storeio -T copy zero:32M && \ /sbin/mkfs.ext2 -F -b 4096 ramdisk0 && \ settrans --active --orphan ramdisk0 /usr/bin/env LD_LIBRARY_PATH="$PWD"/lib utils/rpctrace -I /usr/share/msgids/ \ @@ -76,6 +82,20 @@ For debugging ext2fs: (10:32:35) braunr: baz -> bar ### defpager + + earlier: + : 1. On every system there is a ``default pager'' (mach-defpager). That one is responsible + for all ``anonymous memory''. For example, when you do malloc(10 MiB), and then there is memory pressure, + this 10 MiB memory region is backed by the default pager, whose job then is it to provide the backing store for this. + : This is what commonly would be known as a swap partition. + : And this is also the way tmpfs works (as I understand it). + : malloc(10 MiB) can also be mmap(MAP_ANONYMOUS, 10 MIB); that's the same, essentially. + : Now, for ext2fs or any other disk-based file system, this is different: + : The ext2fs translator implements its own backing store, namely it accesses the disk for storing + changed file content, or to read in data from disk if a new file is opened. + + ... + (10:36:14) mcsim: who else uses defpager besides tmpfs and kernel? (10:36:27) braunr: normally, nothing directly (10:37:04) mcsim: than why tmpfs should use defpager? @@ -89,7 +109,6 @@ For debugging ext2fs: (10:41:27) braunr: anonymous memory uses swap space as its backing store too (10:43:47) braunr: but be aware that this part of the vm system is known to have deficiencies (10:44:14) braunr: which is why all mach based implementations have rewritten their default pager - (10:44:41) youpi: ArneBab: the intro is already in in my qemu image (10:45:11) mcsim: what kind of deficiencies? (10:45:16) braunr: bugs (10:45:39) braunr: and design issues, making anonymous memory fragmentation horrible -- cgit v1.2.3 From 7f37209273b41dcebd92d02fce63a21ee8a4c0c4 Mon Sep 17 00:00:00 2001 From: mcsim Date: Thu, 10 Nov 2011 20:07:21 +0100 Subject: --- user/Maksym_Planeta.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user/Maksym_Planeta.mdwn b/user/Maksym_Planeta.mdwn index 6f9bf3ec..0eece92d 100644 --- a/user/Maksym_Planeta.mdwn +++ b/user/Maksym_Planeta.mdwn @@ -51,7 +51,7 @@ License|/fdl]]."]]"""]] To debug tmpfs, using libraries from "$PWD"/lib and trace rpc: settrans -ca foo /usr/bin/env LD_LIBRARY_PATH="$PWD"/lib utils/rpctrace -I /usr/share/msgids/ tmpfs/tmpfs 1M - LD_LIBRARY_PATH="$PWD"/lib gdb tmpfs/tmpfs 698 + LD_LIBRARY_PATH="$PWD"/lib gdb tmpfs/tmpfs `pidof tmpfs` For debugging ext2fs: -- cgit v1.2.3 From 3984c2a6245a35ac7f9255ea244e2784bb47551e Mon Sep 17 00:00:00 2001 From: mcsim Date: Thu, 10 Nov 2011 22:23:06 +0100 Subject: --- user/Maksym_Planeta.mdwn | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/user/Maksym_Planeta.mdwn b/user/Maksym_Planeta.mdwn index 0eece92d..34a42f43 100644 --- a/user/Maksym_Planeta.mdwn +++ b/user/Maksym_Planeta.mdwn @@ -60,6 +60,11 @@ For debugging ext2fs: settrans --active --orphan ramdisk0 /usr/bin/env LD_LIBRARY_PATH="$PWD"/lib utils/rpctrace -I /usr/share/msgids/ \ ext2fs/ext2fs.static ramdisk0 +#Questions + +1. What are sequence numbers? What are they used for? +2. Is there any way to debug mach-defpager? When I set breakpoint to any function in it, pager never breaks. + #Conversations ## 8.11.11 -- cgit v1.2.3 From 232748f5b3c41f39f2b930a53c232f837203dc8b Mon Sep 17 00:00:00 2001 From: mcsim Date: Thu, 10 Nov 2011 22:33:47 +0100 Subject: --- user/Maksym_Planeta.mdwn | 2 ++ 1 file changed, 2 insertions(+) diff --git a/user/Maksym_Planeta.mdwn b/user/Maksym_Planeta.mdwn index 34a42f43..a62ad4ff 100644 --- a/user/Maksym_Planeta.mdwn +++ b/user/Maksym_Planeta.mdwn @@ -15,6 +15,8 @@ License|/fdl]]."]]"""]] [[defpager|http://www.bddebian.com:8888/~hurd-web/user/Maksym_Planeta/#defpager81111]] +[[http://www.mail-archive.com/bug-hurd@gnu.org/msg18859.html]] + ## Steps 1. Find out what causes crashes in tmpfs with defpager -- cgit v1.2.3 From b6767d264036fb95465e80948dffcac2721e72df Mon Sep 17 00:00:00 2001 From: musial Date: Fri, 11 Nov 2011 15:20:18 +0100 Subject: --- user/musial.mdwn | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 user/musial.mdwn diff --git a/user/musial.mdwn b/user/musial.mdwn new file mode 100644 index 00000000..68669f84 --- /dev/null +++ b/user/musial.mdwn @@ -0,0 +1,24 @@ +[[!meta copyright="Copyright © 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 +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]]."]]"""]] + +HERE STARTS YOUR NEW CONTENT -- remove everything from here on, including this +line. + +By creating this page, you agree to assign copyright for your contribution to +the Free Software Foundation, . The Free Software +Foundation promises to always use a free documentation license (as per our +criteria of free documentation) when publishing your contribution. We grant +you back all your rights under copyright, including the rights to copy, modify, +and redistribute your contributions. + +We're requiring these copyright assignments, so that we'll easily be able to +include your contributions in official GNU documentation, such as the GNU Hurd +Reference Manual, etc. Send email to if there are +questions. -- cgit v1.2.3 From 062f8b1f8f488f68a1138c7f3af65582c3849536 Mon Sep 17 00:00:00 2001 From: musial Date: Fri, 11 Nov 2011 15:24:20 +0100 Subject: --- user/musial.mdwn | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/user/musial.mdwn b/user/musial.mdwn index 68669f84..9775f67f 100644 --- a/user/musial.mdwn +++ b/user/musial.mdwn @@ -8,17 +8,11 @@ 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]]."]]"""]] -HERE STARTS YOUR NEW CONTENT -- remove everything from here on, including this -line. +Robert Musial -By creating this page, you agree to assign copyright for your contribution to -the Free Software Foundation, . The Free Software -Foundation promises to always use a free documentation license (as per our -criteria of free documentation) when publishing your contribution. We grant -you back all your rights under copyright, including the rights to copy, modify, -and redistribute your contributions. +Cleveland, OH -We're requiring these copyright assignments, so that we'll easily be able to -include your contributions in official GNU documentation, such as the GNU Hurd -Reference Manual, etc. Send email to if there are -questions. +musial [at] gnu [dot] org + +http://musial.sdf.org +http://github.com/musial -- cgit v1.2.3 From 55fdf0e148448b59bf26449d62dce269da72e250 Mon Sep 17 00:00:00 2001 From: musial Date: Fri, 11 Nov 2011 16:20:43 +0100 Subject: --- user/musial.mdwn | 1 + 1 file changed, 1 insertion(+) diff --git a/user/musial.mdwn b/user/musial.mdwn index 9775f67f..24a526be 100644 --- a/user/musial.mdwn +++ b/user/musial.mdwn @@ -15,4 +15,5 @@ Cleveland, OH musial [at] gnu [dot] org http://musial.sdf.org + http://github.com/musial -- cgit v1.2.3 From bef3b8049a8bb5266b6d703e52f225599dead5b8 Mon Sep 17 00:00:00 2001 From: mcsim Date: Fri, 11 Nov 2011 22:05:08 +0100 Subject: --- user/Maksym_Planeta.mdwn | 3 +++ 1 file changed, 3 insertions(+) diff --git a/user/Maksym_Planeta.mdwn b/user/Maksym_Planeta.mdwn index a62ad4ff..c44a4fcb 100644 --- a/user/Maksym_Planeta.mdwn +++ b/user/Maksym_Planeta.mdwn @@ -23,6 +23,9 @@ License|/fdl]]."]]"""]] [[http://www.gnu.org/s/hurd/hurd/translator/tmpfs/notes_various.html]] +TODO: Consider deleting of parameter "port" in function mach-defpager/default_pager.c:pager_port_list_insert +since this parameter is unused + 2. Write own pager 6.11.11 Reading/writing for files that fit in vm_page_size works -- cgit v1.2.3