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 (EXPERIMENTAL)"
19	default y
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 (EXPERIMENTAL)"
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 (EXPERIMENTAL)"
34	default y
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_CREDIT2_DEFAULT
43
44	config SCHED_CREDIT_DEFAULT
45		bool "Credit Scheduler" if SCHED_CREDIT
46	config SCHED_CREDIT2_DEFAULT
47		bool "Credit2 Scheduler" if SCHED_CREDIT2
48	config SCHED_RTDS_DEFAULT
49		bool "RT Scheduler" if SCHED_RTDS
50	config SCHED_ARINC653_DEFAULT
51		bool "ARINC653 Scheduler" if SCHED_ARINC653
52	config SCHED_NULL_DEFAULT
53		bool "Null Scheduler" if SCHED_NULL
54endchoice
55
56config SCHED_DEFAULT
57	string
58	default "credit" if SCHED_CREDIT_DEFAULT
59	default "credit2" if SCHED_CREDIT2_DEFAULT
60	default "rtds" if SCHED_RTDS_DEFAULT
61	default "arinc653" if SCHED_ARINC653_DEFAULT
62	default "null" if SCHED_NULL_DEFAULT
63	default "credit2"
64
65endmenu
66