Message ID | 0e07e5bf6f65dc89d263683c81b4a19bcc6d4b60.camel@marvell.com |
---|---|
State | Superseded |
Headers | show |
Series | "Task_isolation" mode | expand |
Alex, On Mon, Nov 23 2020 at 17:56, Alex Belits wrote: why are you insisting on adding 'task_isolation: ' as prefix to every single patch? That's wrong as I explained before. The prefix denotes the affected subsystem and 'task_isolation' is _NOT_ a subsystem. It's the project name you are using but the affected code belongs to the memory management subsystem and if you run git log mm/vmstat.c you might get a hint what the proper prefix is, i.e. 'mm/vmstat: ' > In commit f01f17d3705b ("mm, vmstat: make quiet_vmstat lighter") > the quiet_vmstat() function became asynchronous, in the sense that > the vmstat work was still scheduled to run on the core when the > function returned. For task isolation, we need a synchronous This changelog is useless because how should someone not familiar with the term 'task isolation' figure out what that means? It's not the reviewers job to figure that out. Again: Go read and adhere to Documentation/process/* Aside of that your patches are CR/LF inflicted. Please fix your work flow and tools. Thanks, tglx
diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index 322dcbfcc933..300ce6648923 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -284,6 +284,7 @@ extern void __dec_zone_state(struct zone *, enum zone_stat_item); extern void __dec_node_state(struct pglist_data *, enum node_stat_item); void quiet_vmstat(void); +void quiet_vmstat_sync(void); void cpu_vm_stats_fold(int cpu); void refresh_zone_stat_thresholds(void); @@ -391,6 +392,7 @@ static inline void __dec_node_page_state(struct page *page, static inline void refresh_zone_stat_thresholds(void) { } static inline void cpu_vm_stats_fold(int cpu) { } static inline void quiet_vmstat(void) { } +static inline void quiet_vmstat_sync(void) { } static inline void drain_zonestat(struct zone *zone, struct per_cpu_pageset *pset) { } diff --git a/mm/vmstat.c b/mm/vmstat.c index 698bc0bc18d1..43999caf47a4 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1936,6 +1936,15 @@ void quiet_vmstat(void) refresh_cpu_vm_stats(false); } +/* + * Synchronously quiet vmstat so the work is guaranteed not to run on return. + */ +void quiet_vmstat_sync(void) +{ + cancel_delayed_work_sync(this_cpu_ptr(&vmstat_work)); + refresh_cpu_vm_stats(false); +} + /* * Shepherd worker thread that checks the * differentials of processors that have their worker