Re: [Query] [GUEST PAGE HINTING] How to handle virtqueue_kick from the guest in QEMU

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

 



On 11.08.2017 23:00, Nitesh Narayan Lal wrote:
> Hi,
> 
> In my project of "Guest Page Hinting"[1], I have a list of pages which
> are supposed to be passed to the host. Now I am trying to figure out the
> changes which I should make in QEMU in order to pass this request to the
> host.

Will you only inform about "this page is free" or also about "I will
reuse this page" if you agree? (relevant because of
VIRTIO_BALLOON_F_MUST_TELL_HOST)

> 
> Unlike virtio balloon where the request to deflate/inflate is derived
> from the host, in my case, I need to figure out how the request which is
> generated in the guest could be received in QEMU. One way to go about
> this is to have my own function pointer pointing a to a function
> qemu_page_hinting() in virtio-balloon.c under QEMU. Now the part where I
> am not sure is how exactly I will ensure that when virtqueue_kick
> arrives in QEMU this function is invoked. (I am planning to use the same
> deflate_vq for my use-case).

Requests to inflate/deflate are always communicated via config updates.

The inflate queue is always guest->host controlled: tell_host() waits
until control is handed back.

On the QEMU side, virtio_balloon_handle_output() will simply
MADV_DONTNEED, independent of any requested config changes if I am not
mistaking.

> 
> Another way could be to make changes in the existing
> "virtio_balloon_handle_output" and may add another flag in the virtqueue
> structure using which I could distinguish if it's a guest page hinting
> request. But even in this case, I am not sure how will it work because
> from what I understood when a user sends a deflate request then this
> function gets invoked and after all the processing it notifies the
> guest. (Which is opposite of what I am trying to achieve).

Can you elaborate what exactly the problem is with
virtio_balloon_handle_output()?

>From what I recap:

1. the queue is completely guest->host controlled
2. after every inflate/deflate request, control is given back to the guest

> 
> Any suggestion what should be the right way to go forward?
> 
> [1] https://www.spinics.net/lists/kvm/msg153666.html
> 


-- 

Thanks,

David



[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