Re: use of shrinker in virtio balloon free page hinting

From: Wei Wang
Date: Thu Jul 18 2019 - 02:24:44 EST


On 07/18/2019 01:58 PM, Michael S. Tsirkin wrote:

what if it does not fail?


Shrinker is called on system memory pressure. On memory pressure
get_free_page_and_send will fail memory allocation, so it stops allocating
more.
Memory pressure could be triggered by an unrelated allocation
e.g. from another driver.

As memory pressure is system-wide (no matter who triggers it), free page hinting
will fail on memory pressure, same as other drivers.

As long as the page allocation succeeds, we could just think the system is not in
the memory pressure situation, then thing could go on normally.

Also, the VIRTIO_BALLOON_FREE_PAGE_ALLOC_FLAG includes NORETRY and NOMEMALLOC,
which makes it easier than most other drivers to fail allocation first.

Best,
Wei