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 73047C47079 for ; Tue, 2 Jan 2024 22:01:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 634E66B02A4; Tue, 2 Jan 2024 17:01:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 596DF6B02A6; Tue, 2 Jan 2024 17:01:41 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 410A76B02A7; Tue, 2 Jan 2024 17:01:41 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 309A46B02A4 for ; Tue, 2 Jan 2024 17:01:41 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 03A3D401A8 for ; Tue, 2 Jan 2024 22:01:40 +0000 (UTC) X-FDA: 81635743602.19.BFD029F Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) by imf17.hostedemail.com (Postfix) with ESMTP id 08ECE40006 for ; Tue, 2 Jan 2024 22:01:38 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=sifive.com header.s=google header.b=UOhooY0e; dmarc=pass (policy=reject) header.from=sifive.com; spf=pass (imf17.hostedemail.com: domain of samuel.holland@sifive.com designates 209.85.216.48 as permitted sender) smtp.mailfrom=samuel.holland@sifive.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1704232899; 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:in-reply-to:references:references:dkim-signature; bh=Sx1CrYCYqcy0I3lbTucfKtzktUZzOavzb19InQrqEBM=; b=0nWYQ8F29fbp+4bKKScDYKX0dOk57d2HCVnGZ1EWM33GqmuR/bYNsHrjUZWB5IWR3IR5ZD iUB+cqe9xVzStItrITaTwvg5zb8tpugv+MvuslkB94bOcYKbPwfRN25TcuvAvOLhpE0Iq9 PXxdKavfOTBP5PA9+wfusCJ2TswZLNk= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=sifive.com header.s=google header.b=UOhooY0e; dmarc=pass (policy=reject) header.from=sifive.com; spf=pass (imf17.hostedemail.com: domain of samuel.holland@sifive.com designates 209.85.216.48 as permitted sender) smtp.mailfrom=samuel.holland@sifive.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1704232899; a=rsa-sha256; cv=none; b=5EhZLArDE1gY4zlpuFVETrR8gxOJsd5DoyIwxdqr82kYDFHLRQwnhiOuWtmNtxh/yw0lrT iMtkYCieNET/jLCtIm5o+yS3qHi5AxbX8Rp9NKvmyRa6AxMXtrH3WzryHKGZw4pd3k8Maq DuqnI3D/v/uhn3LlL8K0ZNZ/ID0YQ/g= Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-28c2b8d6f2aso3491156a91.2 for ; Tue, 02 Jan 2024 14:01:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1704232898; x=1704837698; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Sx1CrYCYqcy0I3lbTucfKtzktUZzOavzb19InQrqEBM=; b=UOhooY0eiRN29m8oXxlqS3fmSs3o2HMk5mzNkyeLrZSf1MuLk1SnGO0J044CylnWji 5abFXOtpGNXflNB0oSG2OLdYIVUmhIKF268fh9b5hTxgKA1gs/bZLfbcobiy7gtNWN4g l8Qmw0OnptyzyRsWTtxIMYM/ssJMDQ+X2kuv0rzGI+YO2nvZiPBAchLWb6ddKCgO9H8f +KKsIp2rPwZ8843C7X+9QEBfUzdv3s95ljqqp9NnHXpMSQIpF2jjym8dfcZlwyEoF2wI mo58zlRD61KstNsFSVYwGnTa+GX3WFQ0kJ7GFPK/J6qTQdR0Ty/s/nTjhVkGnB6rCOYW 34OA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704232898; x=1704837698; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Sx1CrYCYqcy0I3lbTucfKtzktUZzOavzb19InQrqEBM=; b=WG8KjDJRkQmgiVeFV749tzcZRAKTSIVV0B/tg+FJTFXTenG9lHCf672JOWS47vXOZs 7Bl5qgF5Slwy7wVW1zeAi3OA9CKohUUItP3cRlp7y+ImSbxaB9p/wbpkIuEwEDEnMcVw v6WptiqIBUL7J5JpWDx442Cd6BTlZ1ySPdOqQxuzv8/53ohNY3499GVFSia7sY+qDxXL 5aieho43iz+yz6NtUxIxaYvsXA8P8jzBw1W318FZI69fd6ZlOkOu4VbPUhUHKjsTKh/i AZxKqM0tO5RlEGdWhBbsi4HhAdu/QS486p1FgPi+eof7Jeck+pgPk/7F5LYd1xWkwgZS u3Vw== X-Gm-Message-State: AOJu0YySZAMgWal2xs8/9c7K1km3zb7zdboCp+Vu26ibrAZRyIYguDrf T4JAQQ74Cq7cUDI7ZEIRfzxmC2vUJDLkXhQ66fRgf3y/ha4= X-Google-Smtp-Source: AGHT+IHSNOWtd16BNBpr13f63JilpUsY7HXImYHsivjSF6nbDu6T9MOgsg44oEC59WRv4BX5AKGF0w== X-Received: by 2002:a17:90a:728e:b0:28c:a9d0:33ff with SMTP id e14-20020a17090a728e00b0028ca9d033ffmr2151486pjg.62.1704232897945; Tue, 02 Jan 2024 14:01:37 -0800 (PST) Received: from sw06.internal.sifive.com ([4.53.31.132]) by smtp.gmail.com with ESMTPSA id r59-20020a17090a43c100b0028ce507cd7dsm101724pjg.55.2024.01.02.14.01.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jan 2024 14:01:37 -0800 (PST) From: Samuel Holland To: Palmer Dabbelt , linux-riscv@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Alexandre Ghiti , Samuel Holland Subject: [PATCH v4 01/12] riscv: Flush the instruction cache during SMP bringup Date: Tue, 2 Jan 2024 14:00:38 -0800 Message-ID: <20240102220134.3229156-2-samuel.holland@sifive.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20240102220134.3229156-1-samuel.holland@sifive.com> References: <20240102220134.3229156-1-samuel.holland@sifive.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 08ECE40006 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 3536c6czmcx4mefoc95fda9dgtjxzk7o X-HE-Tag: 1704232898-343895 X-HE-Meta: U2FsdGVkX18hwkljrPH8KRPaHbrddMCBHHlO5S9KHTtdsdjh4B4xMW5YYhHKrig1/djS5GTd1ZWEdtAB4NnAsQx8RqiJCgUA+m/NKJlmxv676SrDnpIhAzpivtD3TCF88ym5m5yK+y317QMJXDeI3thQYBxEepoxMn+JIkTB/Oy5s8tVqW5f1a5mALjAWSEq2Y82ySf/PW10QA266fa3HZkxRKAkIvw4KGOIpBdIm00DpV8c7/bROMTnNpKuYbXZr6w808ySqqd7dlIdmMg65zQuVYz4eRQwERboEx+L43PCLKoQgkzvHToUMrXYUC+UJIGXlzD+BFSvNf/WumJNvH+x15/IV6gYLsFjSM53lEqGWGWD5Y8Szv3uagmWpk1xNDlGwuT6rNhok/sZPZDmVIZIGQEN9q4nX80YkkliDQ0F6vhb7XHN9qKv7l4Rjp8BVGWDTSjnQzC5OYBM9+MpkTY+jBILy3nzyv3wcBb1Kz7LsgYqHgoEwK3Wpw3yWp02QPMwL68GJZklwCORMs0MybigVuOFnhqBBwhjKbvBgLyGK8fMAxZyj+xDG3Xm4cfx9EJIMwMwiEQ4cA+hEF53tc6h1wtSK1exKn/0nVOxW17PwU7J//+pKOwldfXJinvolyukIgFbIjKTwhf9lq2kGXC0fCEhz+BRkwq3oVhNSZDJRDRMUNrC6WCCThtxaGHUUcjAYX0tUlPcHpIAw2RqQgOprs7du12aK2z5kwHwVAAUn80NLIxQ30h2p/khovyq6Zd7iRmODyMh/bKV+60oHUq9EaLwpIXQcsNANt/Spaz6VS9eNuPDACJPdKnJI7gmkZ/XnZKrTyQk/m6fzL05oVn5h5XRhT+Nq3KLW6+U3z7xxwKO4bcbntj0uou0Oz5Njkw6NFl7YtmczmQ275gt8NMmkDYvi+997gX2ukZHr1Igf2sQAW37e7umgGIMIva/b7nrL4QYo5EpDAh0glu dp/dbveL Wokiwpq3ll7hlcFNsmKQCj/DgJMX+u2nG4iYouTY0dhe8ulm5j4i3AwMep6ngAzZkP+UD1ZsP0MvAuIGKIJeyS8mSuzZtdfZKsY7/YyEUocEpRg/zKH2zRQ3OknXegOkm70H8jGW4GEO9ymh9ngbXX338Rw3oddF+0BuHHil7v46jrdE6lIO1akNa/nJJ21VtjzHWgiS00gbR1R6y8zDVhoA/vPsqwh5EYBpARv2viUQjYJafGQwr/va1QkGSnYqX+eDOmscmDw3tqxMrqjFqUfu/nx3hKB/JkCCieQGfbi0jsSrZSFW/zLY57WwRdkMy1IgtUWb83VRk/wTz6oRzAL4E+cHMweiS24YFN0a4Q6wRFijv7RqW2XoVpmR+huvDPwE/1fMy7rGttIf4pUI6SlGb5lgVul36NR1Rzh3dPTjcNnw= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Instruction cache flush IPIs are sent only to CPUs in cpu_online_mask, so they will not target a CPU until it calls set_cpu_online() earlier in smp_callin(). As a result, if instruction memory is modified between the CPU coming out of reset and that point, then its instruction cache may contain stale data. Therefore, the instruction cache must be flushed after the set_cpu_online() synchronization point. Fixes: 08f051eda33b ("RISC-V: Flush I$ when making a dirty page executable") Signed-off-by: Samuel Holland --- Changes in v4: - New patch for v4 arch/riscv/kernel/smpboot.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/arch/riscv/kernel/smpboot.c b/arch/riscv/kernel/smpboot.c index d162bf339beb..48af5bd3ec30 100644 --- a/arch/riscv/kernel/smpboot.c +++ b/arch/riscv/kernel/smpboot.c @@ -26,7 +26,7 @@ #include #include -#include +#include #include #include #include @@ -257,9 +257,10 @@ asmlinkage __visible void smp_callin(void) riscv_user_isa_enable(); /* - * Remote TLB flushes are ignored while the CPU is offline, so emit - * a local TLB flush right now just in case. + * Remote cache and TLB flushes are ignored while the CPU is offline, + * so flush them both right now just in case. */ + local_flush_icache_all(); local_flush_tlb_all(); complete(&cpu_running); /* -- 2.42.0