From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E1F9A1E104E for ; Tue, 11 Mar 2025 06:29:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741674557; cv=none; b=tEoCIak2p2k9c2mNd0vVv6Ye0NsvSKANwtJtMSez7zshXybLTB4JvO1kWcJbAaBSMBxaZL5+yknIK/N6JNZ9SbZIHFDoZsqoyXZeTHXqGNRBQyELranZ7B36ozJ+YYI3PAb6ZjdsFxmJX1iSoLLvH9uhTTvtZci5oPsG49NPpNE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741674557; c=relaxed/simple; bh=4zY4McwFMigqbMvKqt7EVbenKJLVIR5tO3iJkZvrHUY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gAJyeKTw5Ah24Lw5RB8odMPefSYtkmeq6v1mcfBHQDZz0GWGTyfdGB++18IzjyDVsud8xGWY86JH2Wv54JfAbnMrgPwXCnwstayrvVA77W5tRlR/TpinYMMV2HmYLgOxG6RoPUnhWs14OzdswgD9joOVA/sHf1TPVieCZxLWmhw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=iVTbDzNs; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="iVTbDzNs" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1741674554; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4nOCm3h7/rpis8EWllwN8xfUcM0IxeBxojuBryEUwhI=; b=iVTbDzNsaS9kEBBsZ8X4T+851HugaUG8W458gq3TgPJkXP9XXSheXuZcHPMm3/bKxy5DHS OTnxLm9WYUNclNjsakYFLqhcHQAnnuk6dx8tYl7Q7vBfupkj4wo2NPXIiNuHB0+mgZANsf gq9c9KvRuMevzekP3VxegJAs2O6IutM= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-53-DABcnbqKPUOw7_CAl3kQBA-1; Tue, 11 Mar 2025 02:29:10 -0400 X-MC-Unique: DABcnbqKPUOw7_CAl3kQBA-1 X-Mimecast-MFC-AGG-ID: DABcnbqKPUOw7_CAl3kQBA_1741674549 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 9F5E0180034D; Tue, 11 Mar 2025 06:29:08 +0000 (UTC) Received: from gmonaco-thinkpadt14gen3.rmtit.com (unknown [10.45.224.34]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 4EC2430001A2; Tue, 11 Mar 2025 06:29:05 +0000 (UTC) From: Gabriele Monaco To: linux-kernel@vger.kernel.org, Ingo Molnar , Peter Zijlstra Cc: Gabriele Monaco , Mathieu Desnoyers , Ingo Molnar , "Paul E. McKenney" , Shuah Khan Subject: [PATCH v12 1/3] sched: Add prev_sum_exec_runtime support for RT, DL and SCX classes Date: Tue, 11 Mar 2025 07:28:44 +0100 Message-ID: <20250311062849.72083-2-gmonaco@redhat.com> In-Reply-To: <20250311062849.72083-1-gmonaco@redhat.com> References: <20250311062849.72083-1-gmonaco@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 The fair scheduling class relies on prev_sum_exec_runtime to compute the duration of the task's runtime since it was last scheduled. This value is currently not required by other scheduling classes but can be useful to understand long running tasks and take certain actions (e.g. during a scheduler tick). Add support for prev_sum_exec_runtime to the RT, deadline and sched_ext classes by simply assigning the sum_exec_runtime at each set_next_task. Reviewed-by: Mathieu Desnoyers Signed-off-by: Gabriele Monaco --- kernel/sched/deadline.c | 1 + kernel/sched/ext.c | 1 + kernel/sched/rt.c | 1 + 3 files changed, 3 insertions(+) diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index ff4df16b5186d..ab19b1cc9971d 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2391,6 +2391,7 @@ static void set_next_task_dl(struct rq *rq, struct task_struct *p, bool first) p->se.exec_start = rq_clock_task(rq); if (on_dl_rq(&p->dl)) update_stats_wait_end_dl(dl_rq, dl_se); + p->se.prev_sum_exec_runtime = p->se.sum_exec_runtime; /* You can't push away the running task */ dequeue_pushable_dl_task(rq, p); diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index 0f1da199cfc7c..5f11bf02138a1 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -2974,6 +2974,7 @@ static void set_next_task_scx(struct rq *rq, struct task_struct *p, bool first) } p->se.exec_start = rq_clock_task(rq); + p->se.prev_sum_exec_runtime = p->se.sum_exec_runtime; /* see dequeue_task_scx() on why we skip when !QUEUED */ if (SCX_HAS_OP(running) && (p->scx.flags & SCX_TASK_QUEUED)) diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index 4b8e33c615b12..1ea272e4dae71 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -1684,6 +1684,7 @@ static inline void set_next_task_rt(struct rq *rq, struct task_struct *p, bool f p->se.exec_start = rq_clock_task(rq); if (on_rt_rq(&p->rt)) update_stats_wait_end_rt(rt_rq, rt_se); + p->se.prev_sum_exec_runtime = p->se.sum_exec_runtime; /* The running task is never eligible for pushing */ dequeue_pushable_task(rq, p); -- 2.48.1