From: teawater <teawaterz@linux.alibaba.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Hui Zhu <teawater@gmail.com>,
david@redhat.com, jasowang@redhat.com, akpm@linux-foundation.org,
virtualization@lists.linux-foundation.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
qemu-devel@nongnu.org, virtio-dev@lists.oasis-open.org,
Andrea Arcangeli <aarcange@redhat.com>
Subject: Re: [virtio-dev] [RFC for Linux v4 0/2] virtio_balloon: Add VIRTIO_BALLOON_F_CONT_PAGES to report continuous pages
Date: Thu, 16 Jul 2020 15:01:18 +0800 [thread overview]
Message-ID: <744230FA-78D8-4568-8188-683087065E84@linux.alibaba.com> (raw)
In-Reply-To: <20200716021929-mutt-send-email-mst@kernel.org>
> 2020年7月16日 14:38,Michael S. Tsirkin <mst@redhat.com> 写道:
>
> On Thu, Jul 16, 2020 at 10:41:50AM +0800, Hui Zhu wrote:
>> The first, second and third version are in [1], [2] and [3].
>> Code of current version for Linux and qemu is available in [4] and [5].
>> Update of this version:
>> 1. Report continuous pages will increase the speed. So added deflate
>> continuous pages.
>> 2. According to the comments from David in [6], added 2 new vqs inflate_cont_vq
>> and deflate_cont_vq to report continuous pages with format 32 bits pfn and 32
>> bits size.
>> Following is the introduction of the function.
>> These patches add VIRTIO_BALLOON_F_CONT_PAGES to virtio_balloon. With this
>> flag, balloon tries to use continuous pages to inflate and deflate.
>> Opening this flag can bring two benefits:
>> 1. Report continuous pages will increase memory report size of each time
>> call tell_host. Then it will increase the speed of balloon inflate and
>> deflate.
>> 2. Host THPs will be splitted when qemu release the page of balloon inflate.
>> Inflate balloon with continuous pages will let QEMU release the pages
>> of same THPs. That will help decrease the splitted THPs number in
>> the host.
>> Following is an example in a VM with 1G memory 1CPU. This test setups an
>> environment that has a lot of fragmentation pages. Then inflate balloon will
>> split the THPs.
>> // This is the THP number before VM execution in the host.
>> // None use THP.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 0 kB
These lines are from host.
>> // After VM start, use usemem
>> // (https://git.kernel.org/pub/scm/linux/kernel/git/wfg/vm-scalability.git)
>> // punch-holes function generates 400m fragmentation pages in the guest
>> // kernel.
>> usemem --punch-holes -s -1 800m &
These lines are from guest. They setups the environment that has a lot of fragmentation pages.
>> // This is the THP number after this command in the host.
>> // Some THP is used by VM because usemem will access 800M memory
>> // in the guest.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 911360 kB
These lines are from host.
>> // Connect to the QEMU monitor, setup balloon, and set it size to 600M.
>> (qemu) device_add virtio-balloon-pci,id=balloon1
>> (qemu) info balloon
>> balloon: actual=1024
>> (qemu) balloon 600
>> (qemu) info balloon
>> balloon: actual=600
These lines are from host.
>> // This is the THP number after inflate the balloon in the host.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 88064 kB
These lines are from host.
>> // Set the size back to 1024M in the QEMU monitor.
>> (qemu) balloon 1024
>> (qemu) info balloon
>> balloon: actual=1024
These lines are from host.
>> // Use usemem to increase the memory usage of QEMU.
>> killall usemem
>> usemem 800m
These lines are from guest.
>> // This is the THP number after this operation.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 65536 kB
These lines are from host.
>>
>> Following example change to use continuous pages balloon. The number of
>> splitted THPs is decreased.
>> // This is the THP number before VM execution in the host.
>> // None use THP.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 0 kB
These lines are from host.
>> // After VM start, use usemem punch-holes function generates 400M
>> // fragmentation pages in the guest kernel.
>> usemem --punch-holes -s -1 800m &
These lines are from guest. They setups the environment that has a lot of fragmentation pages.
>> // This is the THP number after this command in the host.
>> // Some THP is used by VM because usemem will access 800M memory
>> // in the guest.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 911360 kB
These lines are from host.
>> // Connect to the QEMU monitor, setup balloon, and set it size to 600M.
>> (qemu) device_add virtio-balloon-pci,id=balloon1,cont-pages=on
>> (qemu) info balloon
>> balloon: actual=1024
>> (qemu) balloon 600
>> (qemu) info balloon
>> balloon: actual=600
These lines are from host.
>> // This is the THP number after inflate the balloon in the host.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 616448 kB
>> // Set the size back to 1024M in the QEMU monitor.
>> (qemu) balloon 1024
>> (qemu) info balloon
>> balloon: actual=1024
These lines are from host.
>> // Use usemem to increase the memory usage of QEMU.
>> killall usemem
>> usemem 800m
These lines are from guest.
>> // This is the THP number after this operation.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 907264 kB
These lines are from host.
>
> I'm a bit confused about which of the above run within guest,
> and which run within host. Could you explain pls?
>
>
I added some introduction to show where these lines is get from.
Best,
Hui
>
>> [1] https://lkml.org/lkml/2020/3/12/144
>> [2] https://lore.kernel.org/linux-mm/1584893097-12317-1-git-send-email-teawater@gmail.com/
>> [3] https://lkml.org/lkml/2020/5/12/324
>> [4] https://github.com/teawater/linux/tree/balloon_conts
>> [5] https://github.com/teawater/qemu/tree/balloon_conts
>> [6] https://lkml.org/lkml/2020/5/13/1211
>>
>> Hui Zhu (2):
>> virtio_balloon: Add VIRTIO_BALLOON_F_CONT_PAGES and inflate_cont_vq
>> virtio_balloon: Add deflate_cont_vq to deflate continuous pages
>>
>> drivers/virtio/virtio_balloon.c | 180 +++++++++++++++++++++++++++++++-----
>> include/linux/balloon_compaction.h | 12 ++
>> include/uapi/linux/virtio_balloon.h | 1
>> mm/balloon_compaction.c | 117 +++++++++++++++++++++--
>> 4 files changed, 280 insertions(+), 30 deletions(-)
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
> For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
WARNING: multiple messages have this Message-ID (diff)
From: teawater <teawaterz@linux.alibaba.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>,
virtio-dev@lists.oasis-open.org, david@redhat.com,
qemu-devel@nongnu.org, jasowang@redhat.com,
linux-kernel@vger.kernel.org,
virtualization@lists.linux-foundation.org, linux-mm@kvack.org,
akpm@linux-foundation.org, Hui Zhu <teawater@gmail.com>
Subject: Re: [virtio-dev] [RFC for Linux v4 0/2] virtio_balloon: Add VIRTIO_BALLOON_F_CONT_PAGES to report continuous pages
Date: Thu, 16 Jul 2020 15:01:18 +0800 [thread overview]
Message-ID: <744230FA-78D8-4568-8188-683087065E84@linux.alibaba.com> (raw)
In-Reply-To: <20200716021929-mutt-send-email-mst@kernel.org>
> 2020年7月16日 14:38,Michael S. Tsirkin <mst@redhat.com> 写道:
>
> On Thu, Jul 16, 2020 at 10:41:50AM +0800, Hui Zhu wrote:
>> The first, second and third version are in [1], [2] and [3].
>> Code of current version for Linux and qemu is available in [4] and [5].
>> Update of this version:
>> 1. Report continuous pages will increase the speed. So added deflate
>> continuous pages.
>> 2. According to the comments from David in [6], added 2 new vqs inflate_cont_vq
>> and deflate_cont_vq to report continuous pages with format 32 bits pfn and 32
>> bits size.
>> Following is the introduction of the function.
>> These patches add VIRTIO_BALLOON_F_CONT_PAGES to virtio_balloon. With this
>> flag, balloon tries to use continuous pages to inflate and deflate.
>> Opening this flag can bring two benefits:
>> 1. Report continuous pages will increase memory report size of each time
>> call tell_host. Then it will increase the speed of balloon inflate and
>> deflate.
>> 2. Host THPs will be splitted when qemu release the page of balloon inflate.
>> Inflate balloon with continuous pages will let QEMU release the pages
>> of same THPs. That will help decrease the splitted THPs number in
>> the host.
>> Following is an example in a VM with 1G memory 1CPU. This test setups an
>> environment that has a lot of fragmentation pages. Then inflate balloon will
>> split the THPs.
>> // This is the THP number before VM execution in the host.
>> // None use THP.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 0 kB
These lines are from host.
>> // After VM start, use usemem
>> // (https://git.kernel.org/pub/scm/linux/kernel/git/wfg/vm-scalability.git)
>> // punch-holes function generates 400m fragmentation pages in the guest
>> // kernel.
>> usemem --punch-holes -s -1 800m &
These lines are from guest. They setups the environment that has a lot of fragmentation pages.
>> // This is the THP number after this command in the host.
>> // Some THP is used by VM because usemem will access 800M memory
>> // in the guest.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 911360 kB
These lines are from host.
>> // Connect to the QEMU monitor, setup balloon, and set it size to 600M.
>> (qemu) device_add virtio-balloon-pci,id=balloon1
>> (qemu) info balloon
>> balloon: actual=1024
>> (qemu) balloon 600
>> (qemu) info balloon
>> balloon: actual=600
These lines are from host.
>> // This is the THP number after inflate the balloon in the host.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 88064 kB
These lines are from host.
>> // Set the size back to 1024M in the QEMU monitor.
>> (qemu) balloon 1024
>> (qemu) info balloon
>> balloon: actual=1024
These lines are from host.
>> // Use usemem to increase the memory usage of QEMU.
>> killall usemem
>> usemem 800m
These lines are from guest.
>> // This is the THP number after this operation.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 65536 kB
These lines are from host.
>>
>> Following example change to use continuous pages balloon. The number of
>> splitted THPs is decreased.
>> // This is the THP number before VM execution in the host.
>> // None use THP.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 0 kB
These lines are from host.
>> // After VM start, use usemem punch-holes function generates 400M
>> // fragmentation pages in the guest kernel.
>> usemem --punch-holes -s -1 800m &
These lines are from guest. They setups the environment that has a lot of fragmentation pages.
>> // This is the THP number after this command in the host.
>> // Some THP is used by VM because usemem will access 800M memory
>> // in the guest.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 911360 kB
These lines are from host.
>> // Connect to the QEMU monitor, setup balloon, and set it size to 600M.
>> (qemu) device_add virtio-balloon-pci,id=balloon1,cont-pages=on
>> (qemu) info balloon
>> balloon: actual=1024
>> (qemu) balloon 600
>> (qemu) info balloon
>> balloon: actual=600
These lines are from host.
>> // This is the THP number after inflate the balloon in the host.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 616448 kB
>> // Set the size back to 1024M in the QEMU monitor.
>> (qemu) balloon 1024
>> (qemu) info balloon
>> balloon: actual=1024
These lines are from host.
>> // Use usemem to increase the memory usage of QEMU.
>> killall usemem
>> usemem 800m
These lines are from guest.
>> // This is the THP number after this operation.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 907264 kB
These lines are from host.
>
> I'm a bit confused about which of the above run within guest,
> and which run within host. Could you explain pls?
>
>
I added some introduction to show where these lines is get from.
Best,
Hui
>
>> [1] https://lkml.org/lkml/2020/3/12/144
>> [2] https://lore.kernel.org/linux-mm/1584893097-12317-1-git-send-email-teawater@gmail.com/
>> [3] https://lkml.org/lkml/2020/5/12/324
>> [4] https://github.com/teawater/linux/tree/balloon_conts
>> [5] https://github.com/teawater/qemu/tree/balloon_conts
>> [6] https://lkml.org/lkml/2020/5/13/1211
>>
>> Hui Zhu (2):
>> virtio_balloon: Add VIRTIO_BALLOON_F_CONT_PAGES and inflate_cont_vq
>> virtio_balloon: Add deflate_cont_vq to deflate continuous pages
>>
>> drivers/virtio/virtio_balloon.c | 180 +++++++++++++++++++++++++++++++-----
>> include/linux/balloon_compaction.h | 12 ++
>> include/uapi/linux/virtio_balloon.h | 1
>> mm/balloon_compaction.c | 117 +++++++++++++++++++++--
>> 4 files changed, 280 insertions(+), 30 deletions(-)
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
> For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
WARNING: multiple messages have this Message-ID (diff)
From: teawater <teawaterz@linux.alibaba.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Hui Zhu <teawater@gmail.com>,
david@redhat.com, jasowang@redhat.com, akpm@linux-foundation.org,
virtualization@lists.linux-foundation.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
qemu-devel@nongnu.org, virtio-dev@lists.oasis-open.org,
Andrea Arcangeli <aarcange@redhat.com>
Subject: Re: [RFC for Linux v4 0/2] virtio_balloon: Add VIRTIO_BALLOON_F_CONT_PAGES to report continuous pages
Date: Thu, 16 Jul 2020 15:01:18 +0800 [thread overview]
Message-ID: <744230FA-78D8-4568-8188-683087065E84@linux.alibaba.com> (raw)
In-Reply-To: <20200716021929-mutt-send-email-mst@kernel.org>
> 2020年7月16日 14:38,Michael S. Tsirkin <mst@redhat.com> 写道:
>
> On Thu, Jul 16, 2020 at 10:41:50AM +0800, Hui Zhu wrote:
>> The first, second and third version are in [1], [2] and [3].
>> Code of current version for Linux and qemu is available in [4] and [5].
>> Update of this version:
>> 1. Report continuous pages will increase the speed. So added deflate
>> continuous pages.
>> 2. According to the comments from David in [6], added 2 new vqs inflate_cont_vq
>> and deflate_cont_vq to report continuous pages with format 32 bits pfn and 32
>> bits size.
>> Following is the introduction of the function.
>> These patches add VIRTIO_BALLOON_F_CONT_PAGES to virtio_balloon. With this
>> flag, balloon tries to use continuous pages to inflate and deflate.
>> Opening this flag can bring two benefits:
>> 1. Report continuous pages will increase memory report size of each time
>> call tell_host. Then it will increase the speed of balloon inflate and
>> deflate.
>> 2. Host THPs will be splitted when qemu release the page of balloon inflate.
>> Inflate balloon with continuous pages will let QEMU release the pages
>> of same THPs. That will help decrease the splitted THPs number in
>> the host.
>> Following is an example in a VM with 1G memory 1CPU. This test setups an
>> environment that has a lot of fragmentation pages. Then inflate balloon will
>> split the THPs.
>> // This is the THP number before VM execution in the host.
>> // None use THP.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 0 kB
These lines are from host.
>> // After VM start, use usemem
>> // (https://git.kernel.org/pub/scm/linux/kernel/git/wfg/vm-scalability.git)
>> // punch-holes function generates 400m fragmentation pages in the guest
>> // kernel.
>> usemem --punch-holes -s -1 800m &
These lines are from guest. They setups the environment that has a lot of fragmentation pages.
>> // This is the THP number after this command in the host.
>> // Some THP is used by VM because usemem will access 800M memory
>> // in the guest.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 911360 kB
These lines are from host.
>> // Connect to the QEMU monitor, setup balloon, and set it size to 600M.
>> (qemu) device_add virtio-balloon-pci,id=balloon1
>> (qemu) info balloon
>> balloon: actual=1024
>> (qemu) balloon 600
>> (qemu) info balloon
>> balloon: actual=600
These lines are from host.
>> // This is the THP number after inflate the balloon in the host.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 88064 kB
These lines are from host.
>> // Set the size back to 1024M in the QEMU monitor.
>> (qemu) balloon 1024
>> (qemu) info balloon
>> balloon: actual=1024
These lines are from host.
>> // Use usemem to increase the memory usage of QEMU.
>> killall usemem
>> usemem 800m
These lines are from guest.
>> // This is the THP number after this operation.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 65536 kB
These lines are from host.
>>
>> Following example change to use continuous pages balloon. The number of
>> splitted THPs is decreased.
>> // This is the THP number before VM execution in the host.
>> // None use THP.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 0 kB
These lines are from host.
>> // After VM start, use usemem punch-holes function generates 400M
>> // fragmentation pages in the guest kernel.
>> usemem --punch-holes -s -1 800m &
These lines are from guest. They setups the environment that has a lot of fragmentation pages.
>> // This is the THP number after this command in the host.
>> // Some THP is used by VM because usemem will access 800M memory
>> // in the guest.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 911360 kB
These lines are from host.
>> // Connect to the QEMU monitor, setup balloon, and set it size to 600M.
>> (qemu) device_add virtio-balloon-pci,id=balloon1,cont-pages=on
>> (qemu) info balloon
>> balloon: actual=1024
>> (qemu) balloon 600
>> (qemu) info balloon
>> balloon: actual=600
These lines are from host.
>> // This is the THP number after inflate the balloon in the host.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 616448 kB
>> // Set the size back to 1024M in the QEMU monitor.
>> (qemu) balloon 1024
>> (qemu) info balloon
>> balloon: actual=1024
These lines are from host.
>> // Use usemem to increase the memory usage of QEMU.
>> killall usemem
>> usemem 800m
These lines are from guest.
>> // This is the THP number after this operation.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 907264 kB
These lines are from host.
>
> I'm a bit confused about which of the above run within guest,
> and which run within host. Could you explain pls?
>
>
I added some introduction to show where these lines is get from.
Best,
Hui
>
>> [1] https://lkml.org/lkml/2020/3/12/144
>> [2] https://lore.kernel.org/linux-mm/1584893097-12317-1-git-send-email-teawater@gmail.com/
>> [3] https://lkml.org/lkml/2020/5/12/324
>> [4] https://github.com/teawater/linux/tree/balloon_conts
>> [5] https://github.com/teawater/qemu/tree/balloon_conts
>> [6] https://lkml.org/lkml/2020/5/13/1211
>>
>> Hui Zhu (2):
>> virtio_balloon: Add VIRTIO_BALLOON_F_CONT_PAGES and inflate_cont_vq
>> virtio_balloon: Add deflate_cont_vq to deflate continuous pages
>>
>> drivers/virtio/virtio_balloon.c | 180 +++++++++++++++++++++++++++++++-----
>> include/linux/balloon_compaction.h | 12 ++
>> include/uapi/linux/virtio_balloon.h | 1
>> mm/balloon_compaction.c | 117 +++++++++++++++++++++--
>> 4 files changed, 280 insertions(+), 30 deletions(-)
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
> For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
WARNING: multiple messages have this Message-ID (diff)
From: teawater <teawaterz@linux.alibaba.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Hui Zhu <teawater@gmail.com>,
david@redhat.com, jasowang@redhat.com, akpm@linux-foundation.org,
virtualization@lists.linux-foundation.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
qemu-devel@nongnu.org, virtio-dev@lists.oasis-open.org,
Andrea Arcangeli <aarcange@redhat.com>
Subject: Re: [virtio-dev] [RFC for Linux v4 0/2] virtio_balloon: Add VIRTIO_BALLOON_F_CONT_PAGES to report continuous pages
Date: Thu, 16 Jul 2020 15:01:18 +0800 [thread overview]
Message-ID: <744230FA-78D8-4568-8188-683087065E84@linux.alibaba.com> (raw)
In-Reply-To: <20200716021929-mutt-send-email-mst@kernel.org>
> 2020年7月16日 14:38,Michael S. Tsirkin <mst@redhat.com> 写道:
>
> On Thu, Jul 16, 2020 at 10:41:50AM +0800, Hui Zhu wrote:
>> The first, second and third version are in [1], [2] and [3].
>> Code of current version for Linux and qemu is available in [4] and [5].
>> Update of this version:
>> 1. Report continuous pages will increase the speed. So added deflate
>> continuous pages.
>> 2. According to the comments from David in [6], added 2 new vqs inflate_cont_vq
>> and deflate_cont_vq to report continuous pages with format 32 bits pfn and 32
>> bits size.
>> Following is the introduction of the function.
>> These patches add VIRTIO_BALLOON_F_CONT_PAGES to virtio_balloon. With this
>> flag, balloon tries to use continuous pages to inflate and deflate.
>> Opening this flag can bring two benefits:
>> 1. Report continuous pages will increase memory report size of each time
>> call tell_host. Then it will increase the speed of balloon inflate and
>> deflate.
>> 2. Host THPs will be splitted when qemu release the page of balloon inflate.
>> Inflate balloon with continuous pages will let QEMU release the pages
>> of same THPs. That will help decrease the splitted THPs number in
>> the host.
>> Following is an example in a VM with 1G memory 1CPU. This test setups an
>> environment that has a lot of fragmentation pages. Then inflate balloon will
>> split the THPs.
>> // This is the THP number before VM execution in the host.
>> // None use THP.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 0 kB
These lines are from host.
>> // After VM start, use usemem
>> // (https://git.kernel.org/pub/scm/linux/kernel/git/wfg/vm-scalability.git)
>> // punch-holes function generates 400m fragmentation pages in the guest
>> // kernel.
>> usemem --punch-holes -s -1 800m &
These lines are from guest. They setups the environment that has a lot of fragmentation pages.
>> // This is the THP number after this command in the host.
>> // Some THP is used by VM because usemem will access 800M memory
>> // in the guest.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 911360 kB
These lines are from host.
>> // Connect to the QEMU monitor, setup balloon, and set it size to 600M.
>> (qemu) device_add virtio-balloon-pci,id=balloon1
>> (qemu) info balloon
>> balloon: actual=1024
>> (qemu) balloon 600
>> (qemu) info balloon
>> balloon: actual=600
These lines are from host.
>> // This is the THP number after inflate the balloon in the host.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 88064 kB
These lines are from host.
>> // Set the size back to 1024M in the QEMU monitor.
>> (qemu) balloon 1024
>> (qemu) info balloon
>> balloon: actual=1024
These lines are from host.
>> // Use usemem to increase the memory usage of QEMU.
>> killall usemem
>> usemem 800m
These lines are from guest.
>> // This is the THP number after this operation.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 65536 kB
These lines are from host.
>>
>> Following example change to use continuous pages balloon. The number of
>> splitted THPs is decreased.
>> // This is the THP number before VM execution in the host.
>> // None use THP.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 0 kB
These lines are from host.
>> // After VM start, use usemem punch-holes function generates 400M
>> // fragmentation pages in the guest kernel.
>> usemem --punch-holes -s -1 800m &
These lines are from guest. They setups the environment that has a lot of fragmentation pages.
>> // This is the THP number after this command in the host.
>> // Some THP is used by VM because usemem will access 800M memory
>> // in the guest.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 911360 kB
These lines are from host.
>> // Connect to the QEMU monitor, setup balloon, and set it size to 600M.
>> (qemu) device_add virtio-balloon-pci,id=balloon1,cont-pages=on
>> (qemu) info balloon
>> balloon: actual=1024
>> (qemu) balloon 600
>> (qemu) info balloon
>> balloon: actual=600
These lines are from host.
>> // This is the THP number after inflate the balloon in the host.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 616448 kB
>> // Set the size back to 1024M in the QEMU monitor.
>> (qemu) balloon 1024
>> (qemu) info balloon
>> balloon: actual=1024
These lines are from host.
>> // Use usemem to increase the memory usage of QEMU.
>> killall usemem
>> usemem 800m
These lines are from guest.
>> // This is the THP number after this operation.
>> cat /proc/meminfo | grep AnonHugePages:
>> AnonHugePages: 907264 kB
These lines are from host.
>
> I'm a bit confused about which of the above run within guest,
> and which run within host. Could you explain pls?
>
>
I added some introduction to show where these lines is get from.
Best,
Hui
>
>> [1] https://lkml.org/lkml/2020/3/12/144
>> [2] https://lore.kernel.org/linux-mm/1584893097-12317-1-git-send-email-teawater@gmail.com/
>> [3] https://lkml.org/lkml/2020/5/12/324
>> [4] https://github.com/teawater/linux/tree/balloon_conts
>> [5] https://github.com/teawater/qemu/tree/balloon_conts
>> [6] https://lkml.org/lkml/2020/5/13/1211
>>
>> Hui Zhu (2):
>> virtio_balloon: Add VIRTIO_BALLOON_F_CONT_PAGES and inflate_cont_vq
>> virtio_balloon: Add deflate_cont_vq to deflate continuous pages
>>
>> drivers/virtio/virtio_balloon.c | 180 +++++++++++++++++++++++++++++++-----
>> include/linux/balloon_compaction.h | 12 ++
>> include/uapi/linux/virtio_balloon.h | 1
>> mm/balloon_compaction.c | 117 +++++++++++++++++++++--
>> 4 files changed, 280 insertions(+), 30 deletions(-)
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
> For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
next prev parent reply other threads:[~2020-07-16 7:02 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-16 2:41 [RFC for Linux v4 0/2] virtio_balloon: Add VIRTIO_BALLOON_F_CONT_PAGES to report continuous pages Hui Zhu
2020-07-16 2:41 ` [virtio-dev] " Hui Zhu
2020-07-16 2:41 ` [RFC for Linux v4 1/2] virtio_balloon: Add VIRTIO_BALLOON_F_CONT_PAGES and inflate_cont_vq Hui Zhu
2020-07-16 2:41 ` [virtio-dev] " Hui Zhu
2020-07-16 2:41 ` Hui Zhu
2020-07-16 6:43 ` Michael S. Tsirkin
2020-07-16 6:43 ` [virtio-dev] " Michael S. Tsirkin
2020-07-16 6:43 ` Michael S. Tsirkin
2020-07-16 8:25 ` teawater
2020-07-16 8:25 ` [virtio-dev] " teawater
2020-07-16 8:25 ` teawater
2020-07-16 2:41 ` [RFC for Linux v4 2/2] virtio_balloon: Add deflate_cont_vq to deflate continuous pages Hui Zhu
2020-07-16 2:41 ` [virtio-dev] " Hui Zhu
2020-07-16 2:41 ` Hui Zhu
2020-07-16 2:41 ` [RFC for qemu v4 0/2] virtio-balloon: Add option cont-pages to set VIRTIO_BALLOON_F_CONT_PAGES Hui Zhu
2020-07-16 2:41 ` [virtio-dev] " Hui Zhu
2020-07-16 2:41 ` [RFC for qemu v4 1/2] virtio_balloon: Add cont-pages and icvq Hui Zhu
2020-07-16 2:41 ` [virtio-dev] " Hui Zhu
2020-07-16 2:41 ` Hui Zhu
2020-07-16 2:41 ` [RFC for qemu v4 2/2] virtio_balloon: Add dcvq to deflate continuous pages Hui Zhu
2020-07-16 2:41 ` [virtio-dev] " Hui Zhu
2020-07-16 2:41 ` Hui Zhu
2020-07-16 6:39 ` Michael S. Tsirkin
2020-07-16 6:39 ` [virtio-dev] " Michael S. Tsirkin
2020-07-16 6:39 ` Michael S. Tsirkin
2020-07-16 7:32 ` [virtio-dev] " teawater
2020-07-16 7:32 ` teawater
2020-07-16 7:32 ` teawater
2020-07-16 6:38 ` [RFC for Linux v4 0/2] virtio_balloon: Add VIRTIO_BALLOON_F_CONT_PAGES to report " Michael S. Tsirkin
2020-07-16 6:38 ` [virtio-dev] " Michael S. Tsirkin
2020-07-16 6:38 ` Michael S. Tsirkin
2020-07-16 7:01 ` teawater [this message]
2020-07-16 7:01 ` [virtio-dev] " teawater
2020-07-16 7:01 ` teawater
2020-07-16 7:01 ` [virtio-dev] " teawater
2020-07-16 10:45 ` Michael S. Tsirkin
2020-07-16 10:45 ` Michael S. Tsirkin
2020-07-16 10:45 ` Michael S. Tsirkin
2020-07-16 10:45 ` [virtio-dev] " Michael S. Tsirkin
2020-07-17 3:52 ` teawater
2020-07-17 3:52 ` teawater
2020-07-17 3:52 ` teawater
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=744230FA-78D8-4568-8188-683087065E84@linux.alibaba.com \
--to=teawaterz@linux.alibaba.com \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=david@redhat.com \
--cc=jasowang@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=teawater@gmail.com \
--cc=virtio-dev@lists.oasis-open.org \
--cc=virtualization@lists.linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.