qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v5 1/9] Add cache handling functions


From: Michael Roth
Subject: Re: [Qemu-devel] [PATCH v5 1/9] Add cache handling functions
Date: Wed, 04 Jan 2012 16:20:18 -0600
User-agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:8.0) Gecko/20111105 Thunderbird/8.0

On 01/04/2012 03:29 AM, Orit Wasserman wrote:
On 01/03/2012 09:54 PM, Anthony Liguori wrote:
On 01/03/2012 09:34 AM, Orit Wasserman wrote:
Add page caching mechanism.
The pages are stored in the cache ordered by their address.

Signed-off-by: Orit Wasserman<address@hidden>
---
   arch_init.c |  183 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   1 files changed, 183 insertions(+), 0 deletions(-)

diff --git a/arch_init.c b/arch_init.c
index d4c92b0..fdda277 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -28,6 +28,7 @@
   #include<sys/types.h>
   #include<sys/mman.h>
   #endif
+#include<assert.h>
   #include "config.h"
   #include "monitor.h"
   #include "sysemu.h"
@@ -42,6 +43,14 @@
   #include "gdbstub.h"
   #include "hw/smbios.h"

+#ifdef DEBUG_ARCH_INIT
+#define DPRINTF(fmt, ...) \
+    do { fprintf(stdout, "arch_init: " fmt, ## __VA_ARGS__); } while (0)
+#else
+#define DPRINTF(fmt, ...) \
+    do { } while (0)
+#endif
+
   #ifdef TARGET_SPARC
   int graphic_width = 1024;
   int graphic_height = 768;
@@ -94,6 +103,180 @@ const uint32_t arch_type = QEMU_ARCH;
   #define RAM_SAVE_FLAG_EOS      0x10
   #define RAM_SAVE_FLAG_CONTINUE 0x20

+/***********************************************************/
+/* Page cache for storing previous pages as basis for XBRLE compression */
+#define CACHE_N_WAY 2 /* 2-way assossiative cache */

Is there any reason we can't just use a GCache for this?

http://developer.gnome.org/glib/stable/glib-Caches.html
I'm not familiar with I will check.
Is it 2-way associative cache ?

Not quite...it's a very loose wrapper around GHashTable, which appears to be fully associative in nature. It also doesn't seem to allow you to do a lookup without destroying the table entry =\ (unless you do something hacky like an extra insert beforehand to jack up the refcount). If you go this route you're probably better off looking at GHashTable directly.


Orit

Regards,

Anthony Liguori






reply via email to

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