[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/4] Fix cache_resize to keep old entry age
From: |
Juan Quintela |
Subject: |
Re: [Qemu-devel] [PATCH 2/4] Fix cache_resize to keep old entry age |
Date: |
Mon, 25 Feb 2013 17:34:50 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) |
Orit Wasserman <address@hidden> wrote:
> Instead of using cache_insert do the update itself
>
> Signed-off-by: Orit Wasserman <address@hidden>
> ---
> page_cache.c | 16 ++++++----------
> 1 file changed, 6 insertions(+), 10 deletions(-)
>
> diff --git a/page_cache.c b/page_cache.c
> index 748957b..21a4cde 100644
> --- a/page_cache.c
> +++ b/page_cache.c
> @@ -192,18 +192,14 @@ int64_t cache_resize(PageCache *cache, int64_t
> new_num_pages)
> if (old_it->it_addr != -1) {
> /* check for collision, if there is, keep MRU page */
> new_it = cache_get_by_addr(new_cache, old_it->it_addr);
> - if (new_it->it_data) {
> + if (new_it->it_data && new_it->it_age >= old_it->it_age) {
> /* keep the MRU page */
> - if (new_it->it_age >= old_it->it_age) {
> - g_free(old_it->it_data);
> - } else {
> - g_free(new_it->it_data);
> - new_it->it_data = old_it->it_data;
> - new_it->it_age = old_it->it_age;
> - new_it->it_addr = old_it->it_addr;
> - }
> + g_free(old_it->it_data);
> } else {
> - cache_insert(new_cache, old_it->it_addr, old_it->it_data);
> + g_free(new_it->it_data);
> + new_it->it_data = old_it->it_data;
> + new_it->it_age = old_it->it_age;
> + new_it->it_addr = old_it->it_addr;
> }
> }
> }
We are missing
if (!it->it_data) {
cache->num_items++;
}
in the !new_it->it_date case.
Later, Juan.
- [Qemu-devel] [PATCH 0/4] Fix memory leak in page_cache, Orit Wasserman, 2013/02/25
- Re: [Qemu-devel] [PATCH 0/4] Fix memory leak in page_cache, Peter Maydell, 2013/02/25
- [Qemu-devel] [PATCH 2/4] Fix cache_resize to keep old entry age, Orit Wasserman, 2013/02/25
- [Qemu-devel] [PATCH 3/4] page_cache: fix memory leak, Orit Wasserman, 2013/02/25
- [Qemu-devel] [PATCH 1/4] Fix page_cache leak in cache_resize, Orit Wasserman, 2013/02/25
- [Qemu-devel] [PATCH 4/4] page_cache: dup memory on insert, Orit Wasserman, 2013/02/25