Hi Dario,

Thank you very much for writing this nice document!
Sorry for the late reply...

I found two typos in the command example.
I saw the patch has been committed. Maybe I (or you) should send a
patch to correct the typo?
> +
> +For checking or changing a VM's scheduling parameters from xl, do
> +as follows:
> +    * `xl sched-rtds -d vm-rt`

It should be
xl sched-rtds -d vm-rt -v all

> +    * `xl sched-rtds -d vm-rt -t 10000 -b 25000`

There are three typos:
1) We don't support "-t" option.
2) We must specify -v in the latest Xen. (Once the per-vcpu parameter
is supported, we won't support setting a VM's parameter like this. The
toolstack will reports error.)
3) The budget 25000 is larger than the period.

It should be:
sudo xl sched-rtds -d vm-rt -v all -p 10000 -b 2500

> +
> +It is possible, for a multiple vCPUs VM, to change the parameters of
> +each vCPU individually:
> +    * `xl sched-rtds -d vm-rt -v 0 -p 20000 -b 10000 -v 1 -p 45000 -b 12000`

This is correct.

> +
> +# Technical details
> +
> +Implementation entirely lives in the hypervisor. Xen has a pluggable,
> +hook based, architecture for schedulers. Thanks to this, RTDS code
> +is all contained in `xen/common/sched_rtds.c`.
> +
> +In libxl, the availability of the RTDS scheduler is advertised by
> +the presence of the LIBXL\_HAVE\_SCHED\_RTDS symbol. The ability of
> +specifying different scheduling parameters for each vcpu has been
> +introduced later, and is available if the following symbols are defined:
> +
> +# Limitations
> +
> +RTDS is a special purpose scheduling. This is by design, and not at
> +all a limitation, but it is certainly something to keep in mind when
> +thinking about using it. The purpose of the scheduler is enabling
> +deterministic and statically analyzable behavior (as per the
> +real-time academic literature), according to the scheduling parameters
> +assigned to each vCPU.
> +
> +Using RTDS a the Xen scheduler, and/or for general purpose workloads
> +is definitely possible, but the vCPU scheduling parameters (of both
> +Domain0 and of the various VMs) would probably require tweaking, with
> +respect to their default values.
> +
> +# Testing
> +
> +Any change done in RTDS must be tested by doing the following:
> +
> +* create a cpupool with RTDS as its scheduler,
> +* create a few virtual machines a move them in and out of the pool,
> +* create a few virtual machines, directly inside the pool, and verify
> +  that they boot and can run some basic workload (e.g., login into them
> +  and run simple commands),
> +* shutdown/reboot the virtual machines,
> +
> +The fact that the system boots fine when passing `sched=rtds` to Xen
> +should also be verified.
> +
> +Finally, to check that the scheduler is working properly (although only
> +at a macroscopic level), the following should be done:
> +
> +* create a VM with 1 vCPU and put it in the RTDS cpupool,
> +* set the scheduling parameters such as it has a 50% reservation, with
> +  `xl sched-rtds -d vm -t 100000 -b 50000`,

-t here should be -p.
The -v all should be specified here.



Meng Xu
PhD Student in Computer and Information Science
University of Pennsylvania

Xen-devel mailing list

Reply via email to