From mboxrd@z Thu Jan 1 00:00:00 1970 From: mark.rutland@arm.com (Mark Rutland) Date: Mon, 10 Apr 2017 11:29:39 +0100 Subject: [kernel-hardening] Re: [RFC v2][PATCH 04/11] x86: Implement __arch_rare_write_begin/unmap() In-Reply-To: <20170407144526.zxgvpnxt6n7twhqw@hirez.programming.kicks-ass.net> References: <1490811363-93944-5-git-send-email-keescook@chromium.org> <20170407144526.zxgvpnxt6n7twhqw@hirez.programming.kicks-ass.net> Message-ID: <20170410102938.GB13899@leverpostej> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, Apr 07, 2017 at 04:45:26PM +0200, Peter Zijlstra wrote: > On Fri, Apr 07, 2017 at 12:51:15PM +0200, Mathias Krause wrote: > > Why that? It allows fast and CPU local modifications of r/o memory. > > OTOH, an approach that needs to fiddle with page table entries > > requires global synchronization to keep the individual TLB states in > > sync. Hmm.. Not that fast, I'd say. > > The fixmaps used for kmap_atomic are per-cpu, no global sync required. That might be fine for x86, but for some architectures fixmap slots and kmap_atomic mappings happen to be visible to other CPUs even if they're not required to be. Using an mm solves that for all, though. Thanks, Mark.