[Info-vax] clock problems with OpenVMS x86 on VirtualBox

Johnny Billquist bqt at softjar.se
Mon May 15 13:47:19 EDT 2023


On 2023-05-15 15:35, Arne Vajhøj wrote:
> On 5/15/2023 8:51 AM, Johnny Billquist wrote:
>> On 2023-05-15 14:03, Arne Vajhøj wrote:
>>> On 5/15/2023 6:17 AM, Johnny Billquist wrote:
>>>> On 2023-05-13 02:16, Arne Vajhøj wrote:
>>>>> On 5/12/2023 1:30 PM, Simon Clubley wrote:
>>>>>> On 2023-05-12, Dave Froble <davef at tsoft-inc.com> wrote:
>>>>>>> On 5/12/2023 8:14 AM, Simon Clubley wrote:
>>>>>>>> That's going to make for some "interesting" real-time program 
>>>>>>>> behaviour... :-)
>>>>>>>
>>>>>>> Do you think any serious real time programmer will run a real 
>>>>>>> time task inside a
>>>>>>> VM?  I'm not a real time programmer, and I'd still not do that.
>>>>>>
>>>>>> As well as traditional real-time stuff (which I agree with you 
>>>>>> about BTW),
>>>>>
>>>>> I would not want to do it on a type 2 hypervisor - there must be
>>>>> cases where what is happening on the host OS impact the performance
>>>>> of the guest OS.
>>>>>
>>>>> But with a type 1 hypervisor and no over allocation of resources -
>>>>> would it be worse than running on bare metal?
>>>>
>>>> For sure. You have no guarantee that you will get the CPU cycles 
>>>> when you need them. No matter what kind of hypervisor we're talking 
>>>> about, there is overhead in the host that can affect things way more 
>>>> than what might happen on bare metal.
>>>
>>> What host? A type 1 hypervisor does not run a host OS.
>>
>> Um? What is the hypervisor then?
> 
> The hypervisor software like ESXi.
> 
> It is not running on top of a host OS like a type 2 (VirtualBox etc.) does.

I never assumed you had a full OS. However, they Hypervisor is 
intercepting access to hardware, and is responsible for the actual 
interaction with the hardware, adding a layer between the guest OS and 
the hardware. Which means that the hypvervisor is in the end doing 
interrupt handling, for example. Which means that the CPU might be doing 
things that suspends the execution for the hypervisor outside the 
control of the hypervisor itself, and further more makes things like 
interrupts to the guest OS happen at some random later time, including 
clock interrupts, which are what affects things like real-time reponse 
times.

>>> And why would the CPU not be available, when there is no
>>> over allocation of resources? It seems pretty silly of
>>> the hypervisor to not want to give the CPU if no other
>>> VM can get it.
>>
>> Any kind of hypervisor means we're talking about virtualization. That 
>> means you have real hardware which exists outside of this 
>> virtualization. And that hardware can generate interrupts and demand 
>> service, which then forces the hypervisor to wait before it can 
>> actually get any cycles. Outside the control of the hypervisor...
> 
> Maybe. But what would that be?

Primarily I would be worried about interrupts, which introduce unknown 
amout of delay.

But yes, for things like memory, if it is fixed allocated to VM 
instances, and always available, then another potential source of delays 
are at least not there.

Depending on what the hypervisor does, you might still also have issues 
like page table caches, and normal memory caches, which will have rather 
different behaviors compared to plain hardware. Caches are a significant 
factor is performance these days.

   Johnny




More information about the Info-vax mailing list