All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: Marek Kedzierski <mkedzier@redhat.com>,
	Pankaj Gupta <pankaj.gupta.linux@gmail.com>,
	Wei Yang <richard.weiyang@linux.alibaba.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	qemu-devel@nongnu.org, Peter Xu <peterx@redhat.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
	Auger Eric <eric.auger@redhat.com>,
	Pankaj Gupta <pankaj.gupta@cloud.ionos.com>,
	teawater <teawaterz@linux.alibaba.com>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Igor Mammedov <imammedo@redhat.com>
Subject: Re: [PATCH v4 11/11] vfio: Disable only uncoordinated discards
Date: Wed, 13 Jan 2021 16:57:08 -0700	[thread overview]
Message-ID: <20210113165708.45a8701c@omen.home.shazbot.org> (raw)
In-Reply-To: <20210107133423.44964-12-david@redhat.com>

On Thu,  7 Jan 2021 14:34:23 +0100
David Hildenbrand <david@redhat.com> wrote:

> 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.

I think SPAPR always uses a vIOMMU, but I won't claim to understand it.
Is there anything other than testing that restricts it to x86-64?  ARM
and S390 will use the same type1 IOMMU backend as far as vfio support
is concerned.  Should we do something more than put it in a commit log
if we really want to prevent it elsewhere?  Thanks,

Alex
 
> 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).
> 
> Reviewed-by: Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
> 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 2b9ba3f8c9..ee7a82524a 100644
> --- a/hw/vfio/common.c
> +++ b/hw/vfio/common.c
> @@ -1976,8 +1976,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;
> @@ -2157,7 +2159,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;
> @@ -2279,7 +2281,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);
> @@ -2333,7 +2335,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);
>          }
>      }
>  



  reply	other threads:[~2021-01-13 23:58 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-07 13:34 [PATCH v4 00/11] virtio-mem: vfio support David Hildenbrand
2021-01-07 13:34 ` [PATCH v4 01/11] memory: Introduce RamDiscardMgr for RAM memory regions David Hildenbrand
2021-01-07 13:34 ` [PATCH v4 02/11] virtio-mem: Factor out traversing unplugged ranges David Hildenbrand
2021-01-07 13:34 ` [PATCH v4 03/11] virtio-mem: Implement RamDiscardMgr interface David Hildenbrand
2021-01-07 13:34 ` [PATCH v4 04/11] vfio: Support for RamDiscardMgr in the !vIOMMU case David Hildenbrand
2021-01-13 23:27   ` Alex Williamson
2021-01-14 15:54     ` David Hildenbrand
2021-01-14 15:57       ` David Hildenbrand
2021-01-15 10:27         ` David Hildenbrand
2021-01-07 13:34 ` [PATCH v4 05/11] vfio: Query and store the maximum number of possible DMA mappings David Hildenbrand
2021-01-13 23:30   ` Alex Williamson
2021-01-07 13:34 ` [PATCH v4 06/11] vfio: Sanity check maximum number of DMA mappings with RamDiscardMgr David Hildenbrand
2021-01-13 23:34   ` Alex Williamson
2021-01-14 15:59     ` David Hildenbrand
2021-01-07 13:34 ` [PATCH v4 07/11] vfio: Support for RamDiscardMgr in the vIOMMU case David Hildenbrand
2021-01-07 13:34 ` [PATCH v4 08/11] softmmu/physmem: Don't use atomic operations in ram_block_discard_(disable|require) David Hildenbrand
2021-01-07 13:34 ` [PATCH v4 09/11] softmmu/physmem: Extend ram_block_discard_(require|disable) by two discard types David Hildenbrand
2021-01-07 13:34 ` [PATCH v4 10/11] virtio-mem: Require only coordinated discards David Hildenbrand
2021-01-07 13:34 ` [PATCH v4 11/11] vfio: Disable only uncoordinated discards David Hildenbrand
2021-01-13 23:57   ` Alex Williamson [this message]
2021-01-14 16:19     ` 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=20210113165708.45a8701c@omen.home.shazbot.org \
    --to=alex.williamson@redhat.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=david@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=mkedzier@redhat.com \
    --cc=mst@redhat.com \
    --cc=pankaj.gupta.linux@gmail.com \
    --cc=pankaj.gupta@cloud.ionos.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.