From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8A1A6C3ABC0 for ; Wed, 7 May 2025 15:41:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3B8776B0095; Wed, 7 May 2025 11:41:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 366B16B009A; Wed, 7 May 2025 11:41:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 22D056B009C; Wed, 7 May 2025 11:41:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 07E596B0095 for ; Wed, 7 May 2025 11:41:22 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 89014805DE for ; Wed, 7 May 2025 15:41:23 +0000 (UTC) X-FDA: 83416526046.25.3E8997D Received: from mailout2.w2.samsung.com (mailout2.w2.samsung.com [211.189.100.12]) by imf12.hostedemail.com (Postfix) with ESMTP id ACBEE40006 for ; Wed, 7 May 2025 15:41:20 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=Wq85GrEl; spf=pass (imf12.hostedemail.com: domain of p.antoniou@partner.samsung.com designates 211.189.100.12 as permitted sender) smtp.mailfrom=p.antoniou@partner.samsung.com; dmarc=pass (policy=none) header.from=partner.samsung.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746632481; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:in-reply-to: references:references:dkim-signature; bh=i2+hxfRpq1YeRWUJuUR+XxecKat0PSvfwB1L0Zom2ZY=; b=fMnR51dTOllyggkph8wgy0KkBWLOY+kL/XnHsETSaS0xAcQtN/BofmfPEsCf2DeXMVHmve auKxxmiNNpry4FFH7uDhluHSAa6W/N0NVTIZMq4LePlk5thTtvPoIkc5uCcpYOWKw9Xmwe Ghvdfy/DPkfmUuI+JeyUcQa3DpGAKPs= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=Wq85GrEl; spf=pass (imf12.hostedemail.com: domain of p.antoniou@partner.samsung.com designates 211.189.100.12 as permitted sender) smtp.mailfrom=p.antoniou@partner.samsung.com; dmarc=pass (policy=none) header.from=partner.samsung.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746632481; a=rsa-sha256; cv=none; b=wpr2LUNkMoHHxY9WYgCFTk37cBcVBzUriYu4nySz38FXFtNPruYz1hT/lOxbfKofz356Cq k7VN0XjG2ARaBLg6LCwP37S02LIcJ8sStoGW912um2ZHCd7CZ+sE16zIZ12nyrkjMWWyYs pg669FGiVpZWFFsPC5EQAwRLIOcsReU= Received: from uscas1p2.samsung.com (unknown [182.198.245.207]) by mailout2.w2.samsung.com (KnoxPortal) with ESMTP id 20250507154119usoutp02da7fad72f0b802cac8bb0d13c4ab8b45~9SPx-M1bf3209432094usoutp02O; Wed, 7 May 2025 15:41:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w2.samsung.com 20250507154119usoutp02da7fad72f0b802cac8bb0d13c4ab8b45~9SPx-M1bf3209432094usoutp02O DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1746632479; bh=i2+hxfRpq1YeRWUJuUR+XxecKat0PSvfwB1L0Zom2ZY=; h=From:To:CC:Subject:Date:References:From; b=Wq85GrEltvrdEjF/ebsbY1X+O1FbtZRVMB+I6fgG2eUvxyGMBTsWWU9K3cg/5qqsf woJFk3g76UwuVPaIXx5SbbhGusXGWpt71OBpXuw2ixejMRS1ckirSkA1ZUtQiF3/fC RB80CMmPwKMHOD4ai1twgrBSNPLhDX57O6guAGB8= Received: from ussmtxp1.samsung.com (u136.gpu85.samsung.co.kr [203.254.195.136]) by uscas1p2.samsung.com (KnoxPortal) with ESMTP id 20250507154119uscas1p2a4055d14ab111fdb94a6378789c38d9d~9SPxyGeP32745527455uscas1p2R; Wed, 7 May 2025 15:41:19 +0000 (GMT) Received: from ATXPVPPTAGT03.sarc.samsung.com (unknown [105.148.161.7]) by ussmtxp1.samsung.com (KnoxPortal) with ESMTP id 20250507154119ussmtxp16f09982c5c707a43153896627c23d355~9SPxpCgJ81490114901ussmtxp1m; Wed, 7 May 2025 15:41:19 +0000 (GMT) Received: from pps.filterd (ATXPVPPTAGT03.sarc.samsung.com [127.0.0.1]) by ATXPVPPTAGT03.sarc.samsung.com (8.18.1.2/8.18.1.2) with ESMTP id 547DqSQo050757; Wed, 7 May 2025 10:41:18 -0500 Received: from webmail.sarc.samsung.com ([172.30.39.9]) by ATXPVPPTAGT03.sarc.samsung.com (PPS) with ESMTP id 46df5wb1w4-1; Wed, 07 May 2025 10:41:18 -0500 Received: from au1-swbuild-p19.eng.sarc.samsung.com (105.148.41.22) by au1ppexchange01.sarc.samsung.com (105.148.32.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Wed, 7 May 2025 10:41:18 -0500 From: Pantelis Antoniou To: Andrew Morton , CC: , Artem Krupotkin , Charles Briere , Wade Farnsworth Subject: [PATCH 0/1] Fix zero copy I/O on __get_user_pages allocated pages Date: Wed, 7 May 2025 10:41:04 -0500 Message-ID: <20250507154105.763088-1-p.antoniou@partner.samsung.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: au1ppexchange01.sarc.samsung.com (105.148.32.81) To au1ppexchange01.sarc.samsung.com (105.148.32.81) X-CFilter-Loop: Reflected X-Proofpoint-GUID: Uqy8Ifu5S6IefbyZ2YbQZnVuMW1BmdD4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNTA3MDE0NyBTYWx0ZWRfXy9jK5XmlwJK5 TAbQbuSOBEVkdhpGhCK+kjkYuEwMnti8seyiihFKv1wRy6Gs4ZOi6cw5AlXWDz06yRiCn5YSjWs BbtbY9mTixg9A05SFHjY6kukPQ1qkbqYdwjhtKQod/Ha0zv91TW2hF8yLIwn8R0kYevfC+6eBa/ UV7ge1EEZULGzAqET5ddmUcogbc8iQDp22L6+izutKdnb+RfFj3fmqifhjUqKp3hHt2KDM9fbZt SNEoAXIh5ztrOwuX4YYI5UYhj4FsceYxcnBSrWjYJVp2O3Yx9ZbYbWPauHv8MAlRHmnsVOymQOr Fk0MrEEye/wV4n0za7Su++FjwKY1Qsw8vICDPvSug7rj8kPoetWYf1jS6vTL/8o2+BYV8jY2NQp YoyQ+1V1 X-Proofpoint-ORIG-GUID: Uqy8Ifu5S6IefbyZ2YbQZnVuMW1BmdD4 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-05-07_05,2025-05-06_01,2025-02-21_01 X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 malwarescore=0 clxscore=1011 priorityscore=1501 mlxscore=0 lowpriorityscore=0 impostorscore=0 spamscore=0 phishscore=0 bulkscore=0 mlxlogscore=751 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2504070000 definitions=main-2505070147 X-CMS-MailID: 20250507154119uscas1p2a4055d14ab111fdb94a6378789c38d9d X-CMS-RootMailID: 20250507154119uscas1p2a4055d14ab111fdb94a6378789c38d9d References: X-Stat-Signature: xnrir75ti4ubqrpc95zoiomz85pnn9au X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: ACBEE40006 X-Rspam-User: X-HE-Tag: 1746632480-21723 X-HE-Meta: U2FsdGVkX19LLFEJAeHcFoG6/roxODv6GJBtD3LSPvGK/7NgkEGxLA4JG81fIHlppzA6VDM8FE9k80NUmSBmeKhk/AtwCDO9uFYZNvsl5hlPo9omUuTKpcqabEQtRlSkNtvjik/0RNUrBYDE/48uieTunnFh52r0TInK9X+x6ELuOCGc7qnTSi27mfLQmcimfFdyIjG/lDXpkp3BSGYcR/A4cpjjTeq7V5EHpUr7YBMtvIfoV6/M0cCAR6LC8OIDMTZi4WGgUTq7jnfT+mwMh9JkAC9gfKrJVsdc5+Uf0V46OckLgakuM9s42esAuP8PE4ZV7FnRp+R8POINiJgML0TyEQzXsyiE6+D6mN69pf+QIiRqSqoHRCbNYp2gtG0W9VXowgwldM18/OKneqlo6jFIX+79h1qfRUTMXblDgWG8AomB+4zooMswOxCjAdi6jiZTmM8Moe6J8TFcWUHxbGNGQkHPTP/TfYS7l2r35JvHu87bS1LEob/1DRBSyAXU237+ts2OAas/bgWcbtioi6W6NY8bCRifoZI0JU89UctwclgIkdxubjDHgcgqUwFOSj++3E2EgtWtHm8syRdhZKJowxSc3cY6p7m/9n/nWGNE7qN8P23lq9jwOOHdOE6Kq8a3R7RLu0CBHFdDdMVnND78uHPqJkT6KDw6IzmsYs2q8+q0lEB/Whuxbse9Mji8LnB4aug+71aDOp14NWfBy/dSlUh/tkXuaGSvlo8zVDeOnzVKt64DWofRvHwnzhUQmFC7cb5d7Ly6xsrWGYA+OnN3/g3mNTRq/3rjEwQnMjJTGcEOTsFvTdxFSxiq2UTE0EENUejrBI2XrK8D0Sgef2RnaH87bmBlffJaEbJDCpimqiGIjvl4HC8nu7dHEedLcHi06GJsDzRzZSRAxoOCenQfcSacsfDc22wrmU7ApYtaP2NlkRGi1mMSiiTW40FSBM79QQZ+EKe48g9RWiZ izQKe0gV tMDEI4bvz/EfpTfkVYyMjCZmmwq2c1E+f/3+90mmXZmlzXEMmvSNIywJ+NMRShQd8M9o+kNveDWy9/w0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Updates to network filesystems enabled zero copy I/O by using the netfslib common accessors. One example of that is the 9p filesystem which is commonly used in qemu based setups for sharing files with the host. In our emulation environment we have noticed failing writes when performing I/O from a userspace mapped DRM GEM buffer object. The platform does not use VRAM, all graphics memory is regular DRAM memory, allocated via __get_free_pages The same write was successful from a heap allocated bounce buffer. The sequence of events is as follows. 1. A BO (Buffer Object) is created, and it's backing memory is allocated via __get_user_pages() 2. Userspace mmaps a BO (Buffer Object) via a mmap call on the opened file handle of a DRM driver. The mapping is done via the drm_gem_mmap_obj() call. 3. Userspace issues a write to a file copying the contents of the BO. 3a. If the file is located on regular filesystem (like ext4), the write completes successfully. 3b. If the file is located on a network filesystem, like 9p the write fails. The write fails because v9fs_file_write_iter() will call netfs_unbuffered_write_iter(), netfs_unbuffered_write_iter_locked() which will call netfs_extract_user_iter() netfs_extract_user_iter() will in turn call iov_iter_extract_pages() which for a user backed iterator will call iov_iter_extract_user_pages which will call pin_user_pages_fast() which finally will call __gup_longterm_locked(). __gup_longterm_locked() will call __get_user_pages_locked() which will fail because the VMA is marked with the VM_IO and VM_PFNMAP flags. Pantelis Antoniou (1): Fix zero copy I/O on __get_user_pages allocated pages mm/gup.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) -- 2.25.1