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
|