Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp3081168ybz; Mon, 27 Apr 2020 09:37:34 -0700 (PDT) X-Google-Smtp-Source: APiQypLtDZRRh+xwwdAnQYZkAaqBkYn6t+KhT+XmnkBgssveUNF3W3SIVxyWZBBZ0kZEILQHoUHq X-Received: by 2002:aa7:cdd9:: with SMTP id h25mr19979343edw.17.1588005454646; Mon, 27 Apr 2020 09:37:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588005454; cv=none; d=google.com; s=arc-20160816; b=Ae9ozXJmK06VptMPPiQnN0kfdeVl++AaWSFzxVqUd3XuTDK1BSX10BXwFJO2GZslzT qKyiB2dO+2tcczeFMgCf9V3RydAKdtN5e7+ciOeFMG2OLy28lxFOoVvdOyD8GbSKTZUZ B8mx54WXAZMjnYJIh6yZUzFNWYvGqeL8VBKwnMdFza1qq8rjouAt2oHf8bGh8zp+C3qk 1RTj99Hns65RCbmlxnxwCcNhykzyyv8PiH0Bwve9FSG6b7KeiG0r5ckynVRhY3XgFGag vmf/P2xBw1OyRVfCHwcEhsAJl0wQ12jUyRiEJvdgqpMNQeFDxIyyeudKm7EsmoViDSN2 DYHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=09ZOcxsLU2hNGjtUVjWujlHaTde/YnfZm1w3Haa/T7k=; b=rbWVwXGQyHhwADJ1tQOAqcjsfsu+gtqr4Lem+3U55GcmBefdRNAeT+7WAanE0p4Ybs 8s4Nhjqc4YOzdVBIpUz/WkiYJ9UZibfuElZfZhbrhiiK44GFwamX4jO2jM2il7UfIIai 09lGbziWnSittEofbnFzWU4OXUuvmtNX93KOnSYyA/9QLfhGJUKuGrvphzzOlBKv80Md l/Mvf2DIXJxtTqTPeLrKRsV42gAh7/9w2EWT7TuY4JSs9jLTUUeuJPb7O8bAuLNtWN38 Dmop970sOWyap34mUeK9tsdV5FKDSnhgs1ZaMJd8Z/ZJQNTyW7gp7OTQVLeGW3M2WGtQ 6M8w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r16si60961edi.409.2020.04.27.09.37.10; Mon, 27 Apr 2020 09:37:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728240AbgD0Qfq (ORCPT + 99 others); Mon, 27 Apr 2020 12:35:46 -0400 Received: from foss.arm.com ([217.140.110.172]:38004 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726229AbgD0Qfq (ORCPT ); Mon, 27 Apr 2020 12:35:46 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A53AB31B; Mon, 27 Apr 2020 09:35:45 -0700 (PDT) Received: from e107158-lin (e107158-lin.cambridge.arm.com [10.1.195.21]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 21A963F68F; Mon, 27 Apr 2020 09:35:44 -0700 (PDT) Date: Mon, 27 Apr 2020 17:35:41 +0100 From: Qais Yousef To: Peter Zijlstra Cc: mingo@kernel.org, linux-kernel@vger.kernel.org, tglx@linutronix.de, rostedt@goodmis.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, daniel.lezcano@linaro.org, sudeep.holla@arm.com Subject: Re: [PATCH 06/23] sched,psci: Convert to sched_set_fifo*() Message-ID: <20200427163540.45wrw5kaakxzrokj@e107158-lin> References: <20200422112719.826676174@infradead.org> <20200422112831.574539982@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20200422112831.574539982@infradead.org> User-Agent: NeoMutt/20171215 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/22/20 13:27, Peter Zijlstra wrote: > Because SCHED_FIFO is a broken scheduler model (see previous patches) > take away the priority field, the kernel can't possibly make an > informed decision. > > Effectively changes prio from 99 to 50. > > XXX this thing is horrific, it basically open-codes a stop-machine and > idle. > > Cc: daniel.lezcano@linaro.org > Cc: sudeep.holla@arm.com > Signed-off-by: Peter Zijlstra (Intel) > Reviewed-by: Ingo Molnar > --- > drivers/firmware/psci/psci_checker.c | 11 ++--------- > 1 file changed, 2 insertions(+), 9 deletions(-) > > --- a/drivers/firmware/psci/psci_checker.c > +++ b/drivers/firmware/psci/psci_checker.c > @@ -272,7 +272,6 @@ static int suspend_test_thread(void *arg > { > int cpu = (long)arg; > int i, nb_suspend = 0, nb_shallow_sleep = 0, nb_err = 0; > - struct sched_param sched_priority = { .sched_priority = MAX_RT_PRIO-1 }; > struct cpuidle_device *dev; > struct cpuidle_driver *drv; > /* No need for an actual callback, we just want to wake up the CPU. */ > @@ -282,9 +281,8 @@ static int suspend_test_thread(void *arg > wait_for_completion(&suspend_threads_started); > > /* Set maximum priority to preempt all other threads on this CPU. */ > - if (sched_setscheduler_nocheck(current, SCHED_FIFO, &sched_priority)) > - pr_warn("Failed to set suspend thread scheduler on CPU %d\n", > - cpu); > + if (sched_set_fifo(current)) > + pr_warn("Failed to set suspend thread scheduler on CPU %d\n", cpu); > > dev = this_cpu_read(cpuidle_devices); > drv = cpuidle_get_cpu_driver(dev); > @@ -349,11 +347,6 @@ static int suspend_test_thread(void *arg > if (atomic_dec_return_relaxed(&nb_active_threads) == 0) > complete(&suspend_threads_done); > > - /* Give up on RT scheduling and wait for termination. */ > - sched_priority.sched_priority = 0; > - if (sched_setscheduler_nocheck(current, SCHED_NORMAL, &sched_priority)) > - pr_warn("Failed to set suspend thread scheduler on CPU %d\n", > - cpu); No need for sched_set_normal() here before the busy loop? Thanks -- Qais Yousef > for (;;) { > /* Needs to be set first to avoid missing a wakeup. */ > set_current_state(TASK_INTERRUPTIBLE); > >