Re: [PATCH 0/8] use jump labels to streamline common APIC configuration

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

 



On 2012-08-14 19:00, Avi Kivity wrote:
> On 08/14/2012 07:38 PM, Jan Kiszka wrote:
>> On 2012-08-14 18:21, Avi Kivity wrote:
>>> On 08/14/2012 05:58 PM, Jan Kiszka wrote:
>>>>>>
>>>>>> And regarding how common they are: Do standard OSes trigger any
>>>>>> jump-label optimized switch during at least their boot-up? I thought so.
>>>>>> In that case, if you co-locate RT and standard OSes on a shared host,
>>>>>> you would have a conflict.
>>>>>>
>>>>> Yes, during boot up it happens. But it is rate limited to happen not
>>>>> more than once per second. But I genuinely curious does RT guest have
>>>>> any RT guaranties from QEMU/kvm combination today (with of without
>>>>> jump-labels)?
>>>>
>>>> Yes, when avoiding userspace exits. If you have a customized RTOS guest
>>>> or are lucky with some existing one, that works pretty well for periodic
>>>> processing in the 1 ms range.
>>>
>>> I'd have expected better.
>>
>> It can be but I would not yet count on it - therefore this conservative
>> number. Also, the number of VM exists per period is, of course, an
>> increasingly relevant factor when going down with the cycle time. So,
>> actually, you can only define the latency as function of various
>> workload parameters.
> 
> Right.  These can be divided into guest induced exits (like APIC writes)
> and host induced exits (like external interrupts).  The former would be
> more predictable, while the latter can be part of the background load,
> so I expect them to be more problematic.  Does this match your experience?

Yep. Thanks to CPU isolation, we can control the latter to some degree
as well.

> 
> There is ongoing work to reduce unneeded IPIs, or confine them to
> affected processors, this should help us in the long run.

Indeed. The vision is 100% guest/KVM load on a dedicated core.

> 
>>
>>>
>>> For more formal support, we need some ioctl() to pre-populate mappings,
>>> or perhaps extend mmu notifiers to report mlock un munlock operations
>>> and take them as a hint to premap.
>>
>> Of course, we are doing mlockall(CURRENT|FUTURE) for RT. As unpopulated
>> mappings it didn't show up as latency source so far, I haven't looked at
>> this closer. Which mappings could still be unpopulated?
> 
> I expect none, since the guest application probably touches all memory
> as part of initialization.  That's what I meant by "formal": it's a
> latency source that doesn't occur in practice, but the host cannot
> guarantee that.
> 
> We need to examine anything that can synchronize_rcu().  Luckily I don't
> think we have anything like that in normal paths anymore.

Yep, that matches our observation - in a particular setup at least.

Jan

-- 
Siemens AG, Corporate Technology, CT RTC ITP SDP-DE
Corporate Competence Center Embedded Linux
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux