From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753214AbdHKNpv (ORCPT ); Fri, 11 Aug 2017 09:45:51 -0400 Received: from mx1.redhat.com ([209.132.183.28]:36112 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753127AbdHKNpu (ORCPT ); Fri, 11 Aug 2017 09:45:50 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com A8DA861467 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=eric.auger@redhat.com From: Eric Auger To: eric.auger.pro@gmail.com, eric.auger@redhat.com, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Will.Deacon@arm.com, robin.murphy@arm.com, Jean-Philippe.Brucker@arm.com Cc: christoffer.dall@linaro.org, Marc.Zyngier@arm.com, alex.williamson@redhat.com, peterx@redhat.com, mst@redhat.com, tn@semihalf.com, bharat.bhushan@nxp.com Subject: [RFC v2 0/4] arm-smmu-v3 tlbi-on-map option Date: Fri, 11 Aug 2017 15:45:26 +0200 Message-Id: <1502459130-6234-1-git-send-email-eric.auger@redhat.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Fri, 11 Aug 2017 13:45:50 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This series adds a new tlbi-on-map option to the smmuv3 driver. When set, the IO_PGTABLE_QUIRK_TLBI_ON_MAP quirk is applied for LPAE tables and the smmuv3 driver sends TLB invalidations on map. This mode is useful when running the driver on a guest as it allows the virtualizer to trap any change to the translation structures. This is similar to the Intel vtd caching mode (CM). This is mandated for vSMMUv3/VFIO integration where guest mappings must be applied to the physical IOMMU and also for VHOST. When this mode is set we use an implementation defined TLBI invalidation command which allows to invalidate a range of IOVA instead of using CMD_TLBI_NH_VA which works by page. This is needed for sake of efficiency when running DPDK use case on guest as DPDK uses hugepages. As far as I understand the intel IOMMU provides such invalidation command (using the address mask parameter) and at the moment, I haven't found something similar in the smmuv3 architecture specification. Best Regards Eric Git: complete series available at https://github.com/eauger/linux/tree/v4.13-rc3-tlbi-on-map-rfcv2 History: v1 -> v2: - add support for ACPI probing - add implementation defined CMD_TLBI_NH_VA_AM which allows IOVA range invalidation Eric Auger (4): iommu/io-pgtable-arm: flush TLBs when IO_PGTABLE_QUIRK_TLBI_ON_MAP iommu/arm-smmu-v3: Add tlbi_on_map option iommu/arm-smmu-v3: Add hypothetical caching mode model iommu/arm-smmu-v3: add CMD_TLBI_NH_VA_AM command for iova range invalidation .../devicetree/bindings/iommu/arm,smmu-v3.txt | 4 +++ drivers/iommu/arm-smmu-v3.c | 34 ++++++++++++++++++++-- drivers/iommu/io-pgtable-arm.c | 14 +++++++-- 3 files changed, 48 insertions(+), 4 deletions(-) -- 2.5.5