[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[hurd] 01/01: Fix console hang on console data paging out
From: |
Samuel Thibault |
Subject: |
[hurd] 01/01: Fix console hang on console data paging out |
Date: |
Sun, 30 Oct 2016 20:37:52 +0000 |
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 <address@hidden>
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 <address@hidden> 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 <address@hidden>
+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