 
	
| [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 |