On Tue, Apr 26, 2022 at 01:06:12PM +0200, Nicolas Saenz Julienne wrote: > On Mon, 2022-04-25 at 15:58 -0700, Minchan Kim wrote: > > On Wed, Apr 20, 2022 at 10:59:00AM +0100, Mel Gorman wrote: > > > This series has the same intent as Nicolas' series "mm/page_alloc: Remote > > > per-cpu lists drain support" -- avoid interference of a high priority > > > task due to a workqueue item draining per-cpu page lists. While many > > > workloads can tolerate a brief interruption, it may be cause a real-time > > > task runnning on a NOHZ_FULL CPU to miss a deadline and at minimum, > > > the draining in non-deterministic. > > > > Yeah, the non-deterministic is a problem. I saw the kworker-based draining > > takes 100+ms(up to 300ms observed) sometimes in alloc_contig_range if CPUs > > are heavily loaded. > > > > I am not sure Nicolas already observed. it's not only problem of > > per_cpu_pages but it is also lru_pvecs (pagevec) draining. > > Do we need to introduce similar(allow remote drainning with spin_lock) > > solution for pagevec? > > Yes, I'm aware of the lru problem. I'll start working on it too once we're done > with the page allocator (and if no-one beats me to it). That said, I don't know > if we can apply the exact same approach, the devil is in the details. :) I think one necessary step for that (adding spinlock to protect per-CPU lru_pvecs) would be to find a suitable testcase. Mel, do you have anything in mind ? > > -- > Nicolás Sáenz > >