From nobody Mon Feb 9 23:42:51 2026 Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 198B01A83F8 for ; Fri, 20 Dec 2024 06:20:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734675651; cv=none; b=MWx3NuzcfCZSAaOT11/GgYJCYEnoEC20k+OUnj8tIqmNYtXKK9oL1j/dEzAMjOmF98xZJdQhzk9DNlzwvG2bNVg/cCo2i3HgOr5VxcjNIRh6PFpJiwjVRXvXF7a7qa6L7HDtuh4v570l8jsqZHViN3eEIb4/3TyUgh/otZToPtQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734675651; c=relaxed/simple; bh=QV1F6m7RtxUBxKyIhCZOeu8HRvxTozYvf6p2RqU2fss=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gIr3fNBsENKy6v4SCp+D+m/v1QurtUZe9eJQJDvylOVKTYA14mT9PpLH9bvULcn+ZqW1ywlkYw+LmnVZSKFvI43Z2w2bk47LoTSnlpd50U//MZVmrcqAKJKcNJq2T6sRhGVTel3Pov78KRQ2+3rvPXOxmn7gKmQ2tsaa21kTviM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=KEOR7UHL; arc=none smtp.client-ip=209.85.215.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KEOR7UHL" Received: by mail-pg1-f181.google.com with SMTP id 41be03b00d2f7-7ee11ff7210so1143203a12.1 for ; Thu, 19 Dec 2024 22:20:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734675649; x=1735280449; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rOt0ueFwgFWxNaJC91o0b6u/gfq61/y7Hzh7uJU5b4g=; b=KEOR7UHLyxbotC2yXMshWv2HtC65mb5bxpcojGiK74SpxqpCJxUKCyUFw5uy2vFUi3 RlkYWt8bF2ax7W7GSiNHMbos9vW/0XYUd0YXgOOitE/kQ4VOr09y39mjAGSXbsLA/a5V dcYOVN/BxosoHIbFZ0IviqhxIyjNyT+KcI5kqYuaE/hL4OjWyzE022hPr/A3vN0RuERt NJSlM/Cu4ZvVbFkqATjiftcwTicnaT6DWXzqIruChvlKcwjqHa0jh4dzXXQNjhzIM+Aw MfCbauc+Lc0RZdl/i78Mw8aLyaoCsNRoPmPVbCJh3J0Uk4Lt/ryPY8kXigp9Oy8e9/40 ejcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734675649; x=1735280449; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rOt0ueFwgFWxNaJC91o0b6u/gfq61/y7Hzh7uJU5b4g=; b=ne5HRDLqGAu6qYrDW6r8/7CE2A6UTYE6yT6pVvrEhz96tXT6gzlIabVoIRXCcXVgtZ sIEv+2rDDU26GiFqdzSBdfX9Sdq4mBA2YNuid8Y7UIOX1lcJ6esIeC5rkC8WuVrK6IXz er/tQ+Efxr8fylG86C8kYTcTtwhN4a4I89T2DySvL2FM0lGJjmGrHQdVVr4rPIol7zWJ oRByDroJRNuR0yk1JNTQeu/GiSzJIPfejunws4hADWn//B7bnSjA/V6Fsv+BlWonvLb4 T0+lmHrg5RmVEAC+n6hDHa/uQkDs6dO3/nl30i0a1EkPg6djiDrP/tsUXdROv7zSXOi2 BsZA== X-Forwarded-Encrypted: i=1; AJvYcCXBd3PR1oztMtltHu5zkVdE6Vo+hL3yL6/k+BIqsnD/QwEOrga/MQja2peQ7KC7aj3HRSdjk9JXVye0VTs=@vger.kernel.org X-Gm-Message-State: AOJu0YydXw6ErtkiDErM4zYAXus+bOiafhb64pJGTnD2+SS/GB1FXelv 1ZLHZB/0FIb6cmkz7DE/2eQPoYs0feEzhYzt5MqFffNM86HQPALG X-Gm-Gg: ASbGnctz+bm/+w03N0AcqdFsfCrSxW/uzZlvwf3Wo64tqWSB//Jiv/Yi2L0oP8BMriD k4uwBs76Bp5jXXQnGRejoIrXs1jC9mu3lpcMG3KWpAQC5cjRBmaj+pCWlutKddTCJKq/Tc2+40J oRCrZHvIlgG62nYAGfM5OdkFmwTHH36utf+pPrXvtWH0+p8rg+PWpxtmPkMkrkOzH448qYUnWpE mSHribHA5JdyNhavJsdA013nM/lJ4/rkjI9GzB4smZxdnfoLJ0jSkuoc9B/bF5U77Xd/J5sci90 EycUK7a+030q X-Google-Smtp-Source: AGHT+IFGeRm1JVD08XDR78PDc5sexwZuy4nZkHKia7QavwIxFOryV8m+EZJRqnnnMYVYs9gxAhk5YQ== X-Received: by 2002:a05:6a21:e8d:b0:1e1:adcd:eae5 with SMTP id adf61e73a8af0-1e5e0846948mr3134128637.42.1734675649462; Thu, 19 Dec 2024 22:20:49 -0800 (PST) Received: from localhost ([58.29.143.236]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72aad90b90asm2344027b3a.177.2024.12.19.22.20.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Dec 2024 22:20:49 -0800 (PST) From: Changwoo Min X-Google-Original-From: Changwoo Min To: tj@kernel.org, void@manifault.com, arighi@nvidia.com, mingo@redhat.com, peterz@infradead.org Cc: changwoo@igalia.com, kernel-dev@igalia.com, linux-kernel@vger.kernel.org Subject: [PATCH v6 6/6] sched_ext: Use time helpers in BPF schedulers Date: Fri, 20 Dec 2024 15:20:25 +0900 Message-ID: <20241220062025.27724-7-changwoo@igalia.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20241220062025.27724-1-changwoo@igalia.com> References: <20241220062025.27724-1-changwoo@igalia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Modify the BPF schedulers to use time helpers defined in common.bpf.h Signed-off-by: Changwoo Min --- tools/sched_ext/scx_central.bpf.c | 5 ----- tools/sched_ext/scx_flatcg.bpf.c | 11 +++-------- tools/sched_ext/scx_simple.bpf.c | 5 ----- 3 files changed, 3 insertions(+), 18 deletions(-) diff --git a/tools/sched_ext/scx_central.bpf.c b/tools/sched_ext/scx_centra= l.bpf.c index ea1d853b9dd4..c3b6998ea83e 100644 --- a/tools/sched_ext/scx_central.bpf.c +++ b/tools/sched_ext/scx_central.bpf.c @@ -87,11 +87,6 @@ struct { __type(value, struct central_timer); } central_timer SEC(".maps"); =20 -static bool vtime_before(u64 a, u64 b) -{ - return (s64)(a - b) < 0; -} - s32 BPF_STRUCT_OPS(central_select_cpu, struct task_struct *p, s32 prev_cpu, u64 wake_flags) { diff --git a/tools/sched_ext/scx_flatcg.bpf.c b/tools/sched_ext/scx_flatcg.= bpf.c index 85e33e45f818..2735ec25e511 100644 --- a/tools/sched_ext/scx_flatcg.bpf.c +++ b/tools/sched_ext/scx_flatcg.bpf.c @@ -137,11 +137,6 @@ static u64 div_round_up(u64 dividend, u64 divisor) return (dividend + divisor - 1) / divisor; } =20 -static bool vtime_before(u64 a, u64 b) -{ - return (s64)(a - b) < 0; -} - static bool cgv_node_less(struct bpf_rb_node *a, const struct bpf_rb_node = *b) { struct cgv_node *cgc_a, *cgc_b; @@ -920,14 +915,14 @@ void BPF_STRUCT_OPS(fcg_cgroup_move, struct task_stru= ct *p, struct cgroup *from, struct cgroup *to) { struct fcg_cgrp_ctx *from_cgc, *to_cgc; - s64 vtime_delta; + s64 delta; =20 /* find_cgrp_ctx() triggers scx_ops_error() on lookup failures */ if (!(from_cgc =3D find_cgrp_ctx(from)) || !(to_cgc =3D find_cgrp_ctx(to)= )) return; =20 - vtime_delta =3D p->scx.dsq_vtime - from_cgc->tvtime_now; - p->scx.dsq_vtime =3D to_cgc->tvtime_now + vtime_delta; + delta =3D vtime_delta(p->scx.dsq_vtime, from_cgc->tvtime_now); + p->scx.dsq_vtime =3D to_cgc->tvtime_now + delta; } =20 s32 BPF_STRUCT_OPS_SLEEPABLE(fcg_init) diff --git a/tools/sched_ext/scx_simple.bpf.c b/tools/sched_ext/scx_simple.= bpf.c index 31f915b286c6..6561d400ae6d 100644 --- a/tools/sched_ext/scx_simple.bpf.c +++ b/tools/sched_ext/scx_simple.bpf.c @@ -52,11 +52,6 @@ static void stat_inc(u32 idx) (*cnt_p)++; } =20 -static inline bool vtime_before(u64 a, u64 b) -{ - return (s64)(a - b) < 0; -} - s32 BPF_STRUCT_OPS(simple_select_cpu, struct task_struct *p, s32 prev_cpu,= u64 wake_flags) { bool is_idle =3D false; --=20 2.47.1