Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified)) by mollari.NetBSD.org (Postfix) with ESMTPS id 1637F1A9239 for ; Fri, 14 Aug 2020 16:18:39 +0000 (UTC) Received: by mail.netbsd.org (Postfix, from userid 605) id 8C9AA84E58; Fri, 14 Aug 2020 16:18:38 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id 1190F84E57 for ; Fri, 14 Aug 2020 16:18:38 +0000 (UTC) X-Virus-Scanned: amavisd-new at netbsd.org Received: from mail.netbsd.org ([IPv6:::1]) by localhost (mail.netbsd.org [IPv6:::1]) (amavisd-new, port 10025) with ESMTP id VqzGEMclttSB for ; Fri, 14 Aug 2020 16:18:37 +0000 (UTC) Received: from cvs.NetBSD.org (ivanova.netbsd.org [199.233.217.197]) by mail.netbsd.org (Postfix) with ESMTP id 5F54084CF7 for ; Fri, 14 Aug 2020 16:18:37 +0000 (UTC) Received: by cvs.NetBSD.org (Postfix, from userid 500) id 585CDFB28; Fri, 14 Aug 2020 16:18:37 +0000 (UTC) Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" MIME-Version: 1.0 Date: Fri, 14 Aug 2020 16:18:37 +0000 From: "Nick Hudson" Subject: CVS commit: src/sys/arch To: source-changes@NetBSD.org X-Mailer: log_accum Message-Id: <20200814161837.585CDFB28@cvs.NetBSD.org> Sender: source-changes-owner@NetBSD.org List-Id: source-changes.NetBSD.org Precedence: bulk Reply-To: source-changes-d@NetBSD.org Mail-Reply-To: "Nick Hudson" Mail-Followup-To: source-changes-d@NetBSD.org List-Unsubscribe: Module Name: src Committed By: skrll Date: Fri Aug 14 16:18:37 UTC 2020 Modified Files: src/sys/arch/arm/arm: arm_machdep.c src/sys/arch/arm/arm32: cpuswitch.S db_machdep.c genassym.cf src/sys/arch/arm/include: cpu.h locore.h proc.h src/sys/arch/arm/include/arm32: frame.h src/sys/arch/evbarm/conf: std.generic Log Message: Mirror the changes to aarch64 and - Switch to TPIDRPRW_IS_CURLWP, because curlwp is accessed much more often by MI code. It also makes curlwp preemption safe, - Make ASTs operate per-LWP rather than per-CPU, otherwise sometimes LWPs can see spurious ASTs (which doesn't cause a problem, it just means some time may be wasted). - Make sure ASTs are always set on the same CPU as the target LWP, and delivered via IPI if posted from a remote CPU so that they are resolved quickly. - Add some cache line padding to struct cpu_info. - Add a memory barrier in a couple of places where ci_curlwp is set. This is needed whenever an LWP that is resuming on the CPU could hold an adaptive mutex. The barrier needs to drain the CPU's store buffer, so that the update to ci_curlwp becomes globally visible before the LWP can resume and call mutex_exit(). To generate a diff of this commit: cvs rdiff -u -r1.63 -r1.64 src/sys/arch/arm/arm/arm_machdep.c cvs rdiff -u -r1.101 -r1.102 src/sys/arch/arm/arm32/cpuswitch.S cvs rdiff -u -r1.34 -r1.35 src/sys/arch/arm/arm32/db_machdep.c cvs rdiff -u -r1.93 -r1.94 src/sys/arch/arm/arm32/genassym.cf cvs rdiff -u -r1.111 -r1.112 src/sys/arch/arm/include/cpu.h cvs rdiff -u -r1.32 -r1.33 src/sys/arch/arm/include/locore.h cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/include/proc.h cvs rdiff -u -r1.47 -r1.48 src/sys/arch/arm/include/arm32/frame.h cvs rdiff -u -r1.7 -r1.8 src/sys/arch/evbarm/conf/std.generic Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.