1menu "Schedulers"
2	visible if EXPERT
3
4config SCHED_CREDIT
5	bool "Credit scheduler support"
6	default y
7	help
8	  The traditional credit scheduler is a general purpose scheduler.
9
10config SCHED_CREDIT2
11	bool "Credit2 scheduler support"
12	default y
13	help
14	  The credit2 scheduler is a general purpose scheduler that is
15	  optimized for lower latency and higher VM density.
16
17config SCHED_RTDS
18	bool "RTDS scheduler support (UNSUPPORTED)" if UNSUPPORTED
19	default DEBUG
20	help
21	  The RTDS scheduler is a soft and firm real-time scheduler for
22	  multicore, targeted for embedded, automotive, graphics and gaming
23	  in the cloud, and general low-latency workloads.
24
25config SCHED_ARINC653
26	bool "ARINC653 scheduler support (UNSUPPORTED)" if UNSUPPORTED
27	default DEBUG
28	help
29	  The ARINC653 scheduler is a hard real-time scheduler for single
30	  cores, targeted for avionics, drones, and medical devices.
31
32config SCHED_NULL
33	bool "Null scheduler support (UNSUPPORTED)" if UNSUPPORTED
34	default PV_SHIM || DEBUG
35	help
36	  The null scheduler is a static, zero overhead scheduler,
37	  for when there always are less vCPUs than pCPUs, typically
38	  in embedded or HPC scenarios.
39
40choice
41	prompt "Default Scheduler?"
42	default SCHED_NULL_DEFAULT if PV_SHIM_EXCLUSIVE
43	default SCHED_CREDIT2_DEFAULT
44
45	config SCHED_CREDIT_DEFAULT
46		bool "Credit Scheduler" if SCHED_CREDIT
47	config SCHED_CREDIT2_DEFAULT
48		bool "Credit2 Scheduler" if SCHED_CREDIT2
49	config SCHED_RTDS_DEFAULT
50		bool "RT Scheduler" if SCHED_RTDS
51	config SCHED_ARINC653_DEFAULT
52		bool "ARINC653 Scheduler" if SCHED_ARINC653
53	config SCHED_NULL_DEFAULT
54		bool "Null Scheduler" if SCHED_NULL
55endchoice
56
57config SCHED_DEFAULT
58	string
59	default "credit" if SCHED_CREDIT_DEFAULT
60	default "credit2" if SCHED_CREDIT2_DEFAULT
61	default "rtds" if SCHED_RTDS_DEFAULT
62	default "arinc653" if SCHED_ARINC653_DEFAULT
63	default "null" if SCHED_NULL_DEFAULT
64	default "credit2"
65
66endmenu
67
68config BOOT_TIME_CPUPOOLS
69	bool "Create cpupools at boot time"
70	depends on HAS_DEVICE_TREE_DISCOVERY
71	help
72	  Creates cpupools during boot time and assigns cpus to them. Cpupools
73	  options can be specified in the device tree.
74