All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Alex Williamson <alex.williamson@redhat.com>, kvm@vger.kernel.org
Cc: Gleb Natapov <gleb@kernel.org>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/4] kvm/vfio: Support for DMA coherent IOMMUs
Date: Tue, 18 Feb 2014 11:38:32 +0100	[thread overview]
Message-ID: <53033828.8050505@redhat.com> (raw)
In-Reply-To: <20140217202412.22775.77911.stgit@bling.home>

Il 17/02/2014 21:24, Alex Williamson ha scritto:
> VFIO now has support for using the IOMMU_CACHE flag and a mechanism
> for an external user to test the current operating mode of the IOMMU.
> Add support for this to the kvm-vfio pseudo device so that we only
> register noncoherent DMA when necessary.
>
> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
> Cc: Gleb Natapov <gleb@kernel.org>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  virt/kvm/vfio.c |   27 ++++++++++++++++++++-------
>  1 file changed, 20 insertions(+), 7 deletions(-)
>
> diff --git a/virt/kvm/vfio.c b/virt/kvm/vfio.c
> index b4f9507..ba1a93f 100644
> --- a/virt/kvm/vfio.c
> +++ b/virt/kvm/vfio.c
> @@ -59,6 +59,22 @@ static void kvm_vfio_group_put_external_user(struct vfio_group *vfio_group)
>  	symbol_put(vfio_group_put_external_user);
>  }
>
> +static bool kvm_vfio_group_is_coherent(struct vfio_group *vfio_group)
> +{
> +	long (*fn)(struct vfio_group *, unsigned long);
> +	long ret;
> +
> +	fn = symbol_get(vfio_external_check_extension);
> +	if (!fn)
> +		return false;
> +
> +	ret = fn(vfio_group, VFIO_DMA_CC_IOMMU);
> +
> +	symbol_put(vfio_external_check_extension);
> +
> +	return ret > 0;
> +}
> +
>  /*
>   * Groups can use the same or different IOMMU domains.  If the same then
>   * adding a new group may change the coherency of groups we've previously
> @@ -75,13 +91,10 @@ static void kvm_vfio_update_coherency(struct kvm_device *dev)
>  	mutex_lock(&kv->lock);
>
>  	list_for_each_entry(kvg, &kv->group_list, node) {
> -		/*
> -		 * TODO: We need an interface to check the coherency of
> -		 * the IOMMU domain this group is using.  For now, assume
> -		 * it's always noncoherent.
> -		 */
> -		noncoherent = true;
> -		break;
> +		if (!kvm_vfio_group_is_coherent(kvg->vfio_group)) {
> +			noncoherent = true;
> +			break;
> +		}
>  	}
>
>  	if (noncoherent != kv->noncoherent) {
>

Acked-by: Paolo Bonzini <pbonzini@redhat.com>

      reply	other threads:[~2014-02-18 10:38 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-17 20:23 [PATCH 0/4] vfio: type1 multi-domain support & kvm-vfio coherency checking Alex Williamson
2014-02-17 20:23 ` [PATCH 1/4] vfio/iommu_type1: Multi-IOMMU domain support Alex Williamson
2014-03-18 10:24   ` Varun Sethi
2014-03-18 10:24     ` Varun Sethi
2014-03-18 14:16     ` Alex Williamson
     [not found]   ` <CAKKYfmFrRF8U3NKhkSgepDfKNeLQ8+2yiz8VSFBzMc58dNAPvg@mail.gmail.com>
2014-03-18 14:30     ` Alex Williamson
2014-02-17 20:24 ` [PATCH 2/4] vfio/type1: Add extension to test DMA cache coherence of IOMMU Alex Williamson
2014-02-17 20:24 ` [PATCH 3/4] vfio: Add external user check extension interface Alex Williamson
2014-02-17 20:24 ` [PATCH 4/4] kvm/vfio: Support for DMA coherent IOMMUs Alex Williamson
2014-02-18 10:38   ` Paolo Bonzini [this message]

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=53033828.8050505@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=gleb@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.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.