[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH v1 00/16] xen: sched: implement core-scheduling
Hello, As anticipated here: https://lists.xenproject.org/archives/html/xen-devel/2018-08/msg02052.html Here's a preliminary version of my work, trying to implement core-scheduling in Xen. First of all, this deals with Credit1 only. I have patches for Credit2, and I've been working on having them ready by today, but I could not defeat the latest bugs. :-/ I'll post them when back from vacation. Just let me anticipate, that doing something like this in Credit2, is a lot simpler than what you see here for Credit1. Even these patches that I'm posting are not perfect, and In fact there are some TODOs and XXXs --both in the changelogs and in the code. They give me a system that boots, where I can do basic stuff (like playing with dom0, creating guests, etc), and where the constraint of only scheduling vcpus from one domain at a time on pcpus that are part of the same core is, as far as I've seen, respected. There are still cases where the behavior is unideal, e.g., we could make a better use of some of the cores which are, some of the times, left idle. There are git branches here: https://gitlab.com/dfaggioli/xen.git rel/sched/core-scheduling-RFCv1 https://github.com/fdario/xen.git rel/sched/core-scheduling-RFCv1 Any comment is more than welcome. Regards, Dario --- Dario Faggioli (16): xen: Credit1: count runnable vcpus, not running ones xen: Credit1: always steal from pcpus with runnable but not running vcpus xen: Credit1: do not always tickle an idle pcpu xen: sched: make the logic for tracking idle core generic. xen: Credit1: track fully idle cores. xen: Credit1: check for fully idle cores when tickling xen: Credit1: reorg __runq_tickle() code a bit. xen: Credit1: reorg csched_schedule() code a bit. xen: Credit1: SMT-aware domain co-scheduling parameter and data structs xen: Credit1: support sched_smt_cosched in csched_schedule() xen: Credit1: support sched_smt_cosched in _csched_cpu_pick() xen: Credit1: support sched_smt_cosched in csched_runq_steal(). xen: Credit1: sched_smt_cosched support in __csched_vcpu_is_migrateable(). xen: Credit1: sched_smt_cosched support in __runq_tickle() for pinned vcpus. xen: Credit1: sched_smt_cosched support in __runq_tickle(). xen/tools: tracing of Credit1 SMT domain co-scheduling support docs/misc/xen-command-line.markdown | 11 + tools/xentrace/xenalyze.c | 85 +++++- xen/common/sched_credit.c | 532 +++++++++++++++++++++++++++-------- xen/common/sched_credit2.c | 128 +++----- xen/common/schedule.c | 7 xen/include/xen/sched.h | 42 +++ 6 files changed, 603 insertions(+), 202 deletions(-) -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Software Engineer @ SUSE https://www.suse.com/ _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |