Re: [PATCH v4 2/8] staging: zcache: zero-filled pages awareness

From: Bob Liu
Date: Wed Mar 20 2013 - 06:31:08 EST



> @@ -641,16 +691,22 @@ static void zcache_pampd_free(void *pampd, struct tmem_pool *pool,
> {
> struct page *page = NULL;
> unsigned int zsize, zpages;
> + bool zero_filled = false;
>
> BUG_ON(preemptible());
> - if (pampd_is_remote(pampd)) {
> +
> + if (pampd == (void *)ZERO_FILLED)
> + zero_filled = true;
> +
> + if (pampd_is_remote(pampd) && !zero_filled) {
> BUG_ON(!ramster_enabled);
> pampd = ramster_pampd_free(pampd, pool, oid, index, acct);
> if (pampd == NULL)
> return;
> }
> if (is_ephemeral(pool)) {
> - page = zbud_free_and_delist((struct zbudref *)pampd,
> + if (!zero_filled)
> + page = zbud_free_and_delist((struct zbudref *)pampd,
> true, &zsize, &zpages);

This check should also apply for !is_ephemeral(pool).

> if (page)
> dec_zcache_eph_pageframes();
> @@ -667,7 +723,7 @@ static void zcache_pampd_free(void *pampd, struct tmem_pool *pool,
> }
> if (!is_local_client(pool->client))
> ramster_count_foreign_pages(is_ephemeral(pool), -1);
> - if (page)
> + if (page && !zero_filled)
> zcache_free_page(page);
> }
>
>

--
Regards,
-Bob
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/