Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp4909466pxu; Wed, 21 Oct 2020 08:16:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwm+zXhXa0yh320/OQC/MNF8uzZ0j82431gZtkoIQqQQxbqOZfCxb2ERknziml5nWNh5DfA X-Received: by 2002:a17:907:33d2:: with SMTP id zk18mr4015657ejb.145.1603293386915; Wed, 21 Oct 2020 08:16:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603293386; cv=none; d=google.com; s=arc-20160816; b=UGVPRL/+j0Y1npEfwMMTPUP/7r3YlruNMFpnYYhVpmTnSkxqa6lrhcvjD+3+B91Drp pDilZbA7ccoN4yyxCtkcoKRCYGYFDvxh81SRQNqwIdQJ7rbiUVAzmx7D250LssnJGxzU +H1T6zFiF3/jfPz3lL9YJx6Y/ZgOxpQZxeBobMOTyTnK9Q2ifvrKynyGgU3MOaeamy9/ XIJ2kowzXAqiuplRiYijy3KH5efO8A0na5Yk8NzRRRsw5a1XWNAzMj+JIOgpoDcT7z6k z0ZG088Ait5/DVX+mjjiykLVdqz7hWmE1UV8btZS8uew5qga/oR1j0I5vmDWkLEKVcXd suEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=9cFTuFdatbaYuigk9l9CABG/jzUgOpY0t/i9Osy6B3k=; b=ga7dWy3b9gNG4I0pePK0NoXsSGy3lNUCIr4iUs1CyPKukdXdP/L2vEU6Ikw1tuF/nW uT2XeLBmLvis0j32miOjEcweBLrINq0bCHoWtl/oLVQePrjHALJfC4BNe07ZU7U4XGKT UCc2Vzwvrncl7g/5lp0B3cUfN9pwYDC5k6MbMxS+d8FkSo/M37eW1hxhkVFYfN66bVLZ MsyDKWALo9WIDHIz4HYsraa7d4dD+C7dhrnSjObXXOf6NvEkNcBOAo1MpLmDTiqxOw9H oyN5MnzOxozTUclLG9dGrKjHb85Mkt5NZ16dwALSZH3lIKAi93vSj9rILHq2fdpRsTtI j+Ug== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ziepe.ca header.s=google header.b=Dq8HyCXn; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n9si1395293eja.354.2020.10.21.08.16.02; Wed, 21 Oct 2020 08:16:26 -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; dkim=pass header.i=@ziepe.ca header.s=google header.b=Dq8HyCXn; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2444123AbgJUPN4 (ORCPT + 99 others); Wed, 21 Oct 2020 11:13:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2444114AbgJUPN4 (ORCPT ); Wed, 21 Oct 2020 11:13:56 -0400 Received: from mail-qt1-x842.google.com (mail-qt1-x842.google.com [IPv6:2607:f8b0:4864:20::842]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5DD38C0613D4 for ; Wed, 21 Oct 2020 08:13:55 -0700 (PDT) Received: by mail-qt1-x842.google.com with SMTP id h19so2389771qtq.4 for ; Wed, 21 Oct 2020 08:13:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=9cFTuFdatbaYuigk9l9CABG/jzUgOpY0t/i9Osy6B3k=; b=Dq8HyCXnjlFLiivieMejfqNvFko0IRtuvvtRMPLqBJU503Zw8AdmXj9PAYUvq+vrGw tLWr/P2KX0xliFL4v7zLPYR93TGo1limVOCOZFomvItA47uQ8nJhdHWU27ngiu6ooAYG WjN4a1HHzcaoYLAcnuo5e5/2eLC1r22+kDR6gTWfx0ZcGZTpX8rwEwqmUSs71ZqiLJX+ OUQrP6EnxmCsgNh+3+fwOT/kOJSDKYJueSTL+OCpFozN4nNmHro2xix1p70w/08ytcHi qOQrid57zrk+FvzkIWYUgPoh4k6ET94WA33BXpQ3Dtpr1Jlt52u7OEBqAEPaddsrqv0i gSbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=9cFTuFdatbaYuigk9l9CABG/jzUgOpY0t/i9Osy6B3k=; b=SNG1VsmlUOXMpm/iQdQmeN9fe/8econwqus4Nn3bZNh1cieoS0Xdqfbb8c4cco00qu r8wQmU+YJyqnupm6bR1myrP8vxc5iQ/y1GY6pncj3KOci4G3pSXZGAi0b/OvvWiJgWWF CFfSX0EU+BAdAlrDhVMlk9gqpY3P4q6r1b3O5bciMOaLNUo3O8DhauXqxcZ21Lh2eonT QX7HIStvNGLFJfgE36cQ9yHrWoah8BryKbGGMvBaBIH+6C4tk3lt9hbXcgjfGhMPMw9Z CwhgTW7D+Yg8gOdZm6D8LBXMYCuXyAD0+lmj0vLekbT7SYEg0zQFa4usbpuWvne7Szoi FvYg== X-Gm-Message-State: AOAM5329Mlhb1w8HtkCk92iCmAk6r6x6LNCAdrOb6imfeb9J629A42yJ tIJViJ12lthpbPkCc7ogUb3RTg== X-Received: by 2002:ac8:8c7:: with SMTP id y7mr3515722qth.278.1603293234456; Wed, 21 Oct 2020 08:13:54 -0700 (PDT) Received: from ziepe.ca (hlfxns017vw-156-34-48-30.dhcp-dynamic.fibreop.ns.bellaliant.net. [156.34.48.30]) by smtp.gmail.com with ESMTPSA id b14sm1405612qkn.123.2020.10.21.08.13.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Oct 2020 08:13:53 -0700 (PDT) Received: from jgg by mlx with local (Exim 4.94) (envelope-from ) id 1kVFoG-003XHy-SZ; Wed, 21 Oct 2020 12:13:52 -0300 Date: Wed, 21 Oct 2020 12:13:52 -0300 From: Jason Gunthorpe To: Daniel Vetter Cc: DRI Development , LKML , KVM list , Linux MM , Linux ARM , linux-samsung-soc , "open list:DMA BUFFER SHARING FRAMEWORK" , linux-s390 , Daniel Vetter , Kees Cook , Dan Williams , Andrew Morton , John Hubbard , =?utf-8?B?SsOpcsO0bWU=?= Glisse , Jan Kara , Bjorn Helgaas , Linux PCI , Daniel Vetter Subject: Re: [PATCH v3 12/16] PCI: Obey iomem restrictions for procfs mmap Message-ID: <20201021151352.GL36674@ziepe.ca> References: <20201021085655.1192025-1-daniel.vetter@ffwll.ch> <20201021085655.1192025-13-daniel.vetter@ffwll.ch> <20201021125030.GK36674@ziepe.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Oct 21, 2020 at 04:42:11PM +0200, Daniel Vetter wrote: > Uh yes. In drivers/gpu this isn't a problem because we only install > ptes from the vm_ops->fault handler. So no races. And I don't think > you can fix this otherwise through holding locks: mmap_sem we can't > hold because before vma_link we don't even know which mm_struct is > involved, so can't solve the race. Plus this would be worse that > mm_take_all_locks used by mmu notifier. And the address_space > i_mmap_lock is also no good since it's not held during the ->mmap > callback, when we write the ptes. And the resource locks is even less > useful, since we're not going to hold that at vma_link() time for > sure. > > Hence delaying the pte writes after the vma_link, which means ->fault > time, looks like the only way to close this gap. > Trouble is I have no idea how to do this cleanly ... How about add a vm_ops callback 'install_pages'/'prefault_pages' ? Call it after vm_link() - basically just move the remap_pfn, under some other lock, into there. Jason