[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 0/5] Towards work-conserving RTDS
On Mon, 2017-10-02 at 17:38 +0300, Andrii Anisov wrote: > Hello Meng Xu and Dario, > Hi, > On 01.09.17 18:58, Meng Xu wrote: > > This series of patches make RTDS scheduler work-conserving > > without breaking real-time guarantees. > > VCPUs with extratime flag set can get extra time > > from the unreserved system resource. > > System administrators can decide which VCPUs have extratime flag > > set. > > As I understand from threads and the code, the work conserving > algorithm > is quite simplistic and will prefer a vcpu with greater utilization. > > From our side we are looking for a bit different solution. I.e., in > the > same cpupool, running vcpus eager for RT characteristics under EDF > conditions, and share the rest of resources between non-rt vcpus > (i.e. > in a credit manner). > Possible use-case could be a system with a domain hunger for > resources, > but not critical (some infotainment system) and an RT domain > utilizing > at most 20% of a single CPU core. Having a SoC with 4 cores, > partitioning would be a significant resources wasting for described > scenario. > IMO, this is interesting, but I think the proper way to achieve something like this is not modify RTDS to also contain something like Credit, nor to modify Credit to also contain something like RTDS. The idea I have in mind to serve the use case you're describing is as follows. Right now, a cpupool can only have a scheduler. If it's RTDS, all the domains are scheduler with RTDS, if it's Credit, all the domains are scheduled with Credit, etc. My idea would be to allow a stack of schedulers in a cpupool. Basically, you'd configure a cpupool with sched="rtds,credit2" and then you specify, for each domain, what scheduler you want it to use. The end result would be that, in the example above, domains scheduler with Credit2 would run in the time left free by the domains scheduler by RTDS. E.g., if you have a cpupool with only 1 CPU, an RTDS domain with P=100,B=20, an RTDS domain with P=1000,B=40, and two Credit2 domains, one with weight 256 and the other with weight 512. Then, the two RTDS domains will get 20% and 40% of the CPU, while the two Credit2 domains will share the remaining 40% (the one with w=512 getting twice as much as the one with w=256). This is kind of similar with what Linux does with scheduling classes, but even more flexible. I am not working on implementing this right now, because I'm busy with other things, but I would like to do that at some point. And if you're up for helping, that would be great! :-) Dario -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) Attachment:
signature.asc _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |