[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 6/8] XBZRLE: rebuild the cache_is_cached function
From: |
arei.gonglei |
Subject: |
[Qemu-devel] [PATCH v4 6/8] XBZRLE: rebuild the cache_is_cached function |
Date: |
Thu, 27 Mar 2014 11:18:21 +0800 |
From: ChenLiang <address@hidden>
Rebuild the cache_is_cached function by cache_get_by_addr. And
drops the asserts because the caller is also asserting the same
thing.
Signed-off-by: ChenLiang <address@hidden>
Signed-off-by: Gonglei <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
---
page_cache.c | 38 ++++++++++++++++----------------------
1 file changed, 16 insertions(+), 22 deletions(-)
diff --git a/page_cache.c b/page_cache.c
index c78157b..3190c55 100644
--- a/page_cache.c
+++ b/page_cache.c
@@ -124,24 +124,6 @@ static size_t cache_get_cache_pos(const PageCache *cache,
return pos;
}
-bool cache_is_cached(const PageCache *cache, uint64_t addr,
- uint64_t current_age)
-{
- size_t pos;
-
- g_assert(cache);
- g_assert(cache->page_cache);
-
- pos = cache_get_cache_pos(cache, addr);
-
- if (cache->page_cache[pos].it_addr == addr) {
- /* update the it_age when the cache hit */
- cache->page_cache[pos].it_age = current_age;
- return true;
- }
- return false;
-}
-
static CacheItem *cache_get_by_addr(const PageCache *cache, uint64_t addr)
{
size_t pos;
@@ -159,14 +141,26 @@ uint8_t *get_cached_data(const PageCache *cache, uint64_t
addr)
return cache_get_by_addr(cache, addr)->it_data;
}
+bool cache_is_cached(const PageCache *cache, uint64_t addr,
+ uint64_t current_age)
+{
+ CacheItem *it;
+
+ it = cache_get_by_addr(cache, addr);
+
+ if (it->it_addr == addr) {
+ /* update the it_age when the cache hit */
+ it->it_age = current_age;
+ return true;
+ }
+ return false;
+}
+
int cache_insert(PageCache *cache, uint64_t addr, const uint8_t *pdata,
uint64_t current_age)
{
- CacheItem *it = NULL;
-
- g_assert(cache);
- g_assert(cache->page_cache);
+ CacheItem *it;
/* actual update of entry */
it = cache_get_by_addr(cache, addr);
--
1.7.12.4
- [Qemu-devel] [PATCH v4 0/8] migration: Optimizate the xbzrle and fix one corruption issue, arei.gonglei, 2014/03/26
- [Qemu-devel] [PATCH v4 7/8] migration: optimize xbzrle by reducing data copy, arei.gonglei, 2014/03/26
- [Qemu-devel] [PATCH v4 2/8] migration: Add counts of updating the dirty bitmap, arei.gonglei, 2014/03/26
- [Qemu-devel] [PATCH v4 4/8] migration: expose xbzrle cache miss rate, arei.gonglei, 2014/03/26
- [Qemu-devel] [PATCH v4 8/8] migration: clear the dead code, arei.gonglei, 2014/03/26
- [Qemu-devel] [PATCH v4 6/8] XBZRLE: rebuild the cache_is_cached function,
arei.gonglei <=
- [Qemu-devel] [PATCH v4 3/8] migration: expose the bitmap_sync_count to the end user, arei.gonglei, 2014/03/26
- [Qemu-devel] [PATCH v4 1/8] XBZRLE: Fix one XBZRLE corruption issues, arei.gonglei, 2014/03/26
- [Qemu-devel] [PATCH v4 5/8] XBZRLE: optimize XBZRLE to decrease the cache misses, arei.gonglei, 2014/03/26