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 C0431C001B0 for ; Tue, 11 Jul 2023 07:54:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DAD578E0001; Tue, 11 Jul 2023 03:54:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D364D8D0001; Tue, 11 Jul 2023 03:54:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BD65B8E0001; Tue, 11 Jul 2023 03:54:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id A9AD28D0001 for ; Tue, 11 Jul 2023 03:54:40 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 5DDC416015E for ; Tue, 11 Jul 2023 07:54:40 +0000 (UTC) X-FDA: 80998569120.08.8B3CAF5 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) by imf07.hostedemail.com (Postfix) with ESMTP id 8086040007 for ; Tue, 11 Jul 2023 07:54:38 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=K19Nrzp1; dmarc=none; spf=pass (imf07.hostedemail.com: domain of alexghiti@rivosinc.com designates 209.85.221.46 as permitted sender) smtp.mailfrom=alexghiti@rivosinc.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689062078; 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=lkPK/GMPSBp/4g2qtcrJmujy1568nlXOGlV287FaDRc=; b=OUP7dNS57ZNLdX95+Qodbb/d2k/+nRsExtUhsbendOi0/JrOUiMOtVzV+rvFatjo6G1eFv xt+BucXuGYsrqYgC3vye584qppeaTwQIsrf8+2fTtsoAI7IdGJcWFWB2FOZ44L3Ntxv810 pUJJ59gkO2nrjEchdrJ9GlabYkZ+svQ= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=K19Nrzp1; dmarc=none; spf=pass (imf07.hostedemail.com: domain of alexghiti@rivosinc.com designates 209.85.221.46 as permitted sender) smtp.mailfrom=alexghiti@rivosinc.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689062078; a=rsa-sha256; cv=none; b=BMJkID1ubAaa9umj4Wm7QBKVKXiM1m3MLsY7kaKbNYUL+hUHEc1z7G+6O/uL6nXdxqRc+m AK2F95lMSzouLXp0sAvr3Q2TXIO72z88URYv2ZWT2duY+yddjKDhKBY2c/CfrkBubqM9mA 66LHmRCS+nDa5wPM5ZNsjLxvc2kU/9U= Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-31297125334so3862021f8f.0 for ; Tue, 11 Jul 2023 00:54:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20221208.gappssmtp.com; s=20221208; t=1689062077; x=1691654077; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=lkPK/GMPSBp/4g2qtcrJmujy1568nlXOGlV287FaDRc=; b=K19Nrzp1xAN9FNNb8XRkpzz0wzk3pqohF7q8+RkvdexxFbKKM7d+ucdX6H3xvRoCoo IAvl+ydAs/IUYirGbQwvOuyp4A0dkj0s/nO7Wc0g1z2W/DpIfxDUlqKRDsMZPbh+6SZG UCe4MHkpZvEjCz72zHCdheewAIwOwYPwkVsqdEE4tkrDZGuGTwCnzvidF2fVjDqYCvIA qBjO2GW0gO8pham8mPm4K1v0bW74ZtjwGzEIJCFFnbFQdOXWS+dnNjbtCeWOne6Ej7AW hqxv8/DVt4rvAqBoBN53nUXsUuqopDb/uAEA2da0pu6momATMv5C5drS+dFGgJdqinm7 l2Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689062077; x=1691654077; 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=lkPK/GMPSBp/4g2qtcrJmujy1568nlXOGlV287FaDRc=; b=XBmbeBvPaB/yvYvrM8e7goU5VpXRG4DWA3CiAJcNE9d7Cfzw+2TDNr+5jBfZIOp6Jl M6j1+hssAr/BvLAoHX7hjAHsMCpuOBxy75ARquaKKNJOsJBReJcmqYxlTK0gUoOT/siO IkDc32OKw+F/o0x/UEjFA+iRioe+D8a0kuxX7hlhL9CojHBCiffSVBOKeyzdE3BKyRuB y+0TjsLF8Vq/FHT04ZSfb4LK4qCjoyxqnFo2GbBk+rdL8wey+utwS113g4qbEqrEcU1q u/OoJ0ILOLV4+GiAtDRV4ZehiLVs1/J7etgm8gVN9puKdUND8fE1Li2L4As5iuSzylMu shKg== X-Gm-Message-State: ABy/qLbxSLkw0UlNl4/fKiDumrknnGVRFXj2oFhE5XCWF3TlW4XmNSHy V7B3G1RJz+nit0IuIhcBBODA/Q== X-Google-Smtp-Source: APBJJlH0eknonRxAkA8j5z+QdOB01QLG+MwLKDfRYjX56LEKFmW17Z4Edj1lXAEKj0Nz8QWKQj+7hA== X-Received: by 2002:a5d:6947:0:b0:314:2736:ba3e with SMTP id r7-20020a5d6947000000b003142736ba3emr17296610wrw.3.1689062076885; Tue, 11 Jul 2023 00:54:36 -0700 (PDT) Received: from alex-rivos.ba.rivosinc.com (amontpellier-656-1-456-62.w92-145.abo.wanadoo.fr. [92.145.124.62]) by smtp.gmail.com with ESMTPSA id i6-20020a5d55c6000000b003145521f4e5sm1481156wrw.116.2023.07.11.00.54.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jul 2023 00:54:36 -0700 (PDT) From: Alexandre Ghiti To: Will Deacon , "Aneesh Kumar K . V" , Andrew Morton , Nick Piggin , Peter Zijlstra , Mayuresh Chitale , Vincent Chen , Paul Walmsley , Palmer Dabbelt , Albert Ou , linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Alexandre Ghiti Subject: [PATCH 0/4] riscv: tlb flush improvements Date: Tue, 11 Jul 2023 09:54:30 +0200 Message-Id: <20230711075434.10936-1-alexghiti@rivosinc.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 8086040007 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: aiafwynb9mefczx99wix4y17365r38ag X-HE-Tag: 1689062078-227125 X-HE-Meta: U2FsdGVkX195LnCb+GHvf6dQYKjM6o06bodTMgvK1a1x7U9hFhvMydeKowfxmL74kAaPkP/hrPm9SqtjOpPcDAn3/8ysK8MLq7Q+ZheJcOIoYunH+ewM2Tvx0RUE0mWQSwJy7tSggaI83ZWLOzylZliSvHWAF10xScY1Y0/vZVI60keGy6R8i2uFZo5mK0qY+4vWoV4l2n5mFKARS7lWsfIBCH8wIAAqYZTTI2X6ckUl/aYIDfVR/o5dLkFUrCHblJ4B+VIaDWjHOCQ4LY6Gyyo9AQcPHJ5OlZODhUtj9eA4dLGJodV+qUNUDnIBjMseeAA7BPVQxmxmWjyW+cn36xoMSRmrkjnmxW6e51WrOnjnqKTIQY7o1SeYZcxeCRkwWgVhg2Eexw8ffMumbrrFWpFg1XHudSZUPNOvl8TOhRZONN/zcFZBC8339cF8KZAL999Ra8WIPNzS9rkelLEVCrsD15/WHja+eaPxJEQt1JTaexsnS5YJhnU/kIscmjlK7eY3NNXcyXRFUqh2pjQWB6FVr34BLXLm2shFeypTpr9amrPKx7flAVQcs9bv6+3QFtT5bDUaonJeuSpLYsQKeZJ9I7K5eOpsjgfiZXBJxMoPm4qTh4ed3AsBx2V6e6Tuv07r1lSQ6/Klpvh8RJaLOtYFE+c/V7DYK88ilcDeQoNOvAOMV8GeTPjaxgFQ6vTGaIaFKF3jZRIdLYZZi3ua1wtf3bCn64P+Q5AzoUOnIgwV+sUI6MDFYawO6IQPdbTfOK90QpDjYwuk+G979mSDqfBInxXfjBuzqIj/JWTz4gp5TzIfMztDaKHHQaqFPbRUY23WzMJ7XdedpJCAG4SDhDmzhREhMOUr+fllkYCjxOBgVQwO85j2/mZxwVMx1O1sQEaNrGWqjObGb8pAH14v1V8ndCdugP6T0Z/mB80gkBN4t0F5GDuDV4XZVo83PTmb9CUhxKKTdjYXLWNE8PY 0f8v2gYk 68PJ1ooec/cNCW+K3yh+HmPW/VbFGgEdvtLUoG/IH8x9dcYLFyqJ0rOSveAgGmwFU2gDBExB3DiXMd1W4YDrBXG5aCLqZafkHUJqLxxViCYsOVX3yNqGGztiYPmgZ/c06evhriox+xa5PfKvUs5570TqNhB0R65beukKYe3RUBqTN3GcgHsLw9/VAQ26bqZC9vWPzY3OVy53olJhMyGrIG97FIFIeBQXuHbJkzdqKp1pne2xooZvdcxsXCxwIqrk3s/tqKxbOvktXWCQ4Ak07tRC6MnLS+6PIZ7GF1itpxTc2mZWQMpSLG7YQaz1YfjHBNABxDK/QFIOitKIBNBUsm2hRbk6l3m/OZ/12369IvEpf1ZA28OI8ih1Gk7Mqi1oPDpK3KxigrKVgrj5VYKYMBfQQxfdtpcc7Nz6ephTmyBQDjUmJcJtK98BINVG3wdwSgbJhDoJWL4xD90wmZzuHZxe0EZRtXuGBf0IZ/UmDcQoADnSBKzZRyWZxam8pL1LNKlzI 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: This series optimizes the tlb flushes on riscv which used to simply flush the whole tlb whatever the size of the range to flush or the size of the stride. Patch 3 introduces a threshold that is microarchitecture specific and will very likely be modified by vendors, not sure though which mechanism we'll use to do that (dt? alternatives? vendor initialization code?). Next steps would be to implement: - svinval extension as Mayuresh did here [1] - BATCHED_UNMAP_TLB_FLUSH (I'll wait for arm64 patchset to land) - MMU_GATHER_RCU_TABLE_FREE - MMU_GATHER_MERGE_VMAS Any other idea welcome. [1] https://lore.kernel.org/linux-riscv/20230623123849.1425805-1-mchitale@ventanamicro.com/ Alexandre Ghiti (4): riscv: Improve flush_tlb() riscv: Improve flush_tlb_range() for hugetlb pages riscv: Make __flush_tlb_range() loop over pte instead of flushing the whole tlb riscv: Improve flush_tlb_kernel_range() arch/riscv/include/asm/tlb.h | 6 +- arch/riscv/include/asm/tlbflush.h | 12 ++-- arch/riscv/mm/tlbflush.c | 93 +++++++++++++++++++++++++++---- 3 files changed, 94 insertions(+), 17 deletions(-) -- 2.39.2