Re: [Qemu-devel] the arm cache coherency cluster v2

2015-05-03 Thread Alexander Graf


On 18.03.15 20:18, Andrew Jones wrote:
 On Wed, Mar 18, 2015 at 03:08:20PM -0400, Andrew Jones wrote:
 In reply to this message I'll send two series' one for KVM and
 one for QEMU. The two series' are their respective component
 complements, and attempt to implement cache coherency for arm
 guests using emulated devices, where the emulator (qemu) uses
 cached memory for the device memory, but the guest uses
 uncached - as device memory is generally used. Right now I've
 just focused on VGA vram.

 This approach is the MADV_UNCACHED type that Paolo suggested.
 This type of approach could also be described as make userspace's
 memory access type match the expected access type of the guest,
 and Mario has suggested using a memory driver, which could have
 the same result.

 The coming series' is inspired by both Paolo's and Mario's
 suggestions, but it uses a kvm memslot flag, rather than an
 madvise flag, and thus for the memory driver, it's just KVM.

 See the thread

 https://lists.gnu.org/archive/html/qemu-devel/2015-03/msg01254.html

 for some more background.

 Thanks in advance for comments.

 drew
 
 I forgot to mention that I've done some light testing with this.
 It seems to work, and without (to eye) noticeable performance
 degradation.

Just for the record, I couldn't get it to work :). But I'm looking
forward to the next version with MMU notifiers!


Alex



[Qemu-devel] the arm cache coherency cluster v2

2015-03-18 Thread Andrew Jones
In reply to this message I'll send two series' one for KVM and
one for QEMU. The two series' are their respective component
complements, and attempt to implement cache coherency for arm
guests using emulated devices, where the emulator (qemu) uses
cached memory for the device memory, but the guest uses
uncached - as device memory is generally used. Right now I've
just focused on VGA vram.

This approach is the MADV_UNCACHED type that Paolo suggested.
This type of approach could also be described as make userspace's
memory access type match the expected access type of the guest,
and Mario has suggested using a memory driver, which could have
the same result.

The coming series' is inspired by both Paolo's and Mario's
suggestions, but it uses a kvm memslot flag, rather than an
madvise flag, and thus for the memory driver, it's just KVM.

See the thread

https://lists.gnu.org/archive/html/qemu-devel/2015-03/msg01254.html

for some more background.

Thanks in advance for comments.

drew



Re: [Qemu-devel] the arm cache coherency cluster v2

2015-03-18 Thread Andrew Jones
On Wed, Mar 18, 2015 at 03:08:20PM -0400, Andrew Jones wrote:
 In reply to this message I'll send two series' one for KVM and
 one for QEMU. The two series' are their respective component
 complements, and attempt to implement cache coherency for arm
 guests using emulated devices, where the emulator (qemu) uses
 cached memory for the device memory, but the guest uses
 uncached - as device memory is generally used. Right now I've
 just focused on VGA vram.
 
 This approach is the MADV_UNCACHED type that Paolo suggested.
 This type of approach could also be described as make userspace's
 memory access type match the expected access type of the guest,
 and Mario has suggested using a memory driver, which could have
 the same result.
 
 The coming series' is inspired by both Paolo's and Mario's
 suggestions, but it uses a kvm memslot flag, rather than an
 madvise flag, and thus for the memory driver, it's just KVM.
 
 See the thread
 
 https://lists.gnu.org/archive/html/qemu-devel/2015-03/msg01254.html
 
 for some more background.
 
 Thanks in advance for comments.
 
 drew

I forgot to mention that I've done some light testing with this.
It seems to work, and without (to eye) noticeable performance
degradation.

Thanks,
drew