[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 3/6] xen: sched: clarify use cases of schedule_cpu_switch()
On Fri, 2015-10-30 at 00:04 +0100, Dario Faggioli wrote: > schedule_cpu_switch() is meant to be only used for moving > pCPUs from a cpupool to no cpupool, and from there back > to a cpupool, *not* to move them directly from one cpupool > to another. > > This is something that is reflected in the way it is > implemented, and should be kept in mind when looking at > it. However, that is not that clear, by just the look of > it. > > Make it more evident by: > - adding commentary and ASSERT()s; > - update the cpupool per-CPU variable (mapping pCPUs to > pools) directly in schedule_cpu_switch(), rather than > in various places in cpupool.c. > > Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx> > Acked-by: Juergen Gross <jgross@xxxxxxxx> > BTW, Juergen, I had the whole series tested with the script below, for a few hourse, as per your suggestion to help confirming that this patch is actually correct, as it seems by just looking at the code. Since everything was fine, I added your Ack, as you said I could. Regards, Dario #!/bin/bash set -ex xl cpupool-cpu-remove Pool-0 0,2,4,6,8,10,12,14 xl cpupool-create name=\"Pool-even\" cpus=\"0,2,4,6,8,10,12,14\" sched=\"credit\" xl cpupool-rename Pool-0 Pool-odd # Switch CPUs between pools function switchcpus() { while true; do for i in `seq 0 2 15`; do xl cpupool-cpu-remove Pool-even $i xl cpupool-cpu-add Pool-odd $i xl cpupool-list -c sleep $(($RANDOM%5)) xl cpupool-cpu-remove Pool-odd $i xl cpupool-cpu-add Pool-even $i done for i in `seq 1 2 15`; do echo $i xl cpupool-cpu-remove Pool-odd $i xl cpupool-cpu-add Pool-even $i xl cpupool-list -c sleep $(($RANDOM%5)) xl cpupool-cpu-remove Pool-even $i xl cpupool-cpu-add Pool-odd $i done xl cpupool-list -c done } # Moving a domain between pools function movedomain() { xl create vms/vm1.cfg pool=\"Pool-odd\" sleep 10 while true; do xl cpupool-migrate vm1 Pool-even sleep $(($RANDOM%10)) xl cpupool-migrate vm1 Pool-odd sleep $(($RANDOM%10)) done } # creating and destroying a domain function createdestroydomain() { while true; do xl create vms/vm2.cfg pool=\"Pool-odd\" xl list -c sleep $((10+$RANDOM%10)) xl destroy vm2 sleep $(($RANDOM%5)) xl create vms/vm2.cfg pool=\"Pool-even\" xl list -c sleep $((10+$RANDOM%10)) xl destroy vm2 done } switchcpus & movedomain & createdestroydomain & -- <<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 http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |