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 E8205C35FFF for ; Fri, 21 Mar 2025 07:23:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9D841280002; Fri, 21 Mar 2025 03:23:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9604E280001; Fri, 21 Mar 2025 03:23:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7DBBF280002; Fri, 21 Mar 2025 03:23:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 61F83280001 for ; Fri, 21 Mar 2025 03:23:00 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 76046AD32A for ; Fri, 21 Mar 2025 07:23:01 +0000 (UTC) X-FDA: 83244716562.07.EFC0CDD Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) by imf08.hostedemail.com (Postfix) with ESMTP id 5A869160013 for ; Fri, 21 Mar 2025 07:22:59 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=ventanamicro.com header.s=google header.b=Kn81A4Kt; spf=pass (imf08.hostedemail.com: domain of rkrcmar@ventanamicro.com designates 209.85.128.48 as permitted sender) smtp.mailfrom=rkrcmar@ventanamicro.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742541779; 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=/25ortMfNWyDWu+kRgDZEazYd+Unr6LrL65OHsKgfr8=; b=c3DOUDt6F8ITb7jAoDHZ26xk7V1F6nSwEJPQ76yYLFzrpPP2xhAIPOccZbBdadOuuO4zVJ 6M+hn6bY2qALxEdxtBWM7NwYfzYXgD4VuJzKsPTSwzBTj1JBiyoi/SUwipRipf9WsinNP4 w3MGkqBwWz0EpGw+WRvMnLksFnCfq3M= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=ventanamicro.com header.s=google header.b=Kn81A4Kt; spf=pass (imf08.hostedemail.com: domain of rkrcmar@ventanamicro.com designates 209.85.128.48 as permitted sender) smtp.mailfrom=rkrcmar@ventanamicro.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742541779; a=rsa-sha256; cv=none; b=nRyDSx8/0xMZyRuB3ZY72hGkEm4a+MfoGn4qMCdhn/poY2cAkzaIznOcZbMJrGdUT2jYjJ tbJQKjHOC1UaQyjlaRqnjiRxLe14suWBNJoDNnCs/YvkKtYDp4etXF3fS0KAf66XuEZBKu uMoFCIWkZpdrYB167ESXB2350RSFQjQ= Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-43935d1321aso2133105e9.1 for ; Fri, 21 Mar 2025 00:22:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1742541778; x=1743146578; darn=kvack.org; h=in-reply-to:references:from:to:cc:subject:message-id:date :content-transfer-encoding:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=/25ortMfNWyDWu+kRgDZEazYd+Unr6LrL65OHsKgfr8=; b=Kn81A4KtkCZh0Li4MLmOqhvpmIzsA7mJ5exQz01dW74C7Q2Gu+qoOt3nbWWD6LIQ9t Y5DsIrSP6GW+F/OiR7XWp80nN6+17aA0vWnAwqRraIG0t450Xilz6g2sbK/xgK+a9oL3 dEnyJnYyARtWU9fKw6YVuZi36ufNVa0JukejSDliYpwyBSccDObz5bJPDr0znftCRjo/ 4rt7AWW2M7M0j0b6IPCt4xcwsKKWCxKCu8Cw8iYtoFQ0ctSTmtGuql74/9/9j5UBfWnO 6ElG4/r6m+cUM50KziLUXwdDozgMz8p/JbX0j1kzGw9MJM6Zg0iDevigjBXyyVRzAWKP BsEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742541778; x=1743146578; h=in-reply-to:references:from:to:cc:subject:message-id:date :content-transfer-encoding:mime-version:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=/25ortMfNWyDWu+kRgDZEazYd+Unr6LrL65OHsKgfr8=; b=od9efrqIFJ007h5Du8Fj2eNyH+iIODD5AXdHSXAFhsBpw6xEcWgJjnTzPbrgz77D+z Kyf3n4hIJEy4iJgDKR3dCjazLGUnDsME2Wo+NOT0+lEKtw/3SAbSLpQK27xaen5WX0mQ mWZttPK2qND4h7/lW6W93Qb9VulKANvsyagxWQs2oP7wRxl3gJK2lpFKdTo0sTZ2iozH ppBg7EVLhs+cKRxmHmsre1EILX0uLYN3zRKXnkMtZV4OwjgjFzdR/m3VkWmjiH27QnF5 Sew0qv8Et9eT+u7M+v6k5xsyXFulPdwp7xT3jhm9cYBHoFLCU78hU92Q40rSA+kGWxDp +OQg== X-Forwarded-Encrypted: i=1; AJvYcCX/oQsloqAq2KYGgOAAT2XnpWfnyF5bxkckK/s/b1G71TF/sttcj1EtqBJo++ON1voxT35uM944Zw==@kvack.org X-Gm-Message-State: AOJu0YyuS+vmI0pTIGyVwiGml+1GDjDb3Sq88I2vdFsldtEEd9BcAtd/ MnADAmNbhd9RUTP0fMIIciXGYcf/WpqrMkICF8JFb6O0KVb5VA1BwIG121DXM+0= X-Gm-Gg: ASbGncvJXolW1isZUbQ8RTJDDR4KMCQnTjL4gqjwOWDe9ygM37XNZ0S8pl4Cg/p1qin FIvSd/l9VNR0UUSo3B0iaWSoGrtqO51CgstrGIq7AFaBA8FFP1S42Lw0Fd3YCFNKqlCDZ5VoFZ8 mrFDQ4bytgq7iO+Nx6mWpl7B+1Xjva4EkNjNzdndkjTY5EXS8pFn9hAzlEvRK9VvXfnanCuwnqZ aGWP29otYhSkRypjetzCSQqnCh206mWgnZd36Oz4jIqOM/EtemMvSKphJkQYWVoaHeb1AHWcwUS 6jXc+j36X/K87BGokRP30NordgpP5Jigw5kQjx6mdS5V3fv9pv2lws7fFoiSCHaxRg+YqB9M0dJ XZV2l X-Google-Smtp-Source: AGHT+IFU7wrxqVXUGlM5v1RoJxyo0mt50QhSrJ/ZcnqbElE1lD78gF7+vCkNQEgx0IT1Onq7RRwDeQ== X-Received: by 2002:a05:600c:1c1c:b0:439:9c0e:36e6 with SMTP id 5b1f17b1804b1-43d50a3b5ccmr5385925e9.3.1742541777651; Fri, 21 Mar 2025 00:22:57 -0700 (PDT) Received: from localhost (ip-89-103-73-235.bb.vodafone.cz. [89.103.73.235]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d43f43cbasm68963045e9.9.2025.03.21.00.22.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 00:22:57 -0700 (PDT) Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Fri, 21 Mar 2025 08:22:56 +0100 Message-Id: Subject: Re: [PATCH v12 19/28] riscv/ptrace: riscv cfi status and state via ptrace and in core files Cc: "Thomas Gleixner" , "Ingo Molnar" , "Borislav Petkov" , "Dave Hansen" , , "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" , , , , , , , , , , , , , , , , , , , , , , "linux-riscv" To: "Deepak Gupta" From: =?utf-8?q?Radim_Kr=C4=8Dm=C3=A1=C5=99?= References: <20250314-v5_user_cfi_series-v12-0-e51202b53138@rivosinc.com> <20250314-v5_user_cfi_series-v12-19-e51202b53138@rivosinc.com> In-Reply-To: X-Rspamd-Queue-Id: 5A869160013 X-Stat-Signature: prtd6koodn9chza5hut8gmmriwtac5zi X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1742541779-772156 X-HE-Meta: U2FsdGVkX1/nSA3V2rDtVM6k+6QFjlQ2GwbUgk1DWkXdGoJh/gJyS7E8ww7fh7hTjjUgdX9gwOjVp/TyeaW5rKkYN9/OslSgzn9Ym9Z80y08l/bHXdJlm/okRRZD5tJoLGgZoTC1fQ3BrUCEVI/M6Heuo2Wko2O+ostQIEL9YXAoyekSbDICQX1sO9jGC/OPiYO7LPet9NdQjxetEoI1BgJGqO8SVA8/FDZkF3z4jY8mrrapLv2DngVhrTPT134Dm0XKx39EbFUOTcAz/lDdxgW9YP+8ukgnkixFXVl+Mu0be7blCH0iBa5YhfGnYqw2//Wk7qlymmCmRYdH5TPnO0Hrja1Gy8SzM3DJm1G0FZGsoLL/Ve2wi84DFSIyrZ9qIRA2INWvCWZYe5+oK2DSEFKkDjX4yXwpDsTbqL3IETzjEExFIRmJp1IcgvtKXtfvM4sNWFlc11REoroQzCgpT03U4gJJggrVwp8CL9G6XhBVkn8W+wo+nGx1LOlAz2hhbeeBpnSWCtvsizwAAB0ff4CbV4LtSdGuP1MPAR+zQsriDRzsmrDnKhTaG+vOCTrFjLko715/n78dLqPeow21YRjp4sR88CC9EzMi187qDg6TsWHVVZXu95zTCLEX+TpKeAnEV5HGmk/gSNeEK7CdGayvQt9POs7ltDwglul8CcWofJMuQ6ohhW64E9s0QYj41ytVBGy0Rhnn6yxFxr30L7FG1xeDoPw+oChVoJLodHgM4Z1eu1hC2aDWxziulVU5jQ4/ymzmODuG3oHJAKVbDosq+AU73b8EYCBbYBR3S9fSG+nL5Ae+sDvdtlT8DCuPPJ5luBJlFsKqltzPLLOITkHoIPQvM8+WN2ni92obyfafOq2yhW2DUJSdiM86LVQzSWDt99zaqQt6MPaDGqm6HIo3S+8Lix+z3dhoUexkbHw04ujXScHiHPnZP29D3enzANcaCb0YSuQskyDOeG9 eXvLB/KI d1fgTkHPJR/vJKqI2EuK2rCzBM7e62xBdVNLU7Tvjvvpu726S5vqhh2M4zZPWBAwrevE5bk1M5va5KzMrJiZaKNP8njLEF8FllXgWSQVERtj5Tj/7FTLrYHFU5mY0oo/1rFFNab7SDxI3kb4VSs3VK9wOAsR1Cay70zoIi8Nr5iNQfMpdoV9lbdAGWjZrzb+fjsPsHr7WhjeLFVRpXKq2KSi5lNhrP8mc9+EEPNHwL13gSF1AFmjp8CHLQBoqEo4y3xIRPHBzgaPLTUaE1WgvA8Gwl5X+aAIjpBDG06Mtkyd3XYhqcbrCOHnCqYhXhXTp79U4wiPt8ZpNJfeeXzzutzUEBiyPFXTsDXvA80GiEMJUCDh+D2S5E54u9HbtTFYyuMI+AMSUsvlpKzqgH3X8dae/GUUjYbQYtQsFBQ6jFwOg+3SeVggeckREmfEquPGRL0m5Q8cHeSpRHlxvompcOTBBFpEgJ5i1mM/+L1koXY66KgvaxEXuHuN+y7qYWjPae2Vg3etNRtaeb/Mztd/KPpY/oAV/ev9ZHHHgWzcd+w39OiqYfXjN0jclyrN8MUv46s535cHxLbW75UE20RTPbCcoE4EX8fuuqb3yoyCG34aKrK2cKxmsXvsAK6zIefmoA3sXishheldescVRCkvq2a5N0VJwibr6qxQfHsxuSyOqmyo= 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: 2025-03-20T16:09:12-07:00, Deepak Gupta : > On Thu, Mar 20, 2025 at 3:24=E2=80=AFPM Radim Kr=C4=8Dm=C3=A1=C5=99 wrote: >> 2025-03-14T14:39:38-07:00, Deepak Gupta : >> > Expose a new register type NT_RISCV_USER_CFI for risc-v cfi status and >> > state. Intentionally both landing pad and shadow stack status and stat= e >> > are rolled into cfi state. Creating two different NT_RISCV_USER_XXX wo= uld >> > not be useful and wastage of a note type. Enabling or disabling of fea= ture >> > is not allowed via ptrace set interface. However setting `elp` state o= r >> > setting shadow stack pointer are allowed via ptrace set interface. It = is >> > expected `gdb` might have use to fixup `elp` state or `shadow stack` >> > pointer. >> > >> > Signed-off-by: Deepak Gupta >> > --- >> > diff --git a/arch/riscv/include/uapi/asm/ptrace.h b/arch/riscv/include= /uapi/asm/ptrace.h >> > index 659ea3af5680..e6571fba8a8a 100644 >> > @@ -131,6 +131,24 @@ struct __sc_riscv_cfi_state { >> > unsigned long ss_ptr; /* shadow stack pointer */ >> > }; >> > >> > +struct __cfi_status { >> > + /* indirect branch tracking state */ >> > + __u64 lp_en : 1; >> > + __u64 lp_lock : 1; >> > + __u64 elp_state : 1; >> > + >> > + /* shadow stack status */ >> > + __u64 shstk_en : 1; >> > + __u64 shstk_lock : 1; >> >> I remember there was deep hatred towards bitfields in the Linux >> community, have things changes? > > hmm. I didn't know about the strong hatred. There is a good reason for it. :) The C standard left important behavior as implementation-specific (by mistake, I hope). I do like bitfields, but you have to be extra careful when working with them. > Although I can see lots of examples of this pattern in existing kernel co= de. > No strong feelings on my side, I can change this and have it single 64bit= field > and accessed via bitmasks. This is uapi and bitfields do not specify the internal representation. A program compiled at a different time can see completely different order of the bitfields, so the uapi would break. We cannot use bitfields here.