Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp5980167rwb; Sun, 11 Dec 2022 16:40:22 -0800 (PST) X-Google-Smtp-Source: AA0mqf6XosFiPXW4S67ZMVD0srJvqWFyNE9iebAdFM/DFMD6ThM0aTg9/RTq96rKshZeENDDWnI+ X-Received: by 2002:a17:906:a099:b0:7ae:8144:690 with SMTP id q25-20020a170906a09900b007ae81440690mr11586271ejy.32.1670805622763; Sun, 11 Dec 2022 16:40:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1670805622; cv=none; d=google.com; s=arc-20160816; b=JGfNZzKamPJ/2d05HloWWQA9/N/2mFxbZ8FPBDAsQULBubFTfmUbHLwta3dWdWBIIg PAbmo8BJDByX0b1S4wF7oEFJx029ejIB9HOYI6cKwGEaYPDcud6FAUz75MXK092UVTWv QH5M23iYidWt3g+NzunjMU+tugL13lcmhOPt1VQv5UbLSkop8MfEfPGKmATgjvSslQsI jIPylNq5s2hGGCToHDQ0Aw/fZLX1rI4WC1F0LtTrVqC69b+iMaal1LeR61rrab21iYWL kXxIe+qBV5MxyChvtOfU2t3uRcppy3vlOtkVr/4dtYVPOP1L+zES03GMONQwspzroG9d 6owg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent:message-id:subject:cc:to :from:date:dkim-signature; bh=P0qci+mDQ+1pwu9JHlj+WOBQhevXBwcTQ7WNZsvyN68=; b=gUbM9kgUru+rOliQ7265kNuqtySRuhco/T5EawbkeSsR9DhZsNBTe3ABkHWR4Bcu7y HMoE0yytd4gw0B+2j9vatb508pgyRMq/c/gcKv2eDcJHTKf3xCvXOGtqjAtTNAvpW4pA lqPN7UGWNbQumDoubiDdhJX9wLWdi5DgKbUEGrjagKHEmuZWGmAcxvONmM5/eimUrr9i flOEz8gL9paK5uhh/3ABn0zLNQ57V3CSfkE643DcN5BCRSU6oun7gaEdn4h1ux/6OlYO 8i9vzDh1XDhcr3zAwBpSLNB5afnPXBWmqgqrI0AodQCYH21xZUH8D8dx8/EEL2QOT26/ VibQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@inria.fr header.s=dc header.b=KvyRaYe4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=inria.fr Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id fy5-20020a170906b7c500b007c1031bec6esi4318089ejb.857.2022.12.11.16.40.04; Sun, 11 Dec 2022 16:40:22 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@inria.fr header.s=dc header.b=KvyRaYe4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=inria.fr Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230424AbiLKWnf (ORCPT + 75 others); Sun, 11 Dec 2022 17:43:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58528 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229475AbiLKWnd (ORCPT ); Sun, 11 Dec 2022 17:43:33 -0500 Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 71125201; Sun, 11 Dec 2022 14:43:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=date:from:to:cc:subject:message-id:mime-version; bh=P0qci+mDQ+1pwu9JHlj+WOBQhevXBwcTQ7WNZsvyN68=; b=KvyRaYe45OY2sjVZdb2S4E9A0YP96CQkx7R/guG2HrWzxXYKUXxa2dZ2 6kUcT4jysyv/q8VIz/WPqsyWbB1MYR0jdQt5lWheTYQpbVV8e9dpebW/8 EtSGFT5vZcManHVnZsc9KgZbxQSpmiTDx6YSgI+yqOSYpVOjSa72EG3II A=; Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=SoftFail smtp.mailfrom=julia.lawall@inria.fr; dmarc=fail (p=none dis=none) d=inria.fr X-IronPort-AV: E=Sophos;i="5.96,237,1665439200"; d="scan'208";a="82839137" Received: from 214.123.68.85.rev.sfr.net (HELO hadrien) ([85.68.123.214]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Dec 2022 23:43:30 +0100 Date: Sun, 11 Dec 2022 23:43:30 +0100 (CET) From: Julia Lawall X-X-Sender: jll@hadrien To: Tejun Heo cc: torvalds@linux-foundation.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, bristot@redhat.com, vschneid@redhat.com, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, martin.lau@kernel.org, joshdon@google.com, brho@google.com, pjt@google.com, derkling@google.com, haoluo@google.com, dvernet@meta.com, dschatzberg@meta.com, dskarlat@cs.cmu.edu, riel@surriel.com, linux-kernel@vger.kernel.org, bpf@vger.kernel.org, kernel-team@meta.com Subject: [PATCH] sched_ext: use msecs_to_jiffies consistently Message-ID: User-Agent: Alpine 2.22 (DEB 394 2020-01-19) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The watchdog's timeout is processed by msecs_to_jiffies when it is checked, but not when the delay for running the watchdog is set. The watchdog will thus run at a time that is later than that time at which it is checked that it has run, and the scheduler aborts. Add the needed calls to msecs_to_jiffies. Signed-off-by: Julia Lawall --- Another solution would be to use jiffies everywhere. diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index a28144220501..9d711a70d996 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -1626,6 +1626,7 @@ static bool check_rq_for_timeouts(struct rq *rq) static void scx_check_timeout_workfn(struct work_struct *work) { int cpu; + unsigned long timeout; last_timeout_check = jiffies; for_each_online_cpu(cpu) { @@ -1634,8 +1635,8 @@ static void scx_check_timeout_workfn(struct work_struct *work) cond_resched(); } - queue_delayed_work(system_unbound_wq, to_delayed_work(work), - task_runnable_timeout_ms / 2); + timeout = msecs_to_jiffies(task_runnable_timeout_ms); + queue_delayed_work(system_unbound_wq, to_delayed_work(work), timeout / 2); } static void task_tick_scx(struct rq *rq, struct task_struct *curr, int queued) @@ -2590,6 +2591,7 @@ static int scx_ops_enable(struct sched_ext_ops *ops) { struct scx_task_iter sti; struct task_struct *p; + unsigned long timeout; int i, ret; mutex_lock(&scx_ops_enable_mutex); @@ -2674,8 +2676,8 @@ static int scx_ops_enable(struct sched_ext_ops *ops) } last_timeout_check = jiffies; - queue_delayed_work(system_unbound_wq, &check_timeout_work, - task_runnable_timeout_ms / 2); + timeout = msecs_to_jiffies(task_runnable_timeout_ms); + queue_delayed_work(system_unbound_wq, &check_timeout_work, timeout / 2); /* * Lock out forks, cgroup on/offlining and moves before opening the