lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 14 Oct 2021 14:31:17 +0200 From: Vlastimil Babka <vbabka@...e.cz> To: Mel Gorman <mgorman@...hsingularity.net>, Linux-MM <linux-mm@...ck.org> Cc: NeilBrown <neilb@...e.de>, Theodore Ts'o <tytso@....edu>, Andreas Dilger <adilger.kernel@...ger.ca>, "Darrick J . Wong" <djwong@...nel.org>, Matthew Wilcox <willy@...radead.org>, Michal Hocko <mhocko@...e.com>, Dave Chinner <david@...morbit.com>, Rik van Riel <riel@...riel.com>, Johannes Weiner <hannes@...xchg.org>, Jonathan Corbet <corbet@....net>, Linux-fsdevel <linux-fsdevel@...r.kernel.org>, LKML <linux-kernel@...r.kernel.org> Subject: Re: [PATCH 3/8] mm/vmscan: Throttle reclaim when no progress is being made On 10/8/21 15:53, Mel Gorman wrote: > Memcg reclaim throttles on congestion if no reclaim progress is made. > This makes little sense, it might be due to writeback or a host of > other factors. > > For !memcg reclaim, it's messy. Direct reclaim primarily is throttled > in the page allocator if it is failing to make progress. Kswapd > throttles if too many pages are under writeback and marked for > immediate reclaim. > > This patch explicitly throttles if reclaim is failing to make progress. > > Signed-off-by: Mel Gorman <mgorman@...hsingularity.net> ... > @@ -3769,6 +3797,16 @@ unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *memcg, > trace_mm_vmscan_memcg_reclaim_end(nr_reclaimed); > set_task_reclaim_state(current, NULL); > > + if (!nr_reclaimed) { > + struct zoneref *z; > + pg_data_t *pgdat; > + > + z = first_zones_zonelist(zonelist, sc.reclaim_idx, sc.nodemask); > + pgdat = zonelist_zone(z)->zone_pgdat; > + > + reclaim_throttle(pgdat, VMSCAN_THROTTLE_NOPROGRESS, HZ/10); > + } Is this necessary? AFAICS here we just returned from: do_try_to_free_pages() shrink_zones() for_each_zone()... consider_reclaim_throttle() Which already throttles when needed and using the appropriate pgdat, while here we have to somewhat awkwardly assume the preferred one. > + > return nr_reclaimed; > } > #endif >
Powered by blists - more mailing lists