From 6326c31d81f5a2cbac2299991f387787315507db Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 11 Sep 2016 21:53:48 +0200 Subject: Give hint how to fix glibc stack unwinding from kernel --- microkernel/mach/gnumach/debugging.mdwn | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'microkernel/mach') diff --git a/microkernel/mach/gnumach/debugging.mdwn b/microkernel/mach/gnumach/debugging.mdwn index 164c4349..9534c758 100644 --- a/microkernel/mach/gnumach/debugging.mdwn +++ b/microkernel/mach/gnumach/debugging.mdwn @@ -53,9 +53,7 @@ To examine the backtrace of some given thread, use show all thread/u -to get the whole listing of all tasks and threads. You can then use trace/t or trace/tu to trace a specific thread. - -Unfortunately, userland and kernelland use the same range of addresses, so one can not get userland traces easily. The Xen port uses different ranges, and in that case one can use trace/u to also get the userland trace. +to get the whole listing of all tasks and threads. You can then use trace/t or trace/tu to trace a specific thread. gcc however uses the frame pointer as a normal register unless `-fno-omit-frame-pointer` is given. It can thus be useful to rebuild glibc with that option, by adding `extra_cflags = -fno-omit-frame-pointer` in `glibc/debian/sysdeps/hurd-i386.mk` To examine a variable, use nm /boot/gnumach to get the address of the variable (e.g. 0x123400), and use -- cgit v1.2.3 From 3f167deae4d61403c7921f8614273e042e929279 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Wed, 12 Oct 2016 11:44:57 +0200 Subject: Add link to recent discussion --- microkernel/mach/gnumach/projects/mach_5.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'microkernel/mach') diff --git a/microkernel/mach/gnumach/projects/mach_5.mdwn b/microkernel/mach/gnumach/projects/mach_5.mdwn index a4236ea5..b90f04d5 100644 --- a/microkernel/mach/gnumach/projects/mach_5.mdwn +++ b/microkernel/mach/gnumach/projects/mach_5.mdwn @@ -134,4 +134,4 @@ A prototype exists. ### Discussions * - +* -- cgit v1.2.3 From 81e2377c246cf5576f01d5f459f287c72d29e4b5 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Wed, 12 Oct 2016 10:10:19 +0200 Subject: Add interface for user-space drivers --- microkernel/mach/gnumach/projects/mach_5.mdwn | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'microkernel/mach') diff --git a/microkernel/mach/gnumach/projects/mach_5.mdwn b/microkernel/mach/gnumach/projects/mach_5.mdwn index b90f04d5..7b59170b 100644 --- a/microkernel/mach/gnumach/projects/mach_5.mdwn +++ b/microkernel/mach/gnumach/projects/mach_5.mdwn @@ -19,6 +19,8 @@ it, we could straighten out some of these problems. This page is a place to keep track of such changes. +[[!toc startlevel=2 levels=1]] + ## Protected payloads Protected payloads are a way of optimizing the receiver object lookup @@ -135,3 +137,27 @@ A prototype exists. * * + +## Interface for userspace drivers + +We need to provide an interface suitable for implementing drivers in +userspace: + +* A way to handle interrupts +* and a way to allocate memory suitable for DMA buffers + +### Required ABI changes + +None. This is a new interface. Debian/Hurd uses a non-standard rpc +id, so we do not change an existing procedure there. + +### Status + +A DDE-based solution is used in Debian/Hurd to provide network +drivers. A rump kernel prototype is implemented. These use a kernel +interface written by Zheng Da available in the +"master-user_level_drivers" branch in the GNU Mach repository. + +### Discussions + +* -- cgit v1.2.3