Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp607623pxk; Wed, 16 Sep 2020 12:05:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwvKtY5ysMT8Dda+pZtAqN4cApL0NS+3urPaTRdGEF3WZ3lv4nRGF3gRqAOixe52PbddrSJ X-Received: by 2002:a05:6402:70f:: with SMTP id w15mr29835350edx.202.1600283101035; Wed, 16 Sep 2020 12:05:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600283101; cv=none; d=google.com; s=arc-20160816; b=QLPf2InCWEX8cmqOL3FPibyDvKD4sUU1cTuOiAg3jjyxyW8QAINNDxlDbcumjC92lz 98zfkWQzOXg86B30wLWnn0DEPCY76hykUd6eJeeW1BvUW9QP32gqlXOo29xKEJd1B7Bi 1G8j5sHve3zrVyi7BWNFvLHdunyFZbmF+m8wb29SyNGOEC8qgLGdPYyg1uUrD+kwMYQ8 nJ2cAt0qIy0E8JWn1Q03uQEp3WZH4zFYa9YKTNbOKRCOmNUe114mZFOtdb/48JOlNyxl vuWKMcO7GRB0rVs4k3qAJZFdsAdoZbfNzCNmaprFGZwBGtBUlfSDOWY+FpfRQRfcoyOB gS9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=czd653EAQqRd9y6KWSclqvh0oWs0wM7+eL3iGSU/nsI=; b=qrTgjvqh1llCh26FobekpG+hxCV6mpetIq0fAO4XqlRspDonUb+nmj9c0m5wugxMkG 0t7+RFWJ1OkaYPnjjj1YlbrAbIup4VdNfQdnUzIJc9e3uix78r9A35QRVBZKLaGaEype FysnC+U81aBwRu6Ql2Sv6pmZJ8e3za2K9n1hY7xTYIZMQu0TC9dTiluWRKb7YPd9YFhr qeYhn9mR8Noa75N0Q7a0V5H7EohG+RbugE+8yRL80A7Dw43clu0oD5cC0UL1hnHxGlEY Y/sAuH3IToEDx2LqVYFzTWhEnK0elCPG56UG/HaDEEsABFR1nG+SPXNMFXIhRRjzHLMy 54yw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=Lu3BjPbR; 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 gu16si10543641ejb.218.2020.09.16.12.04.38; Wed, 16 Sep 2020 12:05:01 -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=@ffwll.ch header.s=google header.b=Lu3BjPbR; 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 S1728346AbgIPTD0 (ORCPT + 99 others); Wed, 16 Sep 2020 15:03:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35680 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727479AbgIPRsf (ORCPT ); Wed, 16 Sep 2020 13:48:35 -0400 Received: from mail-oi1-x244.google.com (mail-oi1-x244.google.com [IPv6:2607:f8b0:4864:20::244]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A9F1FC0A888A for ; Wed, 16 Sep 2020 05:42:04 -0700 (PDT) Received: by mail-oi1-x244.google.com with SMTP id x69so7912420oia.8 for ; Wed, 16 Sep 2020 05:42:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=czd653EAQqRd9y6KWSclqvh0oWs0wM7+eL3iGSU/nsI=; b=Lu3BjPbRiC/AX011FfwezqvylAv3ZKt1PhgO2s9ivkaAdFT+L+aU0tlTbH9aGB3QdD ZRH99A3CPlO3UqmOgNoRm+sYa3H4f9liy9wkSbTEbzeH6grEkhQUdoV/KEkl0b+7g6Fl aZYv0CeL8ooRR1NM3VZWi8l0zPzoTUe7oUQL4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=czd653EAQqRd9y6KWSclqvh0oWs0wM7+eL3iGSU/nsI=; b=lVzyHWJE6k5kjcIOgj08rpMj3kMDR6NX2k26I776JTBZL1R6J4m+wb5pPyuhQp6d5t TQQAQwhAr/vnbvcUFpvWqkV2Myp4WiRJP3mivIOmHvxgDJyvClet29J7UY/v3cXll6Hw nB4U2mDlfHCkW22veHTCaRmJ5oavZNvrF7vlGiJJQa/stoDKyZcK/R/KjBSJYlu5uGL/ ibrDhQA6AQExSDxaQquR0FvnIO08UAkyjzfWwqb1DDeW/M9Xs3l366ip6aZO3i/xjrbA tujO8w6cQjeH/xgvnNM6YqOCEXlgk7fbXoQCG7twaQTeBHqxDeRAqS8Q3s7BQT5ByqB1 xcSg== X-Gm-Message-State: AOAM53250qeVBM2aGv80xGYE+4LtECfh/OgIvws2PeM1L+JJ8L7bVs0x 8q1XN9klHN2nRMQkZgPib8FP4bVOHe6yn6qttzywHw== X-Received: by 2002:aca:6083:: with SMTP id u125mr3033440oib.14.1600260122457; Wed, 16 Sep 2020 05:42:02 -0700 (PDT) MIME-Version: 1.0 References: <20200914132920.59183-1-christian.koenig@amd.com> <40cd26ae-b855-4627-5a13-4dcea5d622f6@gmail.com> <20200914140632.GD1221970@ziepe.ca> <9302e4e0-0ff0-8b00-ada1-85feefb49e88@gmail.com> <20200916095359.GD438822@phenom.ffwll.local> In-Reply-To: From: Daniel Vetter Date: Wed, 16 Sep 2020 14:41:51 +0200 Message-ID: Subject: Re: Changing vma->vm_file in dma_buf_mmap() To: =?UTF-8?Q?Christian_K=C3=B6nig?= Cc: Jason Gunthorpe , Andrew Morton , Sumit Semwal , "open list:DMA BUFFER SHARING FRAMEWORK" , dri-devel , "moderated list:DMA BUFFER SHARING FRAMEWORK" , Linux Kernel Mailing List , Linux MM Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Sep 16, 2020 at 1:45 PM Christian K=C3=B6nig wrote: > > [SNIP] > > But Jason pointed me to the right piece of code. See this comment in in m= map_region(): > > /* ->mmap() can change vma->vm_file, but must guarantee that > * vma_link() below can deny write-access if VM_DENYWRITE is set > * and map writably if VM_SHARED is set. This usually means the > * new file must not have been exposed to user-space, yet. > */ > vma->vm_file =3D get_file(file); > error =3D call_mmap(file, vma); > > > So changing vma->vm_file is allowed at least under certain circumstances. > > Only the "file must not have been exposed to user-space, yet" part still = needs double checking. Currently working on that. > > > Ok, I think we can guarantee for all DMA-bufs what is required here. > > While searching the code I've found that at least vgem_prime_mmap() and i= 915_gem_dmabuf_mmap() are doing the same thing of modifying vma->vm_file. > > So I'm leaning towards that this works as expected and we should just doc= ument this properly. > > Daniel and Jason what do you think? Well I can claim I started this, so I started out with naively assuming that it Just Works :-) I think we already have vgem/i915 prime testcases in igt which try to excercise this mmap forwarding, including provoking pte shoot-downs. So I think best would be if you could also add a variant for amdgpu, to make sure this really works and keeps working. Plus ofc the documentation patch so that core mm folks can officially ack this as legit. -Daniel --=20 Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch