From: David Hildenbrand <david@redhat.com>
To: qemu-devel@nongnu.org
Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com>,
Wei Yang <richard.weiyang@linux.alibaba.com>,
David Hildenbrand <david@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
Peter Xu <peterx@redhat.com>,
Luiz Capitulino <lcapitulino@redhat.com>,
Auger Eric <eric.auger@redhat.com>,
Alex Williamson <alex.williamson@redhat.com>,
teawater <teawaterz@linux.alibaba.com>,
Igor Mammedov <imammedo@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Marek Kedzierski <mkedzier@redhat.com>
Subject: [PATCH v1 9/9] vfio: Disable only uncoordinated discards
Date: Thu, 19 Nov 2020 16:39:18 +0100 [thread overview]
Message-ID: <20201119153918.120976-10-david@redhat.com> (raw)
In-Reply-To: <20201119153918.120976-1-david@redhat.com>
We support coordinated discarding of RAM using the RamDiscardMgr. Let's
unlock support for coordinated discards, keeping uncoordinated discards
(e.g., via virtio-balloon) disabled.
This unlocks virtio-mem + vfio. Note that vfio used via "nvme://" by the
block layer has to be implemented/unlocked separately. For now,
virtio-mem only supports x86-64 - spapr IOMMUs are not tested/affected.
Note: The block size of a virtio-mem device has to be set to sane sizes,
depending on the maximum hotplug size - to not run out of vfio mappings.
The default virtio-mem block size is usually in the range of a couple of
MBs. The maximum number of mapping is 64k, shared with other users.
Assume you want to hotplug 256GB using virtio-mem - the block size would
have to be set to at least 8 MiB (resulting in 32768 separate mappings).
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Alex Williamson <alex.williamson@redhat.com>
Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: Auger Eric <eric.auger@redhat.com>
Cc: Wei Yang <richard.weiyang@linux.alibaba.com>
Cc: teawater <teawaterz@linux.alibaba.com>
Cc: Marek Kedzierski <mkedzier@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
hw/vfio/common.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/hw/vfio/common.c b/hw/vfio/common.c
index 0d950186f1..4063a8382f 100644
--- a/hw/vfio/common.c
+++ b/hw/vfio/common.c
@@ -1967,8 +1967,10 @@ static int vfio_connect_container(VFIOGroup *group, AddressSpace *as,
* new memory, it will not yet set ram_block_discard_set_required() and
* therefore, neither stops us here or deals with the sudden memory
* consumption of inflated memory.
+ *
+ * We do support discarding of memory coordinated via the RamDiscardMgr.
*/
- ret = ram_block_discard_disable(true);
+ ret = ram_block_uncoordinated_discard_disable(true);
if (ret) {
error_setg_errno(errp, -ret, "Cannot set discarding of RAM broken");
return ret;
@@ -2144,7 +2146,7 @@ close_fd_exit:
close(fd);
put_space_exit:
- ram_block_discard_disable(false);
+ ram_block_uncoordinated_discard_disable(false);
vfio_put_address_space(space);
return ret;
@@ -2266,7 +2268,7 @@ void vfio_put_group(VFIOGroup *group)
}
if (!group->ram_block_discard_allowed) {
- ram_block_discard_disable(false);
+ ram_block_uncoordinated_discard_disable(false);
}
vfio_kvm_device_del_group(group);
vfio_disconnect_container(group);
@@ -2320,7 +2322,7 @@ int vfio_get_device(VFIOGroup *group, const char *name,
if (!group->ram_block_discard_allowed) {
group->ram_block_discard_allowed = true;
- ram_block_discard_disable(false);
+ ram_block_uncoordinated_discard_disable(false);
}
}
--
2.26.2
next prev parent reply other threads:[~2020-11-19 16:01 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-19 15:39 [PATCH v1 0/9] virtio-mem: vfio support David Hildenbrand
2020-11-19 15:39 ` [PATCH v1 1/9] memory: Introduce RamDiscardMgr for RAM memory regions David Hildenbrand
2020-12-02 23:26 ` Alex Williamson
2020-12-03 10:04 ` David Hildenbrand
2020-11-19 15:39 ` [PATCH v1 2/9] virtio-mem: Factor out traversing unplugged ranges David Hildenbrand
2020-11-19 15:39 ` [PATCH v1 3/9] virtio-mem: Implement RamDiscardMgr interface David Hildenbrand
2020-11-19 15:39 ` [PATCH v1 4/9] vfio: Support for RamDiscardMgr in the !vIOMMU case David Hildenbrand
2020-12-02 23:26 ` Alex Williamson
2020-12-03 10:07 ` David Hildenbrand
2020-11-19 15:39 ` [PATCH v1 5/9] vfio: Support for RamDiscardMgr in the vIOMMU case David Hildenbrand
2020-11-19 15:39 ` [PATCH v1 6/9] softmmu/physmem: Don't use atomic operations in ram_block_discard_(disable|require) David Hildenbrand
2020-11-19 20:34 ` Peter Xu
2020-11-19 15:39 ` [PATCH v1 7/9] softmmu/physmem: Extend ram_block_discard_(require|disable) by two discard types David Hildenbrand
2020-11-19 15:39 ` [PATCH v1 8/9] virtio-mem: Require only coordinated discards David Hildenbrand
2020-11-30 17:20 ` Dr. David Alan Gilbert
2020-11-19 15:39 ` David Hildenbrand [this message]
2020-11-23 11:31 ` [PATCH v1 0/9] virtio-mem: vfio support David Hildenbrand
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=20201119153918.120976-10-david@redhat.com \
--to=david@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=dgilbert@redhat.com \
--cc=eric.auger@redhat.com \
--cc=imammedo@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=mkedzier@redhat.com \
--cc=mst@redhat.com \
--cc=pankaj.gupta.linux@gmail.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.weiyang@linux.alibaba.com \
--cc=teawaterz@linux.alibaba.com \
/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.