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 3C4CAE7717D for ; Wed, 11 Dec 2024 13:48:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C32C06B0096; Wed, 11 Dec 2024 08:48:16 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BE1CF6B0098; Wed, 11 Dec 2024 08:48:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AA99D6B0099; Wed, 11 Dec 2024 08:48:16 -0500 (EST) 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 896866B0096 for ; Wed, 11 Dec 2024 08:48:16 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 470351A0718 for ; Wed, 11 Dec 2024 13:48:16 +0000 (UTC) X-FDA: 82882807098.28.C444CBF Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by imf14.hostedemail.com (Postfix) with ESMTP id 06166100016 for ; Wed, 11 Dec 2024 13:47:48 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b="ZGQcZ/uG"; dkim=pass header.d=linutronix.de header.s=2020e header.b="uGWJ1/QJ"; spf=pass (imf14.hostedemail.com: domain of bigeasy@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=bigeasy@linutronix.de; dmarc=pass (policy=none) header.from=linutronix.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733924870; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=FcEdyf32adcRhq16rtWJRAyApwazxa43Y8h9mC5uJpw=; b=RJZbLZkkmsR75pJXefYEsR4Zqv/c+XdthbnvZ3+btWp4/XPDkKNJfBLwKu3IQXzCmU/1D5 +sND+e5QJOeOK4Qwkc04vf5pXWPEV5CIoklTTfd9sf7cx8DHuJWVwSR7iu7szzTy9fp9K6 x6ZwzxYXVuFLMNHSwfKbxHY+WQtVOyU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733924870; a=rsa-sha256; cv=none; b=3WOMWP0xyoa1QgwAZReagpMPb+srHUYpk50tyYYSXqJGLp0kdiuj/G2EyZoxl2Y3NLrqNa B1v0k/hsAjOYHQ8xRfKNBXr6aQi4F0ikR5Zh2l2SllpKpiGWz17ZLfbOdm7i0hfRjcOOx7 pEYpk+UsiKVt9i34+5FcwTI+we0FLbk= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b="ZGQcZ/uG"; dkim=pass header.d=linutronix.de header.s=2020e header.b="uGWJ1/QJ"; spf=pass (imf14.hostedemail.com: domain of bigeasy@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=bigeasy@linutronix.de; dmarc=pass (policy=none) header.from=linutronix.de Date: Wed, 11 Dec 2024 14:48:11 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1733924892; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FcEdyf32adcRhq16rtWJRAyApwazxa43Y8h9mC5uJpw=; b=ZGQcZ/uGgidddEs3TRPAx70QGE3OqHBArWQm7LVbRXrH5zIpemuLwluP9BPgjfarNJE6VR Gzxooaltlx1/u2IwRGJO52dzZGQwj0Ms2OoAuQZeeX6AsBBjyW4/AgU4NjBafj+cf7S7MY 7Kh7/ZXdSTtRZ9uwX2i5YMsGj5j1JibsBKKZARQOkXdYifAlL+gcPRAUkrCwGkAguD3FgN ANx019KPS3XZArgZhr3v/7ngtE8B9Cc7QwNjjcZvBmIPyHDw2avGieG0NAQLcUKLk0Uysk 7R0CR9ju70YGRTU51uj7HfXwOINQR09eq8hBMjZUhn6CWSmFpL50yoneP/aARw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1733924892; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FcEdyf32adcRhq16rtWJRAyApwazxa43Y8h9mC5uJpw=; b=uGWJ1/QJNPCk1yC0pohHZHR/KTLJ5f/gqbruvx+vLUe+FfiAu8MBPugFmO1OS8sANofSdq tSQ1JxBa0i/sKKAA== From: Sebastian Andrzej Siewior To: Arnd Bergmann Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Arnd Bergmann , linux-mm@kvack.org, linux-rt-devel@lists.linux.dev, Ard Biesheuvel , Clark Williams , Jason Baron , Josh Poimboeuf , Linus Walleij , Mark Rutland , Matthew Wilcox , Peter Zijlstra , Russell King , Steven Rostedt Subject: Re: [PATCH 2/4] ARM: Disable HIGHPTE on PREEMPT_RT kernels Message-ID: <20241211134811.wM_UADhQ@linutronix.de> References: <20241210160556.2341497-1-arnd@kernel.org> <20241210160556.2341497-3-arnd@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20241210160556.2341497-3-arnd@kernel.org> X-Rspamd-Queue-Id: 06166100016 X-Rspam-User: X-Rspamd-Server: rspam07 X-Stat-Signature: kcf1jorbnj4crnajqi3okthzwzo78tfj X-HE-Tag: 1733924868-248722 X-HE-Meta: U2FsdGVkX1/FGPWyg1cAnbwrjcAieAXUcURQBhS8EkxMxY/mnMAug+S4n347oCMGBAS9OJhnQYSBElAYzzGIyjzWkFX4hleiCuK9xhLqskv1ePU+aKJ7FDrpi25+Z3Z+7buOQ+foraLjyjsRcNWjB+My45SjTrSVo5mmcNrP5I0Efsdt1HvBjC7eDNxYxzpx1z8ptbKProJ8ZOA0VThxMWRhOQuORAAxwfV9CIPVdeT30gqr1b3qYvczw1MwxdgwGwFC6jvQdH232EQOvh38JNnfw3SOmHItmZocWoEuW7ndGe7pYMUiV69QVgfF/NZ9zN6mAYrhYKoh3Sw19CoOVJ7prvXicxpR0Q4KQRnKnPPvpvc0idR3Pp4pUNbNUlXsnUHTW4sYBwij17ZWAnfXyrcQhNI9ahP4UGX2xB00zZQqZW8jrPRqcHuulygwbQp7YbUV5DlZjqDswcbhnPcHPtrNTxiEDfIrefgSYPbA5wJzwcOPC5th5xIrUkRYjdFnNUsBuukDJTURqapRdH9w/ZJ+RRdSJf9yp2XvihfCu3ht/MRgFQeGzOfFLCvRhLPJjjWAJAl0QZOBQ5MLnCQoOLlYFfks5GX0B8juaiUesLwnsFmT+Jd7+0oavmkNFtiFN+x7ei5UGovcB85aSSozjCFXtkoPsNGxBre8O1ngGCM0+mqRGe80KptbckWjtnBOo7BRbISRXq1ZBMUVIwVTULEeWUPPpAImkx4MH1J/3idgBXgjyFKle2RWB878Gu4O0vKUwFPxHSiY8cfwuhU91jzJu2792bXKIDwbdmlgkYyGzfea7r6bBdcr4qMuDz0brxzCt52cV1KI14EKyN/SzfJ3owBR3DbT9bAl5HDtMukZ8yrmcDlN/LTX0WW09ll4R2UBjk2bxrEwz8K0UWLq5gtgzvrH9jZgiI2Isig2i65ue1Vg3OO0+BXiWFK5RNceFYkUUoFfjCiKgakA9YL v1uRqM3m TepSU4mwsewFly2LjV8CdshfakW8L65Bz0vNisyppJoebCwqg+loEPEysSX0duHmA7fIKeIHevaenCuVR6Cw/Kqyu41EVH0QVYYianIGP0NWjgx9/0W4zErVdnteJDIMwAzVRY6W/oU125jNGI+7UbYjEeSAg+EcJRbE1vCZvYZInYpQnwVUOdLaCbjg+AFaY6A9GzgaDGt07CMw= 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 2024-12-10 17:05:54 [+0100], Arnd Bergmann wrote: > From: Sebastian Andrzej Siewior >=20 > gup_pgd_range() is invoked with disabled interrupts and invokes > __kmap_local_page_prot() via pte_offset_map(), gup_p4d_range(). s@gup_pgd_range@gup_fast_pgd_range@ s@gup_p4d_range@gup_fast_p4d_range@ The functions got renamed=E2=80=A6 > With HIGHPTE enabled, __kmap_local_page_prot() invokes kmap_high_get() > which uses a spinlock_t via lock_kmap_any(). This leads to an > sleeping-while-atomic error on PREEMPT_RT because spinlock_t becomes a > sleeping lock and must not be acquired in atomic context. >=20 > The loop in map_new_virtual() uses wait_queue_head_t for wake up which > also is using a spinlock_t. >=20 > Since HIGHPTE is rarely needed at all, turn it off for PREEMPT_RT > to allow the use of get_user_pages_fast(). >=20 > [arnd: rework patch to turn off HIGHPTE instead of HAVE_PAST_GUP] > Signed-off-by: Sebastian Andrzej Siewior This version works, too. Thanks. > --- > There is an open question about whether HIGHPTE is still needed > at all, given how rare 32-bit machines with more than 4GB > are on any architecture. If we instead decide to remove HIGHPTE > altogether, this patch is no longer needed. HIGHPTE isn't much about 4GiB+ but about the page-table which is offloaded to HIGHMEM. Maybe it is more likely to be needed with 4GiB+ of memory. No idea. X86 had support for up to 64GiB of memory and is the only architecture supporting HIGHPTE :) I guess if you have boxes with 4GiB+ and can proof that the performance improves without HIGHPTE (since you don't have to map the page table). The question is then how much of low mem has to be used instead and when does it start to hurt. Sebastian