From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5AEA93FFAC1 for ; Mon, 11 May 2026 15:30:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=67.231.145.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778513449; cv=none; b=DenTq9lC1mVLQSFllhHfTiR9FlIS8jeGPM4iJ5hAliQAApi46VhBcJ7alZ5lRQUs1ZdEeSssQk6l4OaYaWED5N8hAICeEPjQasLL4Yh1lLKPqIexbnEy8jicr4qhVuHs+pEDvmc4/BS0PbYR2kD0YOEPf3FhfZitcuwL4K3OSHc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778513449; c=relaxed/simple; bh=F7atxy0xKM8DpXLajI6bmHIyh5YuV4M5ES3nif002jA=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=ZE5wYCbTMM2m2ZkHtekGpYVyMysnKepZrSlLIhX2hZXqmfFuVQ8cD20S9kUeSg05AsECL5SQuXy1sYX7FhRzv9RjX+jmY3guI+HmPZ7fsHQSwgv7/v3jOzTYdWWV/GSK+9vMDRIeSune65RbligYOLMMHzmCRjoBYGv51VW3aG4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com; spf=pass smtp.mailfrom=meta.com; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b=l5CJ9j8P; arc=none smtp.client-ip=67.231.145.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=meta.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b="l5CJ9j8P" Received: from pps.filterd (m0528009.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64BEvi0w1285375 for ; Mon, 11 May 2026 08:30:46 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=s2048-2025-q2; bh=bO0OT5HbP3xMB9H1AybFAyJkqZoplUb3t4HsCcdmo+w=; b=l5CJ9j8Pt4jd oo2WjP8zAaxDoOQtii5Xv4O/D6fdD0hd4ART8sIyryLJf8dOqBTz/yQ+uerxGOHZ KqdDkk5BUPra4La+lrsGoib67wFEHFUXUYKoT5+8hWBy9OIx+D9V8sE2QmHW+yMT h35Kt8l9MYRDqqlmJv0WkUYcqwdMG9jVc7x0RKu6oILOR1twr/YLgUwLpnf350vz +GJ1mWfeupTHI+JMhKWxRZCtBSmD+//ybC+8KUEpo8p5QU7ZNmMMdXXRB4OqZre1 WwVJheJnIclwhharvAmggbk7AX/pj+QZFuYaS5iSYZGy3zEuDg1zR03BUoikGeZS XDLlFw4U2A== Received: from mail-dl1-f71.google.com (mail-dl1-f71.google.com [74.125.82.71]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 4e2pp66nw3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 11 May 2026 08:30:46 -0700 (PDT) Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-12c8ccc7593so9482692c88.1 for ; Mon, 11 May 2026 08:30:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778513445; x=1779118245; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=bO0OT5HbP3xMB9H1AybFAyJkqZoplUb3t4HsCcdmo+w=; b=FIHfk0tLyyddIsA4H+RonJN3dlSSXzRgw9E/EWgc8b1a4t8/rLUfYd35kt32l2LC68 irkCUipZy04DTtXoLUIoX6UpGyxN7w6tDoxEWdYT6bcWiYeLEETI5VPCoePdKE+C0YKE BPFE41YfUNwLof+wfH2hQyGjFBHTmzCg2KUOSSoX9afmqD00FNDM2Ha4EKKEWrr3Zie3 nOnCeJj8GkYZ+mGEc2p9DuuTUehtTfptVnxv5FgMrkoYlmL7oK2w0Xm2wEdBHAijnQhs MODdpminUpeVSr0tPSsjt9OALiEQ4E9x1mOtac9NWyey1U4G49X5SkpV+Cm9ztY7LlOt GX+Q== X-Forwarded-Encrypted: i=1; AFNElJ+4PtVZg/7M0aLqM9Sqkh0kh31TUa8T0cGpmevG0AXH57U4U5ipcBZg54IRcC2xqM3FtNH6YF4YzZE3Yy0=@vger.kernel.org X-Gm-Message-State: AOJu0YwJ/+nwx8hjya6O5ZPKsvHUqn9vtgs5gAv8gGCFbkCAiyi5m8ea hFK0SneIwAOqUGl1xsUhO9mCJ7C7JhZvGQuz1N/daah28V0Ye4CqVfWMbHOIfITiYI8hG4BxV32 JFc6bb30iRxtsQn5iIA7GHb2tEe5zPG4Ya8DChs6/XNAM9mWIT2feHhvuuo0xnY4J X-Gm-Gg: Acq92OEwrND3d36sxJ0obBgAoJr610sFsZAqEGJ/DSpTX0cQ3WHtyaSOomSLJN53HrJ c/pXG1v/22/xvDzKfrHHKRINruuUT0flT51yhMCblD0fCd8DSh52zGVR3MsjScBF2PGMHOkCfJZ ysAAhQ1CkenpsmT0j/IlVSUJJOkmCR3lADNSp/Gcbc0/5sqUSG4ASomD8iEGpZ0Z1UMtEHsqFsp 38c8m3vF63MoSjc3DiLa3m14315n0zLwr670B4a1701OcGwR6aT1xpsfKIav3HcKxLnVkJOktaZ 8VSTxjkrEtTx2faCg7DEROUX5+eHTgeH7cyu9wl2PTxIYOry1tloa4US+Oql3S5/9MEmAu8QFZ1 4tU5IyAIEe0kpTF9zfKIVmfSn X-Received: by 2002:a05:7022:2399:b0:12d:d27f:d817 with SMTP id a92af1059eb24-1318550ae20mr12188185c88.19.1778513445356; Mon, 11 May 2026 08:30:45 -0700 (PDT) X-Received: by 2002:a05:7022:2399:b0:12d:d27f:d817 with SMTP id a92af1059eb24-1318550ae20mr12188121c88.19.1778513444549; Mon, 11 May 2026 08:30:44 -0700 (PDT) Received: from [10.0.40.30] ([51.52.155.79]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1327810ff4dsm14644541c88.3.2026.05.11.08.30.40 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 11 May 2026 08:30:44 -0700 (PDT) Message-ID: <25a4fc45-1b4d-426b-954a-60bf21e9040f@meta.com> Date: Mon, 11 May 2026 16:30:39 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 9/9] vfio/pci: Add mmap() attributes to DMABUF feature Content-Language: en-GB To: Alex Williamson , Leon Romanovsky Cc: Jason Gunthorpe , Alex Mastro , =?UTF-8?Q?Christian_K=C3=B6nig?= , Mahmoud Adam , David Matlack , =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= , Sumit Semwal , Kevin Tian , Ankit Agrawal , Pranjal Shrivastava , Alistair Popple , Vivek Kasireddy , linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, kvm@vger.kernel.org References: <20260416131815.2729131-1-mattev@meta.com> <20260416131815.2729131-10-mattev@meta.com> <20260424183153.GJ3444440@nvidia.com> <20260426105215.GA440345@unreal> <20260427083644.4ee174cd@shazbot.org> From: Matt Evans In-Reply-To: <20260427083644.4ee174cd@shazbot.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Proofpoint-GUID: YXIsXUglWK9S2inrC-FfqLKkBEXHNPjq X-Authority-Analysis: v=2.4 cv=IP0yzAvG c=1 sm=1 tr=0 ts=6a01f626 cx=c_pps a=JYo30EpNSr/tUYqK9jHPoA==:117 a=2UbFsIa4v//lIgRL4kGwwA==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=7x6HtfJdh03M6CCDgxCd:22 a=U_y8lYiYyhHBU5rMqhb2:22 a=VwQbUJbxAAAA:8 a=r1p2_3pzAAAA:8 a=VabnemYjAAAA:8 a=Ikd4Dj_1AAAA:8 a=02ciemoj1X7HeLU9vPcA:9 a=QEXdDO2ut3YA:10 a=Fk4IpSoW4aLDllm1B1p-:22 a=r_pkcD-q9-ctt7trBg_g:22 a=gKebqoRLp9LExxC7YDUY:22 X-Proofpoint-ORIG-GUID: YXIsXUglWK9S2inrC-FfqLKkBEXHNPjq X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTExMDE2OCBTYWx0ZWRfX/H66nzUdmCBd vXKzgiXx9l0J0v7w41npCX+Kify4GhWll7tbjpfIIkFMkYRxXZetcwcWnFfnwcdLZZi1FqWRxS0 bcF5SNhZbFG1GTdWXmy1phUxsnbQqZYCevBOAwiVYayiSGAf+vTdMTLdGxHPF/FUOTFc+Uk8oL4 91DhBEKA0lxKsZXQWK5v1IgVEFM5BUYNxOaHLT1W8/KegPjaT4PNVOUhImjvYQYP1afJgkmxQa9 R1tC7GV+UmIl8bwWxQgG4kqFPyo3ukY/+9+PoCQeixczYPBqR4afzrgTvgvlXZ1inwy67fER0/p 4zI2VgQraTYutqCsxZoGLO+NiB359BxEtI6esZnjcmnAtEFcJd2mv4h0eKarelNvYglblGs6jE/ 3ZXCEFwZtAm4E5bP++IyjMKKWxvfxdVL51jNWOhMOENqbIFyCIGcokrw/6X9RZ1J27XysyUjaPj Yn1vmvWUF/IX3SfhZqQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_04,2026-05-08_02,2025-10-01_01 Hi Alex, Leon, On 27/04/2026 15:36, Alex Williamson wrote: > > On Sun, 26 Apr 2026 13:52:15 +0300 > Leon Romanovsky wrote: > >> On Fri, Apr 24, 2026 at 03:31:53PM -0300, Jason Gunthorpe wrote: >>> On Thu, Apr 16, 2026 at 06:17:52AM -0700, Matt Evans wrote: >>>> A new field is reserved in vfio_device_feature_dma_buf.flags to >>>> request CPU-facing memory type attributes for mmap()s of the buffer. >>>> Add a flag VFIO_DEVICE_FEATURE_DMA_BUF_ATTR_WC, which results in WC >>>> PTEs for the DMABUF's BAR region. >>>> >>>> Signed-off-by: Matt Evans >>>> --- >>>> drivers/vfio/pci/vfio_pci_dmabuf.c | 15 +++++++++++++-- >>>> drivers/vfio/pci/vfio_pci_priv.h | 1 + >>>> include/uapi/linux/vfio.h | 12 +++++++++--- >>>> 3 files changed, 23 insertions(+), 5 deletions(-) >>> >>> Nice and simple >>> >>> Reviewed-by: Jason Gunthorpe >>> >>>> @@ -1549,8 +1551,12 @@ struct vfio_region_dma_range { >>>> struct vfio_device_feature_dma_buf { >>>> __u32 region_index; >>>> __u32 open_flags; >>>> - __u32 flags; >>>> - __u32 nr_ranges; >>>> + __u32 flags; >>>> + /* Flags sub-field reserved for attribute enum */ >>>> +#define VFIO_DEVICE_FEATURE_DMA_BUF_ATTR_MASK (0xfU << 28) >>>> +#define VFIO_DEVICE_FEATURE_DMA_BUF_ATTR_UC (0 << 28) >>>> +#define VFIO_DEVICE_FEATURE_DMA_BUF_ATTR_WC (1 << 28) >>>> + __u32 nr_ranges; >> >> Alex, >> >> The TPH proposal extends the flags field in a similar way, but I suggested >> a different approach to conserve bits. At the moment, we spend three bits >> on a single feature, which feels wasteful. >> >> What do you think? >> https://lore.kernel.org/all/20260409120415.GF86584@unreal/ > > I already proposed a very different interface for TPH that decouples > the dma-buf creation from setting the TPH values: > > https://lore.kernel.org/all/20260423132016.4a25e074@shazbot.org/ > > This is overall less intrusive than the TPH change proposed, but it > could still make sense to align this as an operation on the dma-buf, > that can be probed as a separate feature. Thanks, I'll add a VFIO_DEVICE_FEATURE_DMA_BUF_ATTRS in a v2 instead to get in line with the TPH work, no worries. For the benefit of future hackers, how would you describe the criteria for adding flags to this existing field? What hypothetical feature characteristics would be appropriate? (Maybe it's that these attrs & TPH add scalar fields in several bits rather than a simple boolean.) Two of us have independently added something that's turned out to be inapproriate so some guidance would be good. Thanks! Matt