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 A75DEC4345F for ; Tue, 16 Apr 2024 07:52:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2A90E6B008A; Tue, 16 Apr 2024 03:52:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 231856B008C; Tue, 16 Apr 2024 03:52:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0D26A6B0092; Tue, 16 Apr 2024 03:52:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id E33FE6B008A for ; Tue, 16 Apr 2024 03:52:55 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 67997409AB for ; Tue, 16 Apr 2024 07:52:55 +0000 (UTC) X-FDA: 82014628710.02.426F834 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf06.hostedemail.com (Postfix) with ESMTP id 32D02180004 for ; Tue, 16 Apr 2024 07:52:52 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="fU/cNEu5"; dmarc=none; spf=none (imf06.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1713253973; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=507ZBsLeuCe8QOYcleBeRL5NXt96hdJ7/5G0PziK1K0=; b=w+Aese8PXPmYNQ2ZB1YD/j3ZnWQ5DXfGRZ9Z2nt2yRTq29wgVotCAB5cCg2aBxI63aDk0Q lk6eMjQAlWsG4eUOeB6AXSDNhdGnQ65o5yW4djI179LDAxSSqIhISLjCAOTVcosl0lZOEU BJRwMl7ToCikF30lNyKOJ00QpomMAhc= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="fU/cNEu5"; dmarc=none; spf=none (imf06.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713253973; a=rsa-sha256; cv=none; b=wWrGJYXRQoLGs48d02H4eSEJ4Tqqc2U4KL3j8Ko1xfhGbAQEWCXLLvO8W2IMLB45H97Z/0 U9WrcthVy1Nui/T+PB2TbmIlKiEuePDsxLVotJvji56D6Z/EtjlA4OMgH1shUH+2/mJWov yo5X7UQ8mxS+2QcYXaKHpiOuJJgHqgE= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=507ZBsLeuCe8QOYcleBeRL5NXt96hdJ7/5G0PziK1K0=; b=fU/cNEu5qw/O2Klf8s6HCr+ThI AhpI1nEs4Up9XFmJBI03cktnXOkGdoRbOvIZzjK48ok45c2JILgNd4BIrGYsKyEjDF0eQQL+HYJwR Yiyrnny32/na/Ys3afDWWVnk61J34su4s2sCj0Ub01AHgZcx+Fsp5j+qrF1A8v0sYzXZMlCD5kjBk s3viP3O4TygKJJxdljC/ZTymqUoM44K9+R+bQ//RVwqZYO5nBn5merN0aN+obc8V8nFi/A7z6wGAX iEjE6w/enUoiPeoQuWrQTmG1HLtwkxvfU1NO54vIH5bCDXvS5cudA99gRVmIMYwS4kC9jIInm3J/Z dg+Vrz+Q==; Received: from j130084.upc-j.chello.nl ([24.132.130.84] helo=noisy.programming.kicks-ass.net) by casper.infradead.org with esmtpsa (Exim 4.97.1 #2 (Red Hat Linux)) id 1rwdcJ-0000000HZIl-1TGs; Tue, 16 Apr 2024 07:52:35 +0000 Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000) id 0630E30040C; Tue, 16 Apr 2024 09:52:35 +0200 (CEST) Date: Tue, 16 Apr 2024 09:52:34 +0200 From: Peter Zijlstra To: Mike Rapoport Cc: linux-kernel@vger.kernel.org, Andrew Morton , Andy Lutomirski , Arnd Bergmann , Catalin Marinas , Christoph Hellwig , Helge Deller , Lorenzo Stoakes , Luis Chamberlain , Mark Rutland , Masami Hiramatsu , Mathieu Desnoyers , Michael Ellerman , Palmer Dabbelt , Russell King , Song Liu , Steven Rostedt , Thomas Gleixner , Uladzislau Rezki , Will Deacon , bpf@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-modules@vger.kernel.org, linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-trace-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, x86@kernel.org Subject: Re: [RFC PATCH 6/7] execmem: add support for cache of large ROX pages Message-ID: <20240416075234.GA31647@noisy.programming.kicks-ass.net> References: <20240411160526.2093408-1-rppt@kernel.org> <20240411160526.2093408-7-rppt@kernel.org> <20240415104750.GJ40213@noisy.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 32D02180004 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 5umbbgoah1q9qc5ynd9moeihq53pndoy X-HE-Tag: 1713253972-52394 X-HE-Meta: U2FsdGVkX19up1/N3zzKVvy0VTzIu1oaD02/avtTqD8Gz9SRTUwl3uA1YLk3J/9TDs7ESQNXpFz/u/QbHPIk43inizj7wrFesYGwy09XU7M6VK2GZRNqUmOIvtEBiy5H/u6en/CAKVHzufRvPyMVoar823VOnFE4BEBpVs/rzMFTbdUKk4XebDOy+Y5bsjZSa/7fH5jAwKwzP+28oouMJlPoc3YUFPQ4hD4IP4AG1q+5ikG7HXmXLCnrXBAsEWgIiij89MR0gvjIJZY4Q8XErM0pWNx2MiVMlLFp2cixeTe/al2JF6ZUxhyuuye48Ygsz8klywt+URshrITbdqyIdApo4O6wa0VjN54dLNQbXs6wE4AJV5Xc6ujQDL6brFh0RLLasILa+BKuzOKwNlz9nDSml/8nLZFAmNE8Jbnn3ItCXW7EBGPGc2+ZCvnFhyA1KYY+3nuaABr6wzNIVE0PiR8MyYmGYUDIs6cBPckXQmAIMNdooFk7ShsrSt7d9pPbhn3evlbXg5dg9XRiWFDU5hJAKw2JVpRzkuKHAIM5t1PbuxvbhUreR1gv69+qfhHRYttta5hU2kuoHteDGvoy0b21RGYxrFXiUKQQnn+3Ydy9SWXgWfkyDqaQx9UtbRecZAL5hod1HJTQtdBkvKasjxkri6j4U5Lti578Hq20RwdSIyzUx49Oyfaufwj3tqBpoLVhIkM4TjDF9yVtCldxTzRZ16gsdtIIxnSWUiWinLRAhq3rwvWAJsEueL95qtNUIzwyvpC3+Cj6U8dx+ruS3azgl70MedYqKBp1TS51bMcvq25byeTVIlyhubkMd0msr3sNnyiSZ4P+RVu76Q3nhmLE7LLWFYcdIow+XbYDU4Hnr/RhcZXApVWfHI7SakyWzADtbPLN5A2k33bCLnQcKX2UJYukssaT8dfvIumazvuoh0DEyd6e++XUSCWcf1zFa638yr7XSlkFP0k1MFc NABA9LYV Mefv2EZCN2PoepZjzpMvOflHUnZjXxf7y0L2GWwQVpfnApupmkDmhv0UcY/DQ+eB21qADz5bJycNZV4a9GDBJ3zLaN0G8kUiIjN131pn+qODL3MRU2he5+wYIu9sbTWAiOBDDwq1hihUtASc= 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: List-Subscribe: List-Unsubscribe: On Mon, Apr 15, 2024 at 08:00:26PM +0300, Mike Rapoport wrote: > On Mon, Apr 15, 2024 at 12:47:50PM +0200, Peter Zijlstra wrote: > > On Thu, Apr 11, 2024 at 07:05:25PM +0300, Mike Rapoport wrote: > > > > > To populate the cache, a writable large page is allocated from vmalloc with > > > VM_ALLOW_HUGE_VMAP, filled with invalid instructions and then remapped as > > > ROX. > > > > > +static void execmem_invalidate(void *ptr, size_t size, bool writable) > > > +{ > > > + if (execmem_info->invalidate) > > > + execmem_info->invalidate(ptr, size, writable); > > > + else > > > + memset(ptr, 0, size); > > > +} > > > > +static void execmem_invalidate(void *ptr, size_t size, bool writeable) > > +{ > > + /* fill memory with INT3 instructions */ > > + if (writeable) > > + memset(ptr, 0xcc, size); > > + else > > + text_poke_set(ptr, 0xcc, size); > > +} > > > > Thing is, 0xcc (aka INT3_INSN_OPCODE) is not an invalid instruction. > > It raises #BP not #UD. > > Do you mean that _invalidate is a poor name choice or that it's necessary > to use an instruction that raises #UD? Poor naming, mostly. #BP handler will still scream bloody murder if the site is otherwise unclaimed. It just isn't an invalid instruction.