On Mon, Oct 2, 2017 at 1:04 PM, Dario Faggioli <dario.faggi...@citrix.com> wrote:
> 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 was thinking about Linux scheduling class as well. :) I think this is a great idea. :) > 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! :-) > Right now, I'm with busy with a deadline. I will take care of the work-conserving RTDS next week. As to supporting different scheduling class on the same cpupool, I'm not yet sure when I'm available for this. :( Best, Meng -- Meng Xu Ph.D. Candidate in Computer and Information Science University of Pennsylvania http://www.cis.upenn.edu/~mengxu/
_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel