From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kohli, Gaurav" Subject: Re: [PATCH v1] kthread/smpboot: Serialize kthread parking against wakeup Date: Thu, 7 Jun 2018 14:00:53 +0530 Message-ID: <1ebda1e3-dae3-9e86-ad92-e1acdead23be@codeaurora.org> References: <830d7225-af90-a55a-991a-bb2023d538f1@codeaurora.org> <55221a5b-dd52-3359-f582-86830dd9f205@codeaurora.org> <20180605150841.GA24053@redhat.com> <20180605152212.GY12180@hirez.programming.kicks-ass.net> <20180605154053.GB12235@hirez.programming.kicks-ass.net> <20180605163515.GB24053@redhat.com> <20180605201316.GZ12198@hirez.programming.kicks-ass.net> <20180606135115.GA4609@redhat.com> <20180606185920.GI12198@hirez.programming.kicks-ass.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20180606185920.GI12198@hirez.programming.kicks-ass.net> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org To: Peter Zijlstra , Oleg Nesterov Cc: tglx@linutronix.de, mpe@ellerman.id.au, mingo@kernel.org, bigeasy@linutronix.de, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Neeraj Upadhyay , Will Deacon List-Id: linux-arm-msm@vger.kernel.org HI , In the latest patch mentioned, k should be their instead of p: -WARN_ON_ONCE(!wait_task_inactive(p, TASK_PARKED)) +WARN_ON_ONCE(!wait_task_inactive(k, TASK_PARKED)) Regards Gaurav On 6/7/2018 12:29 AM, Peter Zijlstra wrote: > On Wed, Jun 06, 2018 at 03:51:16PM +0200, Oleg Nesterov wrote: >> IIUC, this will only affect smpboot_update_cpumask_percpu_thread() which can hit >> an already parked thread, but it doesn't need to wait. >> >> And it seems that smpboot_update_cpumask_percpu_thread() in turn needs some cleanups. >> Hmm. and its single user: kernel/watchdog.c. >> >> And speaking of watchdog.c, can't we simply kill the "watchdog/%u" threads? This is >> off-topic, but can't watchdog_timer_fn() use stop_one_cpu_nowait(watchdog) ? >> >> And I really think we should unexport kthread_park/unpark(), only smpboot_thread_fn() >> should use them. kthread() should not play with __kthread_parkme(). And even >> KTHREAD_SHOULD_PARK must die, I mean it should live in struct smp_hotplug_thread, >> not in struct kthread. >> >> OK, this is off-topic too. > >> And, let me repeat, can't we avoid complete_all() ? > > Yes, or at least if that watchdog crap is the only user. > > I have most of the patch reworking watchdog.c to use stop_one_cpu*(), > and that cleans up lots -- of course, I've not tested it yet, so it > could also be breaking lots :-) > -- Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.