This is an automated email from the git hooks/post-receive script. sthibault pushed a commit to branch master in repository hurd.
commit 9c03dfed1b07416fa9a690d5be9c8d36d7535a1d Author: Samuel Thibault <[email protected]> Date: Sun Oct 30 20:36:34 2016 +0000 Fix console hang on console data paging out patches/console-wire.patch --- debian/changelog | 6 ++++++ debian/patches/console-wire.patch | 36 ++++++++++++++++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 43 insertions(+) diff --git a/debian/changelog b/debian/changelog index 2df5fd9..efbe5db 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +hurd (1:0.8.git20161023-3) unstable; urgency=medium + + * patches/console-wire.patch: Fix console hang on console data paging out. + + -- Samuel Thibault <[email protected]> Sun, 30 Oct 2016 20:36:29 +0000 + hurd (1:0.8.git20161023-2) unstable; urgency=medium * patches/time-fix.patch: Fix timestamp update on file close. diff --git a/debian/patches/console-wire.patch b/debian/patches/console-wire.patch new file mode 100644 index 0000000..109476a --- /dev/null +++ b/debian/patches/console-wire.patch @@ -0,0 +1,36 @@ +commit 81fb68fee81769d81c373e3af5a508d706b7e3d6 +Author: Samuel Thibault <[email protected]> +Date: Sun Oct 30 20:58:55 2016 +0100 + + wire console display pages + + to work around improper handling of getting paged out. + + * console/display.c (user_create): Call vm_wire() on the created user data. + +diff --git a/console/display.c b/console/display.c +index 98c70f5..ed5571e 100644 +--- a/console/display.c ++++ b/console/display.c +@@ -814,6 +814,21 @@ user_create (display_t display, uint32_t width, uint32_t height, + user->cursor.status = CONS_CURSOR_NORMAL; + conchar_memset (user->_matrix, chr, attr, + user->screen.width * user->screen.lines); ++ ++ /* FIXME: it seems we don't properly handle getting paged out. ++ * For now, just wire the pages to work around the issue. */ ++ { ++ mach_port_t host; ++ ++ error_t err = get_privileged_ports (&host, NULL); ++ if (err) ++ host = mach_host_self (); ++ ++ vm_wire (host, mach_task_self (), (vm_offset_t) user, ++ (vm_size_t) npages * vm_page_size, VM_PROT_READ); ++ if (host != mach_host_self ()) ++ mach_port_deallocate (mach_task_self (), host); ++ } + return 0; + } + diff --git a/debian/patches/series b/debian/patches/series index 90d99c6..b1806af 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -30,3 +30,4 @@ netdde_log.patch libports-iterate-refcount.patch exec_filename_rpctrace.patch time-fix.patch +console-wire.patch -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hurd/hurd.git
