[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZasMfA-v1YykDA1i@slm.duckdns.org>
Date: Fri, 19 Jan 2024 13:57:48 -1000
From: Tejun Heo <tj@...nel.org>
To: Marcelo Tosatti <mtosatti@...hat.com>
Cc: Frederic Weisbecker <frederic@...nel.org>,
Joe Mario <jmario@...hat.com>, Juri Lelli <juri.lelli@...hat.com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] mark power efficient workqueue as unbounded if nohz_full
enabled
On Fri, Jan 19, 2024 at 12:54:39PM -0300, Marcelo Tosatti wrote:
>
> A customer using nohz_full has experienced the following interruption:
>
> oslat-1004510 [018] timer_cancel: timer=0xffff90a7ca663cf8
> oslat-1004510 [018] timer_expire_entry: timer=0xffff90a7ca663cf8 function=delayed_work_timer_fn now=4709188240 baseclk=4709188240
> oslat-1004510 [018] workqueue_queue_work: work struct=0xffff90a7ca663cd8 function=fb_flashcursor workqueue=events_power_efficient req_cpu=8192 cpu=18
> oslat-1004510 [018] workqueue_activate_work: work struct 0xffff90a7ca663cd8
> oslat-1004510 [018] sched_wakeup: kworker/18:1:326 [120] CPU:018
> oslat-1004510 [018] timer_expire_exit: timer=0xffff90a7ca663cf8
> oslat-1004510 [018] irq_work_entry: vector=246
> oslat-1004510 [018] irq_work_exit: vector=246
> oslat-1004510 [018] tick_stop: success=0 dependency=SCHED
> oslat-1004510 [018] hrtimer_start: hrtimer=0xffff90a70009cb00 function=tick_sched_timer/0x0 ...
> oslat-1004510 [018] softirq_exit: vec=1 [action=TIMER]
> oslat-1004510 [018] softirq_entry: vec=7 [action=SCHED]
> oslat-1004510 [018] softirq_exit: vec=7 [action=SCHED]
> oslat-1004510 [018] tick_stop: success=0 dependency=SCHED
> oslat-1004510 [018] sched_switch: oslat:1004510 [120] R ==> kworker/18:1:326 [120]
> kworker/18:1-326 [018] workqueue_execute_start: work struct 0xffff90a7ca663cd8: function fb_flashcursor
> kworker/18:1-326 [018] workqueue_queue_work: work struct=0xffff9078f119eed0 function=drm_fb_helper_damage_work workqueue=events req_cpu=8192 cpu=18
> kworker/18:1-326 [018] workqueue_activate_work: work struct 0xffff9078f119eed0
> kworker/18:1-326 [018] timer_start: timer=0xffff90a7ca663cf8 function=delayed_work_timer_fn ...
>
> Set wq_power_efficient to true, in case nohz_full is enabled.
> This makes the power efficient workqueue be unbounded, which allows
> workqueue items there to be moved to HK CPUs.
>
> Signed-off-by: Marcelo Tosatti <mtosatti@...hat.com>
Applied to wq/for-6.9.
A side note: with the recent affinity improvements to unbound workqueues, I
wonder whether we'd be able to drop wq_power_efficient and just use
system_unbound_wq instead without noticeable perf difference.
Thanks.
--
tejun
Powered by blists - more mailing lists