WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [RFC] Add static priority into credit scheduler

Su, Disheng wrote:
Not exactly, credits still makes sense for non-RT guests, but these guests only 
propotionally share the rest of cpu(not used by RT guest) based on their 
wieght/credit. If non-RT guest is scheduled in and out, its credit is 
substracted as usual. It has the potential that RT guests monopolise the whole 
cpu, if we don't have other mechanisms to prevent that.

I understand what you mean.
I doubt whether the rest of cpu not used by RT guest is reflected to credit of non-RT guests. If RT guest might monopolize the whole cpu, I think the rest of cpu is nothing, therefore non-RT guests have no credit.

Thanks for your testing with the patch!
In client virtualization, with static priority, the simplest way is to set the 
primary guest and dom0 as the highest priority(can be different priority), 
other auxiliary guests as non-RT guest. I think it *should* sovle the 
audio/video glitch,  I don't test it though. One of issues in this way is that 
other non-RT guests may not have enough CPU/thoughput when user is busy in 
primary guest(e.g playing video, copying files at the same time).
 I remembered that I heard some audio glitches in some cases with your Bcredit 
before. Maybe static priority can be helpful but with a somewhat heavy way...
Could you kindly have a test with this configuration?

As you sad, I set dom0 and HVM to RT priority(1) and tested.
Regretfully, HVM does not work well.

Attached file is output of "xm debug-keys r".

Best regards,
Naoki Nishiguchi
(XEN) Scheduler: SMP Credit Scheduler (credit)
(XEN) info:
(XEN)   ncpus              = 4
(XEN)   master             = 0
(XEN)   credit             = 1200
(XEN)   credit balance     = 0
(XEN)   weight             = 0
(XEN)   runq_sort          = 25322
(XEN)   default-weight     = 256
(XEN)   msecs per tick     = 10ms
(XEN)   credits per tick   = 100
(XEN)   ticks per tslice   = 3
(XEN)   ticks per acct     = 3
(XEN)   migration delay    = 0us
(XEN) idlers: 0000000a
(XEN) active vcpus:
(XEN) 
(XEN) active vcpus in rt dom:
(XEN)     1: [3.3] pri=1 flags=0 cpu=2 credit=0 [w=256]
(XEN)     2: [3.0] pri=1 flags=0 cpu=3 credit=0 [w=256]
(XEN)     3: [3.1] pri=1 flags=0 cpu=2 credit=0 [w=256]
(XEN)     4: [3.2] pri=1 flags=0 cpu=1 credit=300 [w=256]
(XEN)     5: [0.2] pri=1 flags=0 cpu=3 credit=0 [w=256]
(XEN)     6: [0.3] pri=1 flags=0 cpu=0 credit=-100 [w=256]
(XEN)     7: [0.0] pri=1 flags=0 cpu=2 credit=0 [w=256]
(XEN)     8: [0.1] pri=1 flags=0 cpu=1 credit=0 [w=256]
(XEN) sched_smt_power_savings: disabled
(XEN) NOW=0x00000131829AAF25
(XEN) CPU[00]  sort=25322, sibling=00000001, core=0000000f
(XEN)   run: [0.3] pri=1 flags=0 cpu=0 credit=-100 [w=256]
(XEN)   runq:
(XEN)     1: [32767.0] pri=-64 flags=0 cpu=0
(XEN) 
(XEN) rt_runq:
(XEN) CPU[01]  sort=25322, sibling=00000002, core=0000000f
(XEN)   run: [32767.1] pri=-64 flags=0 cpu=1
(XEN)   runq:
(XEN) 
(XEN) rt_runq:
(XEN) CPU[02]  sort=25322, sibling=00000004, core=0000000f
(XEN)   run: [3.1] pri=1 flags=0 cpu=2 credit=0 [w=256]
(XEN)   runq:
(XEN)     1: [32767.2] pri=-64 flags=0 cpu=2
(XEN) 
(XEN) rt_runq:
(XEN)     1: [3.3] pri=1 flags=0 cpu=2 credit=0 [w=256]
(XEN)     2: [0.0] pri=1 flags=0 cpu=2 credit=0 [w=256]
(XEN) CPU[03]  sort=25322, sibling=00000008, core=0000000f
(XEN)   run: [32767.3] pri=-64 flags=0 cpu=3
(XEN)   runq:
(XEN) 
(XEN) rt_runq:
(XEN) Scheduler: SMP Credit Scheduler (credit)
(XEN) info:
(XEN)   ncpus              = 4
(XEN)   master             = 0
(XEN)   credit             = 1200
(XEN)   credit balance     = 0
(XEN)   weight             = 0
(XEN)   runq_sort          = 25322
(XEN)   default-weight     = 256
(XEN)   msecs per tick     = 10ms
(XEN)   credits per tick   = 100
(XEN)   ticks per tslice   = 3
(XEN)   ticks per acct     = 3
(XEN)   migration delay    = 0us
(XEN) idlers: 0000000a
(XEN) active vcpus:
(XEN) 
(XEN) active vcpus in rt dom:
(XEN)     1: [3.3] pri=1 flags=0 cpu=2 credit=0 [w=256]
(XEN)     2: [3.0] pri=1 flags=0 cpu=3 credit=0 [w=256]
(XEN)     3: [3.1] pri=1 flags=0 cpu=2 credit=0 [w=256]
(XEN)     4: [3.2] pri=1 flags=0 cpu=1 credit=300 [w=256]
(XEN)     5: [0.2] pri=1 flags=0 cpu=3 credit=0 [w=256]
(XEN)     6: [0.3] pri=1 flags=0 cpu=0 credit=-100 [w=256]
(XEN)     7: [0.0] pri=1 flags=0 cpu=2 credit=0 [w=256]
(XEN)     8: [0.1] pri=1 flags=0 cpu=1 credit=0 [w=256]
(XEN) sched_smt_power_savings: disabled
(XEN) NOW=0x000001346A19FB21
(XEN) CPU[00]  sort=25322, sibling=00000001, core=0000000f
(XEN)   run: [0.3] pri=1 flags=0 cpu=0 credit=-100 [w=256]
(XEN)   runq:
(XEN)     1: [32767.0] pri=-64 flags=0 cpu=0
(XEN) 
(XEN) rt_runq:
(XEN) CPU[01]  sort=25322, sibling=00000002, core=0000000f
(XEN)   run: [32767.1] pri=-64 flags=0 cpu=1
(XEN)   runq:
(XEN) 
(XEN) rt_runq:
(XEN) CPU[02]  sort=25322, sibling=00000004, core=0000000f
(XEN)   run: [3.3] pri=1 flags=0 cpu=2 credit=0 [w=256]
(XEN)   runq:
(XEN)     1: [32767.2] pri=-64 flags=0 cpu=2
(XEN) 
(XEN) rt_runq:
(XEN)     1: [3.1] pri=1 flags=0 cpu=2 credit=0 [w=256]
(XEN)     2: [0.0] pri=1 flags=0 cpu=2 credit=0 [w=256]
(XEN) CPU[03]  sort=25322, sibling=00000008, core=0000000f
(XEN)   run: [32767.3] pri=-64 flags=0 cpu=3
(XEN)   runq:
(XEN) 
(XEN) rt_runq:

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel