[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] RTDS with extra time issue



Hello Dario,


On 16.02.18 20:37, Dario Faggioli wrote:
And what is it that is running in DomR, the same thing as before, when
the load was synthetic?
For sure I compare apples to apples.

And in any case, is it, in its turn (I mean the
workload running in DomR) a synthetic real-time load, or is it a real
real-time application?
Real-time domain is synthetic, though. I'm using LITMUS-RT system for the DomR. In particular with amount of work based configuration [1] introduced recently.

If the latter, are you sure the misses are not due to the fact that,
for instance, the rt app does not always behave as measured/expected,
when computing the parameters?
Even for the synthetic rt workload some deviations in execution time are noticed (~0.5%). But with no IRQ extensive load in application domains, no DL misses are noticed in RT domain.

Well this provides some ground for another my concern about XEN
scheduling approach. My doubt is that scheduling is done within
softirq,
so all time spent with pcpu for exception itself and possible timer
actions is accounted for the vcpu which context was interrupted.
I am not sure I fully understand this.
My idea is to charge time spent in hypervisor from current vcpu budget, except serving that vcpu hypercalls and handling interrupts targeted current vcpu. Same as you expressed:

Because if DomX was running, and we entered Xen because an interrupt
arrived to deal with a timer or whatever from DomY, then I agree it's
not fair to charge DomX for that. But, OTOH, if we are in Xen because
DomX itself called an hypercall, then it is indeed ok to charge DomX.
For RT scheduling this would make big difference.

If you're worried about some kind of overhead may be consuming some of
your real-time reservation, try to increase the reservation itself a
bit, and see if the misses disappear.
Its not about overhead but unfair time accounting. And this unfairness is pretty arbitrary, depends on other domains activity.

One difference could be that Linux can be configured to be fully
preemptible --even the kernel-- while Xen is not. But I don't think
this is what you're hinting at, is it?
No, it is not.
If we are speaking about Linux, it much closer to CONFIG_IRQ_TIME_ACCOUNTING [1].

And note that this does not have much to do with how schedule() gets
called. :-)
In current implementation it does matter *when* `schedule()` is called. Because time accounting is done by passing `now` time value to `sched->do_schedule()` right in `schedule()`.

[1] https://github.com/LITMUS-RT/liblitmus/pull/3
[2] https://lkml.org/lkml/2011/2/10/135

--

*Andrii Anisov*



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.