Michal Hocko <mhocko@xxxxxxxx> writes:
Why is that a problem?
The pages of the remote zone may be kept in the local per-CPU pageset
for long time as long as there's no page allocation/freeing on the
logical CPU. In addition to the logical CPU goes idle, this is also
possible if the logical CPU is busy in the user space.
But why is this a problem? Is the scale of the problem sufficient to
trigger out of memory situations or be otherwise harmful?
This may trigger premature page reclaiming. The pages in the PCP of the
remote zone would have been freed to satisfy the page allocation for the
remote zone to avoid page reclaiming. It's highly possible that the
local CPU just allocate/free from/to the remote zone temporarily. So,
we should free PCP pages of the remote zone if there is no page
allocation/freeing from/to the remote zone for 3 seconds.
This will not trigger OOM, because all PCP will be drained if allocation
failed after direct reclaiming.