commit-hurd
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]