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 A7F71C35FFC for ; Tue, 25 Mar 2025 06:50:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 92AB4280002; Tue, 25 Mar 2025 02:50:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8DA06280001; Tue, 25 Mar 2025 02:50:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7A20F280002; Tue, 25 Mar 2025 02:50:49 -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 5D004280001 for ; Tue, 25 Mar 2025 02:50:49 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 5ED2DACCA7 for ; Tue, 25 Mar 2025 06:50:49 +0000 (UTC) X-FDA: 83259150618.22.0F10953 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) by imf10.hostedemail.com (Postfix) with ESMTP id CB432C0011 for ; Tue, 25 Mar 2025 06:50:46 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=NJyJNMhy; spf=none (imf10.hostedemail.com: domain of bingbu.cao@linux.intel.com has no SPF policy when checking 198.175.65.14) smtp.mailfrom=bingbu.cao@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742885447; 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:in-reply-to:references:references:dkim-signature; bh=HBA2spKp26tYPT4AFk5VD6PkuprFNBIZvJsPagQdU8o=; b=74OQynH21KykaJEw2E4OypwTZzKErElSJwF0zg/wfwixdQ0Fx+Ber5+Juuk33hX3+pu+sb IC08A5VE/ePbmEJ2IR95tGXmgrCWvCaV1Fc/x21rsZEY3AlrDunTgByhFESyloOktQaUsB gagYNhSMuqC1P1/iurKZgL85Y7mhGmw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742885447; a=rsa-sha256; cv=none; b=I+5R/7+ElsCRU/aSI6iRTqzIjLzD4LjvezCMAooMp/PxwtCYzz6YGEwDTvJlMdyuwC7sNq eyZ8w5SMPK91bzcFgMqsgyM1QN4HRdtDQocj1MLCqS0dKnLd5erlrbrvjf0t0bP5/kPQHF RJcgQ+3lUYnXTsdr7fbVnbKdQWOWMng= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=NJyJNMhy; spf=none (imf10.hostedemail.com: domain of bingbu.cao@linux.intel.com has no SPF policy when checking 198.175.65.14) smtp.mailfrom=bingbu.cao@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1742885447; x=1774421447; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=pu0zT6gX6x6DsTeciyCK/jb51Z+mrcZK1RmVNEfyxBQ=; b=NJyJNMhyiOC7gW5YZ1dmnpg6Z5rIGFVftB9lrql1//xUGh7CgNEB0Bym vb0twK084eGimfu8wlLGWpVyO5raAFcbkpYGOdv/MG1vg+LcVIcoANZlm NeUJ5bkWhOsLPfjXSwPfNk6wQGOTXFSTDAMWzRm34QDIJmIGFQgjZHb8c cyDKdeYdC47MXcu8FD5cb63njQbuqZFrA17wk5q4m3XC7IQenKCkBGlnH 35gfTF6WtONIYMGQps/d8VYZNJNF2wqCuES5pEXtN65dJlFPxA6Jf/FwN PZV8oi2RPqiT06yzPnjKnBhiVcs8uE8rdMXoroG22PooDgkalH83cuJxy g==; X-CSE-ConnectionGUID: n9Ptgu2JQdCu9bbeKnv2sg== X-CSE-MsgGUID: oUB9FOQnR8CagiqLo9n44A== X-IronPort-AV: E=McAfee;i="6700,10204,11383"; a="47899964" X-IronPort-AV: E=Sophos;i="6.14,274,1736841600"; d="scan'208";a="47899964" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Mar 2025 23:50:46 -0700 X-CSE-ConnectionGUID: THKVFx1iQrOGN7U1KL3Nnw== X-CSE-MsgGUID: lgUDVPWuTgSBNIKdbLUZwA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.14,274,1736841600"; d="scan'208";a="129467662" Received: from ipu5-build.bj.intel.com (HELO [10.238.232.136]) ([10.238.232.136]) by orviesa005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Mar 2025 23:50:44 -0700 Subject: Re: [PATCH] mm/vmalloc: fix mischeck pfn valid in vmap_pfns To: "Kasireddy, Vivek" , Huan Yang , Hillf Danton , Christoph Hellwig Cc: "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , "opensource.kernel@vivo.com" , "urezki@gmail.com" References: <20250317055304.GB26662@lst.de> <5a12454c-16a1-4400-a764-f49293d8dece@vivo.com> <20250318064805.GA16121@lst.de> <5229b24f-1984-4225-ae03-8b952de56e3b@vivo.com> <20250318083330.GB18902@lst.de> <20250318084453.GB19274@lst.de> <20250319050359.3484-1-hdanton@sina.com> <20250319112651.3502-1-hdanton@sina.com> <752e606b-640d-46d1-a8e0-fa714b29a7b6@vivo.com> From: Bingbu Cao Message-ID: Date: Tue, 25 Mar 2025 14:46:00 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Stat-Signature: a4f7dqo66aqm5iyczt34sah76wo846k5 X-Rspam-User: X-Rspamd-Queue-Id: CB432C0011 X-Rspamd-Server: rspam08 X-HE-Tag: 1742885446-200530 X-HE-Meta: U2FsdGVkX1/GsdLIhCK+iLZBnctOLoo4MShnvrb+xCI7Hx6hRIJb2YrZ34KmtP9bp991EIH8WtdVu/gbH44dJLUmf0TFcvNPBgpE1tQJJDImS9CwZ9FmvPCaK4XwOsuPiJAPattTYtxHM/1nc5uIaZ8OxuIbXiIWhIR89Ag41YzeN1A8Bx84wXDHebHRRNNpUMe9W6x2psyTJMCaRzHkWG2T3ETb5VBgwfRXXHyAL0RVJRMubwhny3PcVARuo3TWAk/ApCpYHM5ohYOyOnFbQtDgHchARRWTEcDvNMktpedyJcV7L8TAP1INFtP4BChBaqSwlLvJeFT+Qr/olD2UDmXQHKTw/dA5SJEiNtuiltXKa3mwNgsUtg5QXrmvldXZyUyV267DCRADxC3+/AKo65CQTcYFuialLn8E9Dc8VkDDJ61D+FRGG9dj6Kwz3f30LgMtZ279KU/qveq3Oqk5FBlnGgIfdYQqrTs5o/dUWr0+pAgWbUxR5iP6DhhgtbTtNh1SAWdyo62cdmN0ZK0gv3/BX8pmIaexrEYDcU+FL2ARSQ62kTaPB5YqoQ2o9vEv2izkJ2tUjdANQF0KQGNP2/++bhXCL6S8uKnUuEO9e6IgbzEZ4eJmwgqPqruYU7f1kpsb+6NKyHolFjE/cj0JwvMNy4s6Hn0Vh6kCnMd+C6WxexEHOAyHybbRZKfKNo50IiB7AJtZ+1QMjVx/t+I6V/npM7eriwg93qPO1EcBcL4xF9S69eae6/MFw1uA4BPFo2P0zM582EfvuwXXZhDdIpjIONG5jCrq4bV0q7MqiPhkxttVMFArgVDl6sQP65+guD3+0bTiJTLeDUjiMOo0QTj7O7NTvSDVSRj3rBg+hjxS/fWdKlZJs+VWPcQzXqWkJLDpZDnEmjm12XaaIrWTuKNG6YyRmgPVUnXsQYa4fM0fUF6K00ItmokXJLWdxrbV41I11SHsnQqSGQo4C+i 8SNIGf3X +zmbpUp57fa9wlnpcsndHiaHlWvYRkaBVgTGtHZjk2GU9FicCRz49Hk/TiGQdgiaBkwUV5tCBdkdL1qsjHu4cAtLXT8uQwzLmNbpjKMfjUhkxnoUbKp5uhg1J0wbdFQ8WQLxtN5bYEFo4HF2DQjKOV7y+DS5A2Mc/uFkzbIpfx8bh4xXHRD42XdLtY7cCnDaiWm/JTByd2PeP5u6njUrWuaPir7KKJYKj8oUeD4M4pd5BYoZK4K6Ph0sDDWGSZ4PduEQk 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: Vivek, On 3/25/25 2:32 PM, Kasireddy, Vivek wrote: > Hi Huan, > >> Subject: Re: [PATCH] mm/vmalloc: fix mischeck pfn valid in vmap_pfns >> >> HI Hillf, >> >> Thanks fo your suggestion. >> >> 在 2025/3/19 19:26, Hillf Danton 写道: >>> On Wed, 19 Mar 2025 09:08:51 +0100 Christoph Hellwig wrote: >>>> On Wed, Mar 19, 2025 at 01:03:55PM +0800, Hillf Danton wrote: >>>>> A quick fix is to add a vmap_pfn variant to walk around the pfn >>>>> check in question, like the following diff (just for idea show). >>>> No. >>>> >>> Patient to see your fix, given no low hanging peach left for Mr Folio >>> in case of HVO, (feel free to ignore, who is likely about 2.6-mile >>> less tough than you could be). >> >> I now believe there are two way to resolve the HVO folio can't vmap in >> udmabuf. >> >> 1. simple copy vmap_pfn code, don't bother common vmap_pfn, use by itself >> and remove pfn_valid check. >> >> 2. implement folio array based vmap(vmap_folios), which can given a range of >> each folio(offset, nr_pages), so can suit HVO folio's vmap. >> >> 1 is simple and can fast fix this issue, but may not too good. I need discuss with >> bot Christoph and udmabuf's maintainer. >> >> 2 is hard, but may worth to research, which I also will try to do. :) > Another option is to just limit udmabuf's vmap() to only shmem folios but I guess > it may not work as expected if THP is also enabled. > Bingbu, what exactly is your use-case? Could you please describe the scenario that > requires you to use udmabuf's vmap()? I guess my case is a very simple one. Userspace create the udmabuf and mmap: dmabuf_fd = ioctl(udma_fd, UDMABUF_CREATE, &create); userptr = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED, dmafd, 0); And driver side call dma_buf_vmap() on the dmabuf to get a virtual address. > > Thanks, > Vivek > >> > -- Best regards, Bingbu Cao