summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2016-02-07 13:05:34 +0100
committerJustus Winter <4winter@informatik.uni-hamburg.de>2016-02-07 13:05:34 +0100
commitffcee96d83adcc207614d93c6e50a6066f643ba8 (patch)
tree7dfbc5512413ae8e6da9cd21c5d41ebeafc09d02
parent7e5b5bbdc9d7d10b00357013b6c163c761a3a355 (diff)
add patch series
-rw-r--r--debian/patches/series3
-rw-r--r--debian/patches/vm-external-fixes0001-vm-remove-unused-field-from-struct-vm_external.patch33
-rw-r--r--debian/patches/vm-external-fixes0002-vm-allocate-a-large-map-for-all-objects-larger-than-.patch30
-rw-r--r--debian/patches/vm-external-fixes0003-vm-initialize-external-maps.patch25
4 files changed, 91 insertions, 0 deletions
diff --git a/debian/patches/series b/debian/patches/series
index 3b8e97b..dd9a644 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -14,3 +14,6 @@ sysenter0001-yyy-sysenter-prototype.patch
#vm-cache-policy0002-vm-keep-track-of-clean-pages.patch
#vm-cache-policy0003-vm-evict-clean-pages-first.patch
vm-cache-policy0001-VM-cache-policy-change.patch
+vm-external-fixes0001-vm-remove-unused-field-from-struct-vm_external.patch
+vm-external-fixes0002-vm-allocate-a-large-map-for-all-objects-larger-than-.patch
+vm-external-fixes0003-vm-initialize-external-maps.patch
diff --git a/debian/patches/vm-external-fixes0001-vm-remove-unused-field-from-struct-vm_external.patch b/debian/patches/vm-external-fixes0001-vm-remove-unused-field-from-struct-vm_external.patch
new file mode 100644
index 0000000..7e7eb8c
--- /dev/null
+++ b/debian/patches/vm-external-fixes0001-vm-remove-unused-field-from-struct-vm_external.patch
@@ -0,0 +1,33 @@
+From 48f34366eb90ce0fe1f4237f6e3aaa09256ed354 Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sun, 7 Feb 2016 12:54:49 +0100
+Subject: [PATCH gnumach 1/3] vm: remove unused field from struct vm_external
+
+* vm/vm_external.h (struct vm_external): Remove unused field
+'existence_count'.
+---
+ vm/vm_external.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/vm/vm_external.h b/vm/vm_external.h
+index 55c9e48..4e44ddf 100644
+--- a/vm/vm_external.h
++++ b/vm/vm_external.h
+@@ -46,9 +46,14 @@ typedef struct vm_external {
+ * been written to backing
+ * storage.
+ */
++#if 0
++ /* XXX: Currently, existence_count is not used. I guess it
++ could be useful to get rid of the map if the count drops to
++ zero. */
+ int existence_count;/* Number of bits turned on in
+ * existence_map.
+ */
++#endif
+ } *vm_external_t;
+
+ #define VM_EXTERNAL_NULL ((vm_external_t) 0)
+--
+2.1.4
+
diff --git a/debian/patches/vm-external-fixes0002-vm-allocate-a-large-map-for-all-objects-larger-than-.patch b/debian/patches/vm-external-fixes0002-vm-allocate-a-large-map-for-all-objects-larger-than-.patch
new file mode 100644
index 0000000..87f2bfc
--- /dev/null
+++ b/debian/patches/vm-external-fixes0002-vm-allocate-a-large-map-for-all-objects-larger-than-.patch
@@ -0,0 +1,30 @@
+From ef62b420194e5cd5c5957a672061c18bcedb4b49 Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sun, 7 Feb 2016 12:56:42 +0100
+Subject: [PATCH gnumach 2/3] vm: allocate a large map for all objects larger
+ than SMALL_SIZE
+
+* vm/vm_external.c (vm_external_create): Allocate a large map for all
+objects larger than SMALL_SIZE. 'vm_external_state_{g,s}et' can deal
+with offsets larger than 'LARGE_SIZE', so currently objects larger
+than 'LARGE_SIZE' are missing out on the optimization.
+---
+ vm/vm_external.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/vm/vm_external.c b/vm/vm_external.c
+index 097a9b1..7584a2b 100644
+--- a/vm/vm_external.c
++++ b/vm/vm_external.c
+@@ -69,7 +69,7 @@ vm_external_t vm_external_create(vm_offset_t size)
+ result->existence_map =
+ (char *) kmem_cache_alloc(&vm_object_small_existence_map_cache);
+ result->existence_size = SMALL_SIZE;
+- } else if (bytes <= LARGE_SIZE) {
++ } else {
+ result->existence_map =
+ (char *) kmem_cache_alloc(&vm_object_large_existence_map_cache);
+ result->existence_size = LARGE_SIZE;
+--
+2.1.4
+
diff --git a/debian/patches/vm-external-fixes0003-vm-initialize-external-maps.patch b/debian/patches/vm-external-fixes0003-vm-initialize-external-maps.patch
new file mode 100644
index 0000000..a1d92a1
--- /dev/null
+++ b/debian/patches/vm-external-fixes0003-vm-initialize-external-maps.patch
@@ -0,0 +1,25 @@
+From ca3f6f5c703ea690869c7173be817999e1eddef3 Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sun, 7 Feb 2016 13:01:10 +0100
+Subject: [PATCH gnumach 3/3] vm: initialize external maps
+
+* vm/vm_external.c (vm_external_create): Initialize allocated maps.
+---
+ vm/vm_external.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/vm/vm_external.c b/vm/vm_external.c
+index 7584a2b..6e71918 100644
+--- a/vm/vm_external.c
++++ b/vm/vm_external.c
+@@ -74,6 +74,7 @@ vm_external_t vm_external_create(vm_offset_t size)
+ (char *) kmem_cache_alloc(&vm_object_large_existence_map_cache);
+ result->existence_size = LARGE_SIZE;
+ }
++ memset (result->existence_map, 0, result->existence_size);
+ return(result);
+ }
+
+--
+2.1.4
+