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 92456C47DD9 for ; Wed, 27 Mar 2024 04:50:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 115A16B008A; Wed, 27 Mar 2024 00:50:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 029C56B0092; Wed, 27 Mar 2024 00:50:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E167B6B0093; Wed, 27 Mar 2024 00:50:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id D2D3A6B008A for ; Wed, 27 Mar 2024 00:50:42 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 9B44FA0A5C for ; Wed, 27 Mar 2024 04:50:42 +0000 (UTC) X-FDA: 81941593524.04.16419FB Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) by imf09.hostedemail.com (Postfix) with ESMTP id D61E6140018 for ; Wed, 27 Mar 2024 04:50:40 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=sifive.com header.s=google header.b=dVAjFjT8; dmarc=pass (policy=reject) header.from=sifive.com; spf=pass (imf09.hostedemail.com: domain of samuel.holland@sifive.com designates 209.85.210.171 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=1711515040; 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=shQKeKcQeNJUU/JQ5KWmpXdfmdrhkhe16Q2MMRo9oOg=; b=cN57ypTokklHcwuGZM3nsqCTnCpzAMzsVZlurkwlN0S/TyBmJvzkGfHJdF8qSZXU/awJQF qWR92r8m0hNqdC1mOy0vADwUWsGPlQ2eaHFeC3uQp9cs2+/502EZ+jLaJ1f+G89EKQzIR3 15FszjbcUZ8JpMZgLSJG2HQzLmOQXHs= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=sifive.com header.s=google header.b=dVAjFjT8; dmarc=pass (policy=reject) header.from=sifive.com; spf=pass (imf09.hostedemail.com: domain of samuel.holland@sifive.com designates 209.85.210.171 as permitted sender) smtp.mailfrom=samuel.holland@sifive.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711515040; a=rsa-sha256; cv=none; b=IuMfupNCE8AtSr094ozYfeK/k78BHw/m06iqlMwJfH6K8AqQw5/X2hA/gt+bwNGm0iG4Lx Hn1W/hZQrtw/FsH+ZhJUMlsCbRpLESPtF7HgEMuzGUYiezCwaK31Xi+VyEF+NCGJUtGirE 13OxmB865vt9M0WWakJZXc6g6cX/HMU= Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-6e6b729669bso5246791b3a.3 for ; Tue, 26 Mar 2024 21:50:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1711515039; x=1712119839; 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=shQKeKcQeNJUU/JQ5KWmpXdfmdrhkhe16Q2MMRo9oOg=; b=dVAjFjT8Wn/+r6HZtPotKViosMYqoXaz/smTPCWltbiKwqpDkM3V+TdqOHZw+xfWYR ernS4AXzgViJ1rAXRR7s/OUMqIkdOgGh86ZvHVP8gO+91UTptERXD5CMQkUtgldSpEP2 MWAwbt09IBTL9rTva8PGI2F3miQ6ZtdDKxlsNlVi0+cyhBlHAnWXYR5SfcxoZK/+nnvi Zf/z1jnQMF+jrlUkMg+Ix+bBjHHCuQeHEDBvm6VeC+w3VaRq1n8xwQFqCJanCQgX5dJf E+A6enzFzbEOla2g1WI61G5Joij4rS/xZjlmfPK8+0m3t04/K5JkPBM4Yq0AiG5t5LxD CoRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711515039; x=1712119839; 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=shQKeKcQeNJUU/JQ5KWmpXdfmdrhkhe16Q2MMRo9oOg=; b=gOTdaWl3e5cLzs1fPGLMUuUHZ2S1RcQW2o2GcQpzRa41PH8JfRTyZJsAovCHBVHYQv 5qzBL9As02RDvXIC6/DW1XF/7LnBS79BFZCn7DHZmHkavKD0Kk3wLbB/x9CjpMaterDA JEyFK7uK6PLVDmKWXpxvRz2bhuXtA8DbowdffdZuFTtn4vACT534txvOSSnrU9hvFqNP uSKPWxfTjLwa5q9Kqmy2Ipnrd7ILq4vAMptxPtC67qMP9x0IJTTf7LVM0TxQqlj84dQ6 0+rvsbiNIDnHJ3gmuTX4LuUVhQ8P2hTzGVJnzJXTsJgbCT3u0IbKV9FJF/4WFek3WcZX +tqw== X-Forwarded-Encrypted: i=1; AJvYcCUAZR5O4h3SewPXSn819XV26tg+pUMNtidNFA1rnaEFcyw11Lx9fzMmGTd4AiR79fG74r6HJRlAosOQ9I2X/bUDslY= X-Gm-Message-State: AOJu0YwM2vq2IolbtM3lNVT9+iGrmrGls+Ifs/+XB/YN35ASQVbL0l/A Vq/oYyJ++UiqyCm22O5Z1VL1vG2SsL5FRfGXK6Ut0szlmm4dJoIIVOEtF/WMe48= X-Google-Smtp-Source: AGHT+IHpHyQ5wkbbDg1/9QOIdZT7U8XEUGKwcMibXVBUL9WTi2GIa5kveh+VvtS/wwBFRvp4M1UHpQ== X-Received: by 2002:a05:6a21:164e:b0:1a3:4979:f25e with SMTP id no14-20020a056a21164e00b001a34979f25emr128528pzb.59.1711515039607; Tue, 26 Mar 2024 21:50:39 -0700 (PDT) Received: from sw06.internal.sifive.com ([4.53.31.132]) by smtp.gmail.com with ESMTPSA id e31-20020a63501f000000b005e4666261besm8351500pgb.50.2024.03.26.21.50.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Mar 2024 21:50:38 -0700 (PDT) From: Samuel Holland To: Palmer Dabbelt , linux-riscv@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Alexandre Ghiti , Jisheng Zhang , Yunhui Cui , Samuel Holland Subject: [PATCH v6 01/13] riscv: Flush the instruction cache during SMP bringup Date: Tue, 26 Mar 2024 21:49:42 -0700 Message-ID: <20240327045035.368512-2-samuel.holland@sifive.com> X-Mailer: git-send-email 2.43.1 In-Reply-To: <20240327045035.368512-1-samuel.holland@sifive.com> References: <20240327045035.368512-1-samuel.holland@sifive.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: D61E6140018 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 6hz4hys71gikzcjdda5ktfh5x1dkq6yk X-HE-Tag: 1711515040-768329 X-HE-Meta: U2FsdGVkX18VOmvGZCAptAVLTBxsPRaNTjGZ8SF0QCmFVUCtGriZmEmhx9+bXQ3z7F7HG/s9Y7rUtdGSAKHS91sBNZK1KNtsBY9pAjCV23YLmY+b1Ikbh8BB5OXdC9gSfhmvXSYnYUqcVhRIDuUa1hPrEc43zxbrpUwwX9C9vK2stkWL8aUh/f8/dtKiVYNTcL9OG1k77E/sqyemMfZU18iy088PCtpPuWyCwMLAlhZ+EdIjVNwcTVDN0A6SB+ZXIHGzRP16FxTkTSg2tg6DKSvFSCckx/Zt6O1JRxwwmbrCg6ijhAHg8iRvgISEO8qcLIc5437Dylgoz5q3DBQZj/GhSECSHauaYQU6D8j2Lq116lUSPwupn9QQs2m7sbpbzIejQMINNO5MiyGkBFiPfsnGPdTRhcTvGmYKdpLjmu8fTEwZGn89wtDexVnh5MjqUkERHF7sa07xxGJZXNXwW7RF4VqtSt+Y5alNs7NdBr6ukjdfWj/xHmbm7zcoimpYtCMmkv466QljDN8Y1fPjKe3MGn62HQ5aMt55ENs5shw4yv8y9CHtdJg+ceQ9SZZ2k/zIECnr2fveKnsfJIrDyXNAPiSvF6WvhJVhr34qWuoK+m/H574MULAHKfcPwq9OioTAKFGrkd7FbbGcV4Q4I61OIfod9qadv8MDT63GQ3sWEumexCRWOIvBU1AofJoURzTSA5OZy9ZUpQBgmumkPyWjf/NbcqT1ytwbhDdQQn6WH+wa/GaNOaRWJZdF8kvVpWBo9vXmqjqKGeqEPDKCno8P0XKyl3MhugWI8+ZmK+Ef/3z/pRjvwwRsgWvjVLD52QAc+ZD65glcGtSUwsfpYF9wRm10SCM+LP7r3l4NcL0nRX+eaKQKnZnmHMGZuHmQpZbd4P6H/8FVZhajfkxjJ1XeHW/OFAh8ljoG2ZW1xhByMPreO1OBdWdaH2cW4Z47peaPsPoVPS3a9UqXe/w 6ddvWF1P saIUdTK7W37my8RvksxVjN8hj1Tb48nmSKHruluA1PDTTqucO3c8uOLFFSHqBSwbZOxC1V5qZuwxLMT82WlJpEUaUFGuw0WlRPlm/c8TgDPYwLts= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000012, 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") Reviewed-by: Alexandre Ghiti Signed-off-by: Samuel Holland --- (no changes since v4) 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 d41090fc3203..4b3c50da48ba 100644 --- a/arch/riscv/kernel/smpboot.c +++ b/arch/riscv/kernel/smpboot.c @@ -26,7 +26,7 @@ #include #include -#include +#include #include #include #include @@ -234,9 +234,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.43.1