[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3025ad3e90ec5c6b48e3101174ab090e054f4c9a.camel@linux.intel.com>
Date: Tue, 07 Jan 2020 08:37:02 -0800
From: Alexander Duyck <alexander.h.duyck@...ux.intel.com>
To: weiqi <weiqi4@...wei.com>, alex.williamson@...hat.com
Cc: kvm@...r.kernel.org, linux-kernel@...r.kernel.org,
pbonzini@...hat.com, x86@...nel.org
Subject: Re: [PATCH 0/2] page hinting add passthrough support
On Tue, 2020-01-07 at 22:46 +0800, weiqi wrote:
> From: wei qi <weiqi4@...wei.com>
>
>
> I just implemented dynamically updating the iommu table to support pass-through,
> It seen to work fine.
>
> Test:
> start a 4G vm with 2M hugetlb and ixgbevf passthrough,
> GuestOS: linux-5.2.6 + (mm / virtio: Provide support for free page reporting)
> HostOS: 5.5-rc4
> Host: Intel(R) Xeon(R) Gold 6161 CPU @ 2.20GHz
>
> after enable page hinting, free pages at GuestOS can be free at host.
>
>
> before,
> # cat /sys/devices/system/node/node*/hugepages/hugepages-2048kB/free_hugepages
> 5620
> 5620
> after start VM,
> # numastat -c qemu
>
> Per-node process memory usage (in MBs)
> PID Node 0 Node 1 Total
> --------------- ------ ------ -----
> 24463 (qemu_hotr 6 6 12
> 24479 (qemu_tls_ 0 8 8
> 70718 (qemu-syst 58 539 597
> --------------- ------ ------ -----
> Total 64 553 616
> # cat /sys/devices/system/node/node*/hugepages/hugepages-2048kB/free_hugepages
> 5595
> 5366
>
> the modify at qemu,
> +int kvm_discard_range(struct kvm_discard_msg discard_msg)
> +{
> + return kvm_vm_ioctl(kvm_state, KVM_DISCARD_RANGE, &discard_msg);
> +}
>
> static void virtio_balloon_handle_report(VirtIODevice *vdev, VirtQueue *vq)
> {
> ..................
> + discard_msg.in_addr = elem->in_addr[i];
> + discard_msg.iov_len = elem->in_sg[i].iov_len;
>
> ram_block_discard_range(rb, ram_offset, size);
> + kvm_discard_range(discard_msg);
>
> then, further test network bandwidth, performance seem ok.
>
> Is there any hidden problem in this implementation?
How is it you are avoiding triggering the call to qemu_balloon_inhibit in
QEMU?
> And, is there plan to support pass-throughyour?
It wasn't something I was immediately planning to do. Before we got there
we would need to really address the fact that the host has no idea what
pages the device could be accessing since normally the entire guest is
pinned. I guess these patches are a step toward addressing that?
Powered by blists - more mailing lists