From patchwork Tue Mar 18 03:59:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xu Lu X-Patchwork-Id: 14020269 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 ABCDFC282EC for ; Tue, 18 Mar 2025 03:59:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 23DA6280002; Mon, 17 Mar 2025 23:59:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1EBB8280001; Mon, 17 Mar 2025 23:59:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0B515280002; Mon, 17 Mar 2025 23:59:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id E0F79280001 for ; Mon, 17 Mar 2025 23:59:43 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 775A7569F2 for ; Tue, 18 Mar 2025 03:59:44 +0000 (UTC) X-FDA: 83233317888.22.D616E9E Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) by imf26.hostedemail.com (Postfix) with ESMTP id A9F40140006 for ; Tue, 18 Mar 2025 03:59:41 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=LHN85nbZ; spf=pass (imf26.hostedemail.com: domain of luxu.kernel@bytedance.com designates 209.85.214.174 as permitted sender) smtp.mailfrom=luxu.kernel@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742270382; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=x+cFskIjc2R+b1eOxd5DFriJfYFabuqe5pHc955ET08=; b=mZ5qzsEC1IB1XZWEyUNlX/IXeorPZmZ+85/LjzUe0aTYspxVbrnYMnP9EtZZLmt17IW+il 1NPX3xU6oloTCJKR/hfHXee7tzQRr2j2QosMzs8jSEuyYBEYWxqPLZrTT3o5+HqpmEOb4J ZaZ6KTOWsdHVJzjvaduDM60GYk0IvMU= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=LHN85nbZ; spf=pass (imf26.hostedemail.com: domain of luxu.kernel@bytedance.com designates 209.85.214.174 as permitted sender) smtp.mailfrom=luxu.kernel@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742270382; a=rsa-sha256; cv=none; b=pURe6Lcv5rpTLm+DU3L3UxfdBqNvIGRkI0Xow4ZtEa9L/aBvjUJSg/VIhkqEnSNXvIB3Cd C492d3q9xX2m9p7MpZ5Q/11lyEdiHP7Hm3Ps1mq16uqtr2MzMwirAivyOZI9sU+iOdjm2Z oH5whTfP0Vt/9HZOrEHPkyH4hWRTI3s= Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-223a7065ff8so62363435ad.0 for ; Mon, 17 Mar 2025 20:59:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1742270380; x=1742875180; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=x+cFskIjc2R+b1eOxd5DFriJfYFabuqe5pHc955ET08=; b=LHN85nbZ+gQ4+Ov90mXFxOXArU7Gbm17HKW/hXxU3k0By5G2vCV/t99mVnR+eLl+z0 wwe0Hao/b8UkB0WTYkEdkBQPr6c7I0UEnWFmtEXqkS7H+zEqEyZfs53bv+oEQNc+t1mt O/VG7nghuSRq1ytuQdgoi04J3oR9odxHNYrZAvADosyddvSkR9eLhWHQc+ENlDotaUMl iIm75L6PuwJkdTubSkPkD7SOZFT9DX6c24Enb9QPqsjeJeqKD3s7h4mnCJVtEycW0h2A wAvQ8AcdXESEcOEtgj4e4TBJP1ll0MVTHkb89nZUxnsk2Yaiz/mvsdGZfGp3IdAyZ+1E FnOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742270380; x=1742875180; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=x+cFskIjc2R+b1eOxd5DFriJfYFabuqe5pHc955ET08=; b=YKofpQ+s1VjcZ8vf6Qw2TmdXcPP/wEY3mCyo9FKncLH63jHBNIIuc59uMcfMnQCoH4 judxEx3Qxj/WQ6kTYylYu9H0T13dIy4FFbEqVwtJ/zg+daT8CQ36t1XAfGwqB2xxx24N GxN2TQB7VlwOUQY/N+52vaV+aQ9dqqUFHQ6WbUBNQhZF27BdeS45S7BHxzLl7R/OkqCl JO57RoxY52hN23eLbt8eXe8PIH0bwaelVFvyj+k2QbUud7v2ePgl7BvIdjCQSzoV5l0g KAq4tkLffcyampspHFsuwLAkxFrxp/RMlRiBRLDJDr43ICsc/HXYIFFhl8ds3mJiRXw9 5YBg== X-Forwarded-Encrypted: i=1; AJvYcCXdlOCh5GrxmoG0u8TTr5Cj9W9n6PPd1tC1KaAvW7oc0pweYJKmw9D3u8hiQZLotXPrwAOKM2oHoA==@kvack.org X-Gm-Message-State: AOJu0Yx/ihJ4Rab+maTIuqyuj8ixmDs5dGlISwnheWex/8Pm1bZUpNKR kcgW4pIGwK276OiA3La/TJRWm2yH8zfJrNirRTcGiYcM6rMPyW2m1sbYuEY/Cb8= X-Gm-Gg: ASbGncvl8a7qvEuuAap5PAkD8FCvkswqaUNsfftFWNPPENReW4w8jd6xYRpoXfZ1aMW OSKO/oerhk1VRCEJ4DYVRHfMKovbNP6Fuj1sOJvHYWOeqKE2DdKKTWRiKdlTPCsAbEjZ+MwfqMo 4XnWIh/S+ijbvJjS0/pdhZlprpzRQfH8+XwJ1AUrYofrxGtHMrX+LJYBwiaCVr0qz0GxPSnvIer 57SW1A0aKRBkZc77coDhkDPO0cm+ARFvrrTgmBsix+mwO2OSH/3LocgpMahPMI+40bAyiWQfCue 0W1WuKvhoN+7UDcXOCnlopt+fIsOU9sMBjXopmxwhX9Yh7A1ahflQgMBg6ElHjMQYVJonfleIYj vmLl3vnyAe4w+ms+GYa/7wwV3PRQ= X-Google-Smtp-Source: AGHT+IEk0ixM7+/HF7HnljxT7v/b8tGkEF42+OaIkk6MZsjKmh92Ti0vM9eEJawaci+e/TCODhf3qw== X-Received: by 2002:a17:902:ecc3:b0:224:283f:a9ef with SMTP id d9443c01a7336-225e0a62bc8mr145428385ad.6.1742270380177; Mon, 17 Mar 2025 20:59:40 -0700 (PDT) Received: from J9GPGXL7NT.bytedance.net ([61.213.176.55]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-225c6bd4b30sm83720135ad.235.2025.03.17.20.59.34 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 17 Mar 2025 20:59:38 -0700 (PDT) From: Xu Lu To: akpm@linux-foundation.org, jhubbard@nvidia.com, kirill.shutemov@linux.intel.com, tjeznach@rivosinc.com, joro@8bytes.org, will@kernel.org, robin.murphy@arm.com Cc: lihangjing@bytedance.com, xieyongji@bytedance.com, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Xu Lu Subject: [PATCH RESEND v2 0/4] riscv: iommu: Support Svnapot Date: Tue, 18 Mar 2025 11:59:26 +0800 Message-Id: <20250318035930.11855-1-luxu.kernel@bytedance.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: A9F40140006 X-Rspamd-Server: rspam03 X-Stat-Signature: arzsxe7f39ky9g6ph7jfh9kzzmsw4irp X-HE-Tag: 1742270381-928836 X-HE-Meta: U2FsdGVkX19AXfC65KWFVucPsvsbbr64PDcj3MoWUCfOGbBpQZLjKUWbzh34we0XtnZvPbNkCe/wBM87wjBMiNy0U+JeVm3eKt4yGJdAC20AV6oiitE+8HT4BgC8W4OWTQububjdP8+HClX8iAigK26aeij4Rh/o1smR/Y3EN15NNRq4ugJNO/1dmGqdW6qI0vKS/T7WHbVTxB0h9O7k/fnoqcNf5NuPoVNWqtsLYp73ABuRJZF/nU1qEsmWvhMWrsE9hKo9kniSR6U7OkwAtj0F2vXTawihE63pNERh/NBCopfHHpYdRNO3Lsmg+rNDyMKkFQ6StXSjXucgL9I/OipBgRaftpOHHhO2Rx7jJl6wALEE5wiBa9uqU19eeBz9mJo9MM4VMqPafoUnQDyzSlXLCqPcV48Lmf2zHWyFFL/MBT0GvSfbpCaKMKNgzo39OTVa27gi/WspMil11Uwtin4/YCXsmv3LQm9k5Z9/1T1wdZzas3fRRKQsWuoo8OLzeZs1Y6Ztcy1cZ1E+GZDDZLxNXn54e685O+zW+yjdwzkxwVt2Osmd6nyJ5qtny1b5Qol/oAqLaiwI0+AUE5x+NS7dt1rV7XJ6B1aswqWvA/P/h/mW3ZW5fv6nJtAbVwL5vMERlasu2MxH9vPTZLe8OZ4TieQZw+lhq7SnaPve1afl4GJnbfp4RyXWxdy0KJOXQQG6j1L80GHrqVWL7PnLlBxqZ6zmHU2b+f5sZ4Kx2Lyhz9lehGl/z9SIEq4sY3oJruerqo4gHAMwfz5iszWmI2i/S9UuuWdGziksVH9xAfI8dUGzrIq9SnA1fTz0b4sZPKC597INIFcpv+fFM4Pc701WDHkytZh2oEKdvaVFD6akrZuuRFeN3ZB6dT7I1VegTaBjPmQ0r8fc82jVCApHHXqHl+3RyYKHkQLhXYpSUk++dOMuisshgASORSMte8EwR3KxgmskLic9AFp0t/4 iaA1fAKY zgtVIIMHuPved27fFG04p1+T8DGSByiWEHFefLFljHapVAKBYVWCfbsdjBD3VQ2NLLVCIBoCwpuPaxpMvM2vY40eNWvwo7ZLR+gzkxgYIEmSUSBEBYUIB58BB21fp8TBV2xY8pvPRLJFwEXQZenpauQt1SNeWWzAM+rvVw0Ds1n/sJ3A997csBIO5TWnK5zpOETIQ2p8AGu0Itok177wdTSWPpue9q9fqdWqF2/HESgHXSxgttkGogUzh9KNx4+AyiAxB3vDeiWfgnQIAZEpYGywmqkhlemFyvpkB 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: According to the RISC-V IOMMU hardware spec, the IOMMU implementation has the same translation process as MMU and supports Svnapot standard extension as well. These patches add support for Svnapot in the IOMMU driver to make 64K also an available page size during DMA mapping. Changes in V2: 1. Supply more details about huge pte issue in follow_page_pte(). 2. Fix some style problems. Xu Lu (4): mm/gup: Add huge pte handling logic in follow_page_pte() iommu/riscv: Use pte_t to represent page table entry iommu/riscv: Introduce IOMMU page table lock iommu/riscv: Add support for Svnapot arch/riscv/include/asm/pgtable.h | 6 + drivers/iommu/riscv/iommu.c | 258 +++++++++++++++++++++++++------ include/linux/pgtable.h | 8 + mm/gup.c | 17 +- 4 files changed, 233 insertions(+), 56 deletions(-)