mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2 00/15] Fair scheduling deadline server fixes
@ 2024-03-13  1:24 Joel Fernandes (Google)
  2024-03-13  1:24 ` [PATCH v2 01/15] sched/core: Add clearing of ->dl_server in put_prev_task_balance() Joel Fernandes (Google)
                   ` (14 more replies)
  0 siblings, 15 replies; 31+ messages in thread
From: Joel Fernandes (Google) @ 2024-03-13  1:24 UTC (permalink / raw)
  To: linux-kernel
  Cc: Suleiman Souhlal, Youssef Esmat, Steven Rostedt, David Vernet,
	Thomas Gleixner, Paul E . McKenney, joseph.salisbury,
	Dietmar Eggemann, Ben Segall, Mel Gorman,
	Daniel Bristot de Oliveira, Valentin Schneider, Luca Abeni,
	Tommaso Cucinotta, Vineeth Pillai, Shuah Khan, Phil Auld,
	Joel Fernandes (Google)

Hello,
The deadline server [1] allows RT tasks to run on a system safely, while not
wasting CPU that RT tasks may not get on an idle system due to RT throttling.

Here are patches that are mostly fixes that we found while testing out the
deadline server [1] for ChromeOS. It snowballed from 10 to 15 patches as I
found that my unit test was breaking, and then we also saw some crashes in the
field related to the dl_timer! All of that is fixed.

There is also a fix to core scheduling among several other fixes.
Appreciate a thorough review. I kept all the patches on top of Daniel's and
Peter's patches because I will let them squash it with appropriate attribution
to the contributors.

These patches are based on Daniel's preview branch for v6:
https://git.kernel.org/pub/scm/linux/kernel/git/bristot/linux.git/?h=dl_server_v6

Daniel mentioned he is working on fixing the fair server interface issues [2].
These patches apply cleanly on his preview version.

[1] https://lore.kernel.org/all/cover.1699095159.git.bristot@kernel.org/
[2] https://lore.kernel.org/all/091ca2ea-202d-4685-92ea-529186a94f0a@kernel.org/


Joel Fernandes (Google) (12):
  sched/core: Add clearing of ->dl_server in put_prev_task_balance()
  sched/core: Fix priority checking for DL server picks
  sched/core: Fix picking of tasks for core scheduling with DL server
  sched/debug: Use unsigned long for cpu variable to prevent cast errors
  selftests/sched: Add a test to verify that DL server works with core
    scheduling
  selftests/sched: Migrate cs_prctl_test to kselfttest
  admin-guide/hw-vuln: Correct prctl() argument description
  sched: Fix build error in "sched/rt: Remove default bandwidth control"
  sched/deadline: Mark DL server as unthrottled before enqueue
  sched/deadline: Make start_dl_timer callers more robust
  sched/deadline: Do not restart the DL server on replenish from timer
  sched/deadline: Always start a new period if CFS exceeded DL runtime

Suleiman Souhlal (2):
  sched: server: Don't start hrtick for DL server tasks
  sched/deadline: Reverse args to dl_time_before in replenish

Youssef Esmat (1):
  sched/core: Clear prev->dl_server in CFS pick fast path

 .../admin-guide/hw-vuln/core-scheduling.rst   |   4 +-
 include/linux/sched.h                         |   3 +-
 kernel/sched/core.c                           |  46 +++-
 kernel/sched/deadline.c                       |  87 ++++--
 kernel/sched/debug.c                          |   4 +-
 kernel/sched/fair.c                           |  22 +-
 kernel/sched/rt.c                             |   2 +
 kernel/sched/sched.h                          |   3 +-
 tools/testing/selftests/sched/Makefile        |  17 +-
 tools/testing/selftests/sched/common.c        |  24 ++
 tools/testing/selftests/sched/common.h        |   8 +
 .../selftests/sched/cs_dlserver_test.c        | 254 ++++++++++++++++++
 tools/testing/selftests/sched/cs_prctl_test.c |  74 ++---
 13 files changed, 456 insertions(+), 92 deletions(-)
 create mode 100644 tools/testing/selftests/sched/common.c
 create mode 100644 tools/testing/selftests/sched/common.h
 create mode 100644 tools/testing/selftests/sched/cs_dlserver_test.c

-- 
2.34.1


^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2024-04-05  9:37 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-13  1:24 [PATCH v2 00/15] Fair scheduling deadline server fixes Joel Fernandes (Google)
2024-03-13  1:24 ` [PATCH v2 01/15] sched/core: Add clearing of ->dl_server in put_prev_task_balance() Joel Fernandes (Google)
2024-04-04 17:46   ` Daniel Bristot de Oliveira
2024-03-13  1:24 ` [PATCH v2 02/15] sched/core: Clear prev->dl_server in CFS pick fast path Joel Fernandes (Google)
2024-04-04 17:52   ` Daniel Bristot de Oliveira
2024-03-13  1:24 ` [PATCH v2 03/15] sched/core: Fix priority checking for DL server picks Joel Fernandes (Google)
2024-03-13  1:24 ` [PATCH v2 04/15] sched/core: Fix picking of tasks for core scheduling with DL server Joel Fernandes (Google)
2024-04-05  9:37   ` Daniel Bristot de Oliveira
2024-03-13  1:24 ` [PATCH v2 05/15] sched/debug: Use unsigned long for cpu variable to prevent cast errors Joel Fernandes (Google)
2024-03-13 20:02   ` Chris Hyser
2024-03-13  1:24 ` [PATCH v2 06/15] sched: server: Don't start hrtick for DL server tasks Joel Fernandes (Google)
2024-04-05  8:49   ` Daniel Bristot de Oliveira
2024-03-13  1:24 ` [PATCH v2 07/15] selftests/sched: Add a test to verify that DL server works with core scheduling Joel Fernandes (Google)
2024-03-13  1:24 ` [PATCH v2 08/15] selftests/sched: Migrate cs_prctl_test to kselfttest Joel Fernandes (Google)
2024-03-13 18:44   ` Chris Hyser
2024-03-13  1:24 ` [PATCH v2 09/15] admin-guide/hw-vuln: Correct prctl() argument description Joel Fernandes (Google)
2024-03-13 19:14   ` Chris Hyser
2024-03-13 19:26     ` Chris Hyser
2024-04-05  9:32   ` Daniel Bristot de Oliveira
2024-03-13  1:24 ` [PATCH v2 10/15] sched: Fix build error in "sched/rt: Remove default bandwidth control" Joel Fernandes (Google)
2024-03-13 20:06   ` Chris Hyser
2024-03-13  1:24 ` [PATCH v2 11/15] sched/deadline: Mark DL server as unthrottled before enqueue Joel Fernandes (Google)
2024-04-05  8:54   ` Daniel Bristot de Oliveira
2024-03-13  1:24 ` [PATCH v2 12/15] sched/deadline: Reverse args to dl_time_before in replenish Joel Fernandes (Google)
2024-04-05  8:54   ` Daniel Bristot de Oliveira
2024-03-13  1:24 ` [PATCH v2 13/15] sched/deadline: Make start_dl_timer callers more robust Joel Fernandes (Google)
2024-04-05  9:10   ` Daniel Bristot de Oliveira
2024-03-13  1:24 ` [PATCH v2 14/15] sched/deadline: Do not restart the DL server on replenish from timer Joel Fernandes (Google)
2024-04-05  9:11   ` Daniel Bristot de Oliveira
2024-03-13  1:24 ` [PATCH v2 15/15] sched/deadline: Always start a new period if CFS exceeded DL runtime Joel Fernandes (Google)
2024-04-05  9:19   ` Daniel Bristot de Oliveira

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®