Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp2005185pxy; Sat, 24 Apr 2021 02:10:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwFAk1bmQ72Jt2o2L4accgL+0Eh0Zptbm1aF57+SSDmfeqlj3WQmpaeZ+GiHtBvUczl+GWR X-Received: by 2002:a17:906:5e15:: with SMTP id n21mr8258663eju.57.1619255444694; Sat, 24 Apr 2021 02:10:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619255444; cv=none; d=google.com; s=arc-20160816; b=nBR8CR5rRFX2GAkIO0SW1o/MIx1e9EQt8j6jk64PQ/Gx/k6g7UCEnI0M7OVQ1w/bba YOANiZ3yI8ame/0ZgnzpEDkJGOD4MeeNZAH53Wxda66vG4kEwEY1FQ7v0JVw6nLoAq1z DzX/9kdUnUlGV+wpDq/OxrwcqZW8DkRB7sDlIwZhtjq7U9O/7Zyf7mkOSLIxrxeLTqpk XeB6QN4fUWilgb5PyrI3Cp6FjfqUYUX/dWYAYqG8FbcoZbv0g2nEho43ykqUXubrWGPi /qTLF8ZXDuZbQe50hl1KmiliPBjokAxvWIUYGyXx3shoSgKG1Pwa30L5Kiy3Oid+s4w5 p+qw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent:references:in-reply-to :subject:cc:to:from:message-id:date; bh=ioo5ZXdeyL9Niudc+nKxJx2jYP0d+U6vx/YAR5YS00k=; b=l1zNf1z4ggHrXn8WUy++UdY7T8NlwPqpRWFzmI7ih6cDaibxsrh9wW3DxyvRv03pK1 E2pqmvAyYe+GQdeRA8UecMGbpGUIp0M/4QwoB21xbLZHc2IOuwbqqRNa0jz+1/VvD05J QBEeSE+Ce6Gnt1OI6uawu1KMgFsM6crvzeulWPQw9xW3jFD21rvI/hsvew3f7rqgc01m o3XjQQi+OlBDqmNBes7d+RWc8wX1kEHx5ro2J6OzB8roFnBSuW+jh+wQQyQGfM+pOFIX mvaqWPHKQTVSDU5OLPZ/jpr5juFFLqiSKDfKVFQ8MioprMphCaLx5UH1xDHOTNDZ5C3R 1HQA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w7si6733321edr.214.2021.04.24.02.10.21; Sat, 24 Apr 2021 02:10:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237445AbhDXJHj (ORCPT + 99 others); Sat, 24 Apr 2021 05:07:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:48724 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238055AbhDXJHU (ORCPT ); Sat, 24 Apr 2021 05:07:20 -0400 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 0349B61131; Sat, 24 Apr 2021 09:06:43 +0000 (UTC) Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=wait-a-minute.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1laEFM-009DDW-Pi; Sat, 24 Apr 2021 10:06:41 +0100 Date: Sat, 24 Apr 2021 10:06:39 +0100 Message-ID: <87r1j0rqzk.wl-maz@kernel.org> From: Marc Zyngier To: Krishna Reddy Cc: Sumit Gupta , Jean-Philippe Brucker , "eric.auger@redhat.com" , "alex.williamson@redhat.com" , "eric.auger.pro@gmail.com" , "iommu@lists.linux-foundation.org" , "jiangkunkun@huawei.com" , "joro@8bytes.org" , "kvm@vger.kernel.org" , "kvmarm@lists.cs.columbia.edu" , "linux-kernel@vger.kernel.org" , "lushenming@huawei.com" , "robin.murphy@arm.com" , "tn@semihalf.com" , "vivek.gautam@arm.com" , Vikram Sethi , "wangxingang5@huawei.com" , "will@kernel.org" , "zhangfei.gao@linaro.org" , "zhukeqian1@huawei.com" , Sachin Nikam , Bibek Basu , Shanker Donthineni Subject: Re: [PATCH v14 00/13] SMMUv3 Nested Stage Setup (IOMMU part) In-Reply-To: References: <1619103878-6664-1-git-send-email-sumitg@nvidia.com> <5a8825bc-286e-b316-515f-3bd3c9c70a80@nvidia.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: vdumpa@nvidia.com, sumitg@nvidia.com, jean-philippe@linaro.org, eric.auger@redhat.com, alex.williamson@redhat.com, eric.auger.pro@gmail.com, iommu@lists.linux-foundation.org, jiangkunkun@huawei.com, joro@8bytes.org, kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu, linux-kernel@vger.kernel.org, lushenming@huawei.com, robin.murphy@arm.com, tn@semihalf.com, vivek.gautam@arm.com, vsethi@nvidia.com, wangxingang5@huawei.com, will@kernel.org, zhangfei.gao@linaro.org, zhukeqian1@huawei.com, Snikam@nvidia.com, bbasu@nvidia.com, sdonthineni@nvidia.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 23 Apr 2021 18:58:23 +0100, Krishna Reddy wrote: > > >> Did that patch cause any issue, or is it just not needed on your system? > >> It fixes an hypothetical problem with the way ATS is implemented. > >> Maybe I actually observed it on an old software model, I don't > >> remember. Either way it's unlikely to go upstream but I'd like to know > >> if I should drop it from my tree. > > > Had to revert same patch "mm: notify remote TLBs when dirtying a PTE" to > > avoid below crash[1]. I am not sure about the cause yet. > > I have noticed this issue earlier with patch pointed here and root > caused the issue as below. It happens after vfio_mmap request from > QEMU for the PCIe device and during the access of VA when PTE access > flags are updated. > > kvm_mmu_notifier_change_pte() --> kvm_set_spte_hve() --> > kvm_set_spte_hva() --> clean_dcache_guest_page() > > The validation model doesn't have FWB capability supported. > __clean_dcache_guest_page() attempts to perform dcache flush on pcie > bar address(not a valid_pfn()) through page_address(), which doesn't > have page table mapping and leads to exception. > > I have worked around the issue by filtering out the request if the > pfn is not valid in __clean_dcache_guest_page(). As the patch > wasn't posted in the community, reverted it as well. That's papering over the real issue, and this mapping path needs fixing as it was only ever expected to be called for CoW. Can you please try the following patch and let me know if that fixes the issue for good? Thanks, M. diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index 77cb2d28f2a4..b62dd40a4083 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -1147,7 +1147,8 @@ int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte) * We've moved a page around, probably through CoW, so let's treat it * just like a translation fault and clean the cache to the PoC. */ - clean_dcache_guest_page(pfn, PAGE_SIZE); + if (!kvm_is_device_pfn(pfn)) + clean_dcache_guest_page(pfn, PAGE_SIZE); handle_hva_to_gpa(kvm, hva, end, &kvm_set_spte_handler, &pfn); return 0; } -- Without deviation from the norm, progress is not possible.