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 00864C3ABC9 for ; Fri, 16 May 2025 15:34:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6D8F56B01A2; Fri, 16 May 2025 11:34:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 63B2E6B01A4; Fri, 16 May 2025 11:34:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 48E3E6B01A5; Fri, 16 May 2025 11:34:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 178C66B01A2 for ; Fri, 16 May 2025 11:34:31 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id C2A76C0A2F for ; Fri, 16 May 2025 15:34:32 +0000 (UTC) X-FDA: 83449167984.13.B8781E1 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) by imf01.hostedemail.com (Postfix) with ESMTP id C3FD14000A for ; Fri, 16 May 2025 15:34:30 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=dpEoRX9O; spf=pass (imf01.hostedemail.com: domain of debug@rivosinc.com designates 209.85.214.170 as permitted sender) smtp.mailfrom=debug@rivosinc.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747409670; 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=VTPOMqT5C2feU2knCk6fA/APYFa11AZmawpB2cqaoDc=; b=FCeG+aNUzy+v5CRxVQ5cTAb6sQQVqwgrNTvNbMiqyayIyxYTXg7NOPtkhHTDSbwvcPww2a dNSlD30PAPKnZUjDNbmvH9srtvm7Tm4TQ+E5mT1TIe5dH7dQ8yW/te7TEpdMUEKugNVsxQ m3iYYyp8C2r41LOP4ve0bBJxhPRTR5o= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=dpEoRX9O; spf=pass (imf01.hostedemail.com: domain of debug@rivosinc.com designates 209.85.214.170 as permitted sender) smtp.mailfrom=debug@rivosinc.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747409670; a=rsa-sha256; cv=none; b=8Thhw/WMVL67dTwCKi/AB6RMwPYrflXxntR/nBe0+euj/bq21nNCAlIo0zBkNltPOM8ej5 tSNH+p2dTM5CxavO2GmCSUrGkt6iEKBOP7Xn5geq54dMEUdkvGN74Bc7PYZoQlaawQJymM lOXVKN0dhqcoWBUTDjBXUJkhU1HP2pY= Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-22fa47d6578so20899395ad.2 for ; Fri, 16 May 2025 08:34:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1747409669; x=1748014469; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=VTPOMqT5C2feU2knCk6fA/APYFa11AZmawpB2cqaoDc=; b=dpEoRX9OC4eZF5IpXO3amYl9IVLtRzhhe/F5rBamWLY1i44haRzgW4zEBuLt2/Tl6Z S4bInqF38wAXIS4dV15DeMEef89enm0kwlh1dfB0hoPBDjAsEogRQq5zrcyCX0kj8dnm yWyWaeqv8VCFo2p3LAeRTr0g/5KW1xbVGCudFRnf95Q0xhRqF3rjdP5aVvljRN4EOpXX hCC96A3Op+p1897WKi8ptyFJTwnsxmhpu9v2jwFlCc4Xz+8Xqapp9kvjJLEA5oGzYTve 6Sxy0hGAmsnGKCQnxtj16U9mTAdiZ8Am4rveXtVJ4V5LT6ueSo4OGGELO8YIQvqQRiHM H0tA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747409669; x=1748014469; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VTPOMqT5C2feU2knCk6fA/APYFa11AZmawpB2cqaoDc=; b=bm22fBNVUAzhnzvBydkwLcrjnPvwvnLIdKWiibealZj1REoJj8pvah37Sonqkdq/Ki JINLcIoTl1/7By3pd2tNgQktAeeh2pQGbxYWAZZV9JzDdssYwA2hECg67YhAVZPJBcUh pm8jdoRRDjrALtGyQ6H907crzaFc61cYeCv7epf6rzMk+OkVhra1xeh0nqnagw/lpFtO H5Kzw2XPRSRUL9zeJzdM7C6DT7Ol7gfmnT7O+qupoKVd3pP+TcOMIk3XsHm6D1lnqCLu h94xe+qMStncotMy5ChHNXg4fuuH1snTDmeiDRuypZOo0wnn52gTVN2+UerIH++os9NX Wz3Q== X-Forwarded-Encrypted: i=1; AJvYcCXS2L00Qi+KqPbCmC2+JH5Oq6DzlSsEeZL15m5UY9+Q44vtxl2WJc7M7KmlLXtog35mOeF3ftouKQ==@kvack.org X-Gm-Message-State: AOJu0Yz6m0d/SzoLDtXXtaaI2Y36pNPmYyfBA4LfibX7dXAg0vi20lPg wt4JeoOkLL7Pl4PKALeL/JG94S8FVtefTIqHGOWFJ+5KnmdSyw8iojnJ0RIhd3P49GU= X-Gm-Gg: ASbGncuLnxfeMw06eYoVF1OMrPLkDQ2pfoKyZiu0DYh7zaQhqWXrvGt+y5ruKDKkYsL EIRTgJw0MH5S2lubi5OvNSczG94HIiyw7886ZC22enAbvZ3vAlhtqPCWSFpccK2Ot/oDwbTMuvl 93HCoaeBZFsQKiWS1Yky7jlMcMz5erfYqUXMSMvNYGu3/1Yfrp5w614x9V0jhrNxUc4tWT+3Gtu ZWdDpn+/9pku31gWKZPWbwH1yP+Jr1bAmU32Y6iLqCLUxz7FQbKGjW2EoiaRXETC8OKx8EmHS1+ tpDt8yn5imCCi93rKrIE5aoIyNLhUSJtgTplkIGxIIp3DzQoqbtyCFsYkiBgGA== X-Google-Smtp-Source: AGHT+IFZckSqO5+1mOJ5q3W7tqhvvuTMvoIraIWCKDFfhzREKyJxJcIAzKyffAUquxEcLFZdJvL5nQ== X-Received: by 2002:a17:902:f60a:b0:22e:17ee:aa69 with SMTP id d9443c01a7336-231d45740d0mr41158275ad.50.1747409669319; Fri, 16 May 2025 08:34:29 -0700 (PDT) Received: from debug.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-231d4ac944esm15870145ad.49.2025.05.16.08.34.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 May 2025 08:34:28 -0700 (PDT) Date: Fri, 16 May 2025 08:34:25 -0700 From: Deepak Gupta To: Radim =?utf-8?B?S3LEjW3DocWZ?= Cc: Alexandre Ghiti , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Andrew Morton , "Liam R. Howlett" , Vlastimil Babka , Lorenzo Stoakes , Paul Walmsley , Palmer Dabbelt , Albert Ou , Conor Dooley , Rob Herring , Krzysztof Kozlowski , Arnd Bergmann , Christian Brauner , Peter Zijlstra , Oleg Nesterov , Eric Biederman , Kees Cook , Jonathan Corbet , Shuah Khan , Jann Horn , Conor Dooley , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?iso-8859-1?Q?Bj=F6rn?= Roy Baron , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-arch@vger.kernel.org, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, alistair.francis@wdc.com, richard.henderson@linaro.org, jim.shu@sifive.com, andybnac@gmail.com, kito.cheng@sifive.com, charlie@rivosinc.com, atishp@rivosinc.com, evan@rivosinc.com, cleger@rivosinc.com, alexghiti@rivosinc.com, samitolvanen@google.com, broonie@kernel.org, rick.p.edgecombe@intel.com, rust-for-linux@vger.kernel.org, Zong Li , linux-riscv Subject: Re: [PATCH v15 05/27] riscv: usercfi state for task and save/restore of CSR_SSP on trap entry/exit Message-ID: References: <20250502-v5_user_cfi_series-v15-0-914966471885@rivosinc.com> <20250502-v5_user_cfi_series-v15-5-914966471885@rivosinc.com> <122fc6cd-2e21-4fca-979d-bcf558107b81@ghiti.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Stat-Signature: bs1ayny5cc6iwc8xsuyczdgu55rqd9xk X-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: C3FD14000A X-HE-Tag: 1747409670-85981 X-HE-Meta: U2FsdGVkX1+HHXgay02FMiOHykOGipV9ZZtmxroCjVJasoywe1gtr2UYXrTqvjyOXtpR5soXbwWBtHZM5p1LbzCUBPGS9AEIIis0gVAvGjlSODRQ5PjVE2hL2PneSg8bCZ3b5CfYKv2bjgwTGncnQnYxWHcplXM/pvd3lM5FADH+UXormnyB7mkiznWNN3rdB9ZRKb4naETbTBBag2KhW5yXksX4mr09wENFPfrB/r5evT9RqjZcvqRDbJaYeyYojyI4rSVEATXCwAAtKzFzbgpE2SfGEzrZroS3K3eRuZHT6Xg3wzWpvPQKB4Wwt/3XNyrQ2PyAjnw4BQ5YBExMugF8jKMMbxTgu63YT2lXX5q6N/qv8fzVyiiqY7luZTGJGYeDgWchVk5GFmBG89CJKFWh8yofP1T/gOCBL7y/4Au5Cf4t4N+ApJUmWbAm28nZrZuc/iE0jUzCLfURPw+Z+qUW3l9BfZhixcy2UBqDBiGOD/AxD3rT6FH3Jr/FBletMyDzbCxz/jfBUoKqpkc7pceVbMIazu9jDDqgi2vq/W9NSkMNVvlVtEUjmDnEt1R2lrKw2TD0Q8ktQLvS0ie4G0K5b0SG65DE6G5xNZGLKCJbh9IL8bhJJO8PLXwvrCvMPK96Rok4MB04kerDWeGN7u00NI++I5tsT4zvHfmfa+6VCqwp7HzcOoVUbzPrcW/NtRGniJpeC1ObiXifkvLejlstCxFPrXZWRTb6WAs97ag1Pj/5cNOO+AmKRI0GvbwGIa5OLJApJmgk64LyUzRvDEr4kHpXoc0Ca255UDQKV9Z0CiFeSeFpVh9Vh0IstjncjA1fZqcZuyQ4Agt6vqSQMBG3k5vs5pL22XauyqiHxntZqKqPerjbY+lilJBjMVeY8mDCBU3zfwFU9ZghlhnFAyw345X+5QKEYz7lwYwt1OEwTJDoQUJ+vowojkCXlUz1FEMHPpmCbbkZ7zU/Ebd jSBOongS TmCHnbY3/grHgWvqYUu+ZB0PoBVABAjuiQp1kESa1Lp0Y1zV0MZZHtJQamIZKOrooSf4YyD043mxM1fj84i3hdyZY+OpnUPJYS/xCx2ll+DqyWqJJa+sU6Niv/M8IPzjd+Dd32+bxkPIVNlGb2DESSgUy6Ah0TndR/mjx2Os9Nb1hPlZ9EhYob+XMGbOzuyOwZymgKhG4sFVO6wCahj8yDORd7YA4jz99pb2yrybOHFo8D83+44h9Gtc50ARtUoozq1mSliy1G09ApnxgXmHUj7OaVlFq8PX1FF9SrX9IDwDI110dHqwvrzCrjlXmsAu5Xg4ZOU3Yv9edx/AYFDRJFbRKaZj5rO/AVfWCoukMmjssy3hWXfK+qvS5HF6btIaDtKCeH0NfNaUn5IcvM5lQFwORsE00Bt+4a0B05R8/aLhQdtGLouU8CAGTWA/VH/sjohMZi4VLkDKV175ht0pdt0nRIZZHH1hQydgliQKLvEkqL5l78INGjenpo4orYMfuuDQWPapSeeM6faaSixidD24wcGFk7rqKG1WkWHMwaw9J0rlqr5YV5ENa42ZJvV2RiNEd 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 Thu, May 15, 2025 at 10:48:35AM +0200, Radim Krčmář wrote: >2025-05-15T09:28:25+02:00, Alexandre Ghiti : >> On 06/05/2025 12:10, Radim Krčmář wrote: >>> 2025-05-02T16:30:36-07:00, Deepak Gupta : >>>> diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S >>>> @@ -91,6 +91,32 @@ >>>> +.macro restore_userssp tmp >>>> + ALTERNATIVE("nops(2)", >>>> + __stringify( \ >>>> + REG_L \tmp, TASK_TI_USER_SSP(tp); \ >>>> + csrw CSR_SSP, \tmp), >>>> + 0, >>>> + RISCV_ISA_EXT_ZICFISS, >>>> + CONFIG_RISCV_USER_CFI) >>>> +.endm >>> Do we need to emit the nops when CONFIG_RISCV_USER_CFI isn't selected? >>> >>> (Why not put #ifdef CONFIG_RISCV_USER_CFI around the ALTERNATIVES?) >> >> The alternatives are used to create a generic kernel that contains the >> code for a large number of extensions and only enable it at runtime >> depending on the platform capabilities. This way distros can ship a >> single kernel that works on all platforms. > >Yup, and if a kernel is compiled without CONFIG_RISCV_USER_CFI, the nops >will only enlarge the binary and potentially slow down execution. >In other words, why we don't do something like this > > (!CONFIG_RISCV_USER_CFI ? "" : > (RISCV_ISA_EXT_ZICFISS ? __stringify(...) : "nops(x)")) > >instead of the current > > (CONFIG_RISCV_USER_CFI && > RISCV_ISA_EXT_ZICFISS ? __stringify(...) : "nops(x)") > >It could be a new preprocessor macro in case we wanted to make it nice, >but it's probably not a common case, so an ifdef could work as well. > >Do we just generally not care about such minor optimizations? On its own just for this series, I am not sure if I would call it even a minor optimization. But sure, it may (or may not) have noticeable effect if someone were to go around and muck with ALTERNATIVES macro and emit `old_c` only if config were selected. That should be a patch set on its own with data providing benefits from it. > >(If we wanted to go an extra mile, we could also keep the nops when both > CONFIG_RISCV_USER_CFI and RISCV_ISA_EXT_ZICFISS are present, but > command line riscv_nousercfi disabled backward cfi.) > >Thanks.