Thread (1 message) 1 message, 1 author, 2019-01-13

Re: [PATCH v3 0/5] kvm "virtio pmem" device

From: Pankaj Gupta <hidden>
Date: 2019-01-13 01:38:39

On Thu 10-01-19 12:26:17, Dave Chinner wrote:
quoted
On Wed, Jan 09, 2019 at 08:17:31PM +0530, Pankaj Gupta wrote:
quoted
 This patch series has implementation for "virtio pmem".
 "virtio pmem" is fake persistent memory(nvdimm) in guest
 which allows to bypass the guest page cache. This also
 implements a VIRTIO based asynchronous flush mechanism.
Hmmmm. Sharing the host page cache direct into the guest VM. Sounds
like a good idea, but.....

This means the guest VM can now run timing attacks to observe host
side page cache residency, and depending on the implementation I'm
guessing that the guest will be able to control host side page
cache eviction, too (e.g. via discard or hole punch operations).

Which means this functionality looks to me like a new vector for
information leakage into and out of the guest VM via guest
controlled host page cache manipulation.

https://arxiv.org/pdf/1901.01161

I might be wrong, but if I'm not we're going to have to be very
careful about how guest VMs can access and manipulate host side
resources like the page cache.....
Right. Thinking about this I would be more concerned about the fact that
guest can effectively pin amount of host's page cache upto size of the
device/file passed to guest as PMEM, can't it Pankaj? Or is there some QEMU
magic that avoids this?
Yes, guest will pin these host page cache pages using 'get_user_pages' by
elevating the page reference count. But these pages can be reclaimed by host
at any time when there is memory pressure.

KVM does not permanently pin pages. vfio does that but we are not using
it here.

Could you please elaborate what you are thinking?

Thanks,
Pankaj
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help