> The basic issue is that on many architectures, the hardware MMU does
> *not* hold all mappings, and even if it does, performing MMU translation
> in software can be prohibitively complicated and slow. As a worst-case
> scenario, consider a software-controlled TLB which can hold a small
> finite number of simultaneous mappings. On the embedded PowerPC 440
> cores I'm working on, that number is 64. There is no hardware table
> walker.
>
> That means that if the hypervisor is passed a virtual address, it may
> not be present in the MMU at all. Ordinarily the hardware would  deliver
> a TLB miss interrupt to the kernel, and the kernel would insert the
> appropriate mapping (as calculated or found in software-only data
> structures). However, consider the locking nightmare if the hypervisor
> delivers an interrupt while "inside" a guest hypercall...

that makes a lot of sense, thank you for the explanation.

> Longs everywhere. :) And not just that, but you are cementing this
> particular layout of timespec into the guest ABI. There is nothing to
> prevent Linux from changing timespec in some future version...

Yeah, have figured it out.
I think I'll stick to two fields then, with u64 for seconds and nanoseconds.
Or would it just be better to use a u64 nanoseconds field?

A _lot_ of time should have passed before such counter overflows. So
having two is possibly overkill.

-- 
Glauber de Oliveira Costa.
"Free as in Freedom"
http://glommer.net

"The less confident you are, the more serious you have to act."

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to