Re: [PATCH v2] mm: swap: prejudgement swap_has_cache to avoid page allocation

From: Andrew Morton
Date: Mon Apr 08 2024 - 16:27:13 EST


On Mon, 8 Apr 2024 20:14:39 +0800 Zhaoyu Liu <liuzhaoyu.zackary@xxxxxxxxxxxxx> wrote:

> Based on qemu arm64 - latest kernel + 100M memory + 1024M swapfile.
> Create 1G anon mmap and set it to shared, and has two processes
> randomly access the shared memory. When they are racing on swap cache,
> on average, each "alloc_pages_mpol + swapcache_prepare + folio_put"
> took about 1475 us.

And what effect does this patch have upon the measured time? ANd upon
overall runtime?

> So skip page allocation if SWAP_HAS_CACHE was set, just
> schedule_timeout_uninterruptible and continue to acquire page
> via filemap_get_folio() from swap cache, to speedup
> __read_swap_cache_async.