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 8790BE77188 for ; Mon, 6 Jan 2025 05:08:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D96126B0082; Mon, 6 Jan 2025 00:08:01 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D6CC76B0088; Mon, 6 Jan 2025 00:08:01 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C35326B0089; Mon, 6 Jan 2025 00:08:01 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id A6BDC6B0082 for ; Mon, 6 Jan 2025 00:08:01 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 07B6345D87 for ; Mon, 6 Jan 2025 05:08:01 +0000 (UTC) X-FDA: 82975845162.24.30B7964 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by imf15.hostedemail.com (Postfix) with ESMTP id 00504A0005 for ; Mon, 6 Jan 2025 05:07:58 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=daynix-com.20230601.gappssmtp.com header.s=20230601 header.b=2ZZ74v0S; spf=pass (imf15.hostedemail.com: domain of akihiko.odaki@daynix.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=akihiko.odaki@daynix.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736140079; a=rsa-sha256; cv=none; b=v3P+Uu8mamCHmAbjJu3n2QXkyEqo7/X2xtrN4bZbduFYkwr/NazSQaWJgmZb2lRGE7quZ1 Z5ArEDBdtCioVr4O1w/EXyNr+C05XcztngF5nZbF9oiuQa0xesMBtjs7kVTOcpvXwyuao4 Z6/7ZLhIXkAEFE/u62b3sWRmcNIlfOc= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=daynix-com.20230601.gappssmtp.com header.s=20230601 header.b=2ZZ74v0S; spf=pass (imf15.hostedemail.com: domain of akihiko.odaki@daynix.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=akihiko.odaki@daynix.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736140079; 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=LuPI2QoCWSGABhNaHmyyQbTaoQ2qivKcvMjG9VSzHt4=; b=Cm5wWX3HgaOtLTSSeW/h1h8UdYL/3a781dlzmqZeN0tzQOHwTinI1TbQWZ0mStk/TDernT Z3c3Kyo8efcY9yEBY+D+O9L8ZNCp8PQxVi59TR4AHnYx9uD+OFUHhbMQZIOkCYWt+hKtqv LfQ09n2zPwvwkX04vtNmojxeCh9p3Bk= Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-21669fd5c7cso201415445ad.3 for ; Sun, 05 Jan 2025 21:07:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daynix-com.20230601.gappssmtp.com; s=20230601; t=1736140077; x=1736744877; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=LuPI2QoCWSGABhNaHmyyQbTaoQ2qivKcvMjG9VSzHt4=; b=2ZZ74v0SW3ajndo8k2lBSAxIM2JLdOicQTkzBmXvCNy1fQoLUY1DnRlFKoZZmJJo4G FQYvM0o2hDw2ZT07qJxl6uZoJLQ9L3u20oF4Nv6/n16eNLdq1Dj7ms6UTxIF2VdMy4F0 K4V2TZ69OWNDENf0PK1c2opzTevHwlhKhsfsskhoY7h3n+eUWO8HeWvtUzeMGkvR67Fi ud6MOxkGyhnlCMysLCq7sj66/aTy94NkukRqWJsWitEIZdfAFGtnx5rpF3xkDYVSuPJb ScwjIlNnw9IAO+q2bJ4mQEkg9HbKwnNZDtImMjWBPYrxYjdLHQDLHctLpdVDfCTMm/mX F5Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736140077; x=1736744877; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=LuPI2QoCWSGABhNaHmyyQbTaoQ2qivKcvMjG9VSzHt4=; b=pJl7IJRyMxCuRYjTI1tm1GKJfp9fjSZ9JdnCO1m5B2w0mzD/uBZo48n5senxTpQLx8 osjFlHBsW0/JeOxo9xO6wfTX4lvqZdhVGFzhxKj4xg84VvjbqlaHl17/n7HU7EebD648 bhC8cTex2k9OLuSBZKMT5W7lYUPMCool+IM9up7fNZTWwv7oj0AnUo4GwVPdJ+ifN2pR oKrt/nNDQgG2Us6dhivVZB5AgLO+hSRFLD/xXVxdMjohu/ZNTB16MhavqbZIJu3bTmj5 4FWLcGZ/fRkMRux+mb5ouQ7tJ8Hsa31c0lLApY5YLS77vTS+qJJhLP5q6hCBbbuu0/OO CiRA== X-Forwarded-Encrypted: i=1; AJvYcCW6faR0VzugtaB6KBAD9eYYr8ebEaw/siPSiKksytYAjQbWHq5777hLisyf22tP7Jbz8C5Yf8liXw==@kvack.org X-Gm-Message-State: AOJu0YyPXsGHmAp1bfLYDArVzWQfMIW4pcLJkScIKY9o6NVM8AX9PtgC D4fNKvV3qCksxnILI7JlNK0mqHkY45/QjAuF2df9SgDtNwMWV/u6B4UgTkONjuE= X-Gm-Gg: ASbGncu7cvOTUEsAnp19b+xZgpQ6gsmHXHMsBbu4x5sOkjQ6ids5PTv3lk7YJFoTjPW Ei8dvgeQ2qvjwYxha+jesqSm25AfkGnAGMVPftCqG0EjyQCc+0+MkM//GY5QJWCBSGve6lNWCkW MnUjo16+kIW/8E9Edebv6kpz0plh8/9pcKNsCbbWSC39j2IlJp+xaEUQJpNlLeL7itffzh2ooFR 3CS4/o4jjXED+xQjceit/ROzT2cVCJpvrZ9XoSvVdrtq/2FR9moAQf46cznxQCJ X-Google-Smtp-Source: AGHT+IHO9h+H3nQtpCAylHi4N1tDhCEXwfFp2Ug4YvZcEwI3J7mIrB866g5t/GIXJEMR5ZJQFBtNMg== X-Received: by 2002:a17:903:1209:b0:216:36ff:ba33 with SMTP id d9443c01a7336-219e6ebcfc7mr750060565ad.26.1736140077545; Sun, 05 Jan 2025 21:07:57 -0800 (PST) Received: from [10.100.1.231] ([157.82.128.7]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-219dc96e94dsm285208985ad.67.2025.01.05.21.07.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 05 Jan 2025 21:07:57 -0800 (PST) Message-ID: <70daf544-f59f-404b-bec0-0d60e892a9e9@daynix.com> Date: Mon, 6 Jan 2025 14:07:47 +0900 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 1/5] elf: Define note name macros To: Baoquan He Cc: Eric Biederman , Kees Cook , Catalin Marinas , Mark Brown , Dave Martin , Vivek Goyal , Dave Young , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, kexec@lists.infradead.org, devel@daynix.com References: <20250104-elf-v2-0-77dc2e06db4e@daynix.com> <20250104-elf-v2-1-77dc2e06db4e@daynix.com> Content-Language: en-US From: Akihiko Odaki In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 00504A0005 X-Stat-Signature: hp6ksms6f83b7bikzh7a3rrwbbhhkqbd X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1736140078-499405 X-HE-Meta: U2FsdGVkX19fEdOk8Tu4eg+N3qDTl7g0iwa+FSFLG44y8NnghGhAuOs5tvo7zD8jkBSzNS0aG5BD1K4O94Fv94A74rq0Nd9UJ/zwWqkdmGbdljPINd9umFEZVBApPC8IpGdTbrvsA9QabQFSrC9d0fJQUke0NWCHya55SDSC5S5i3hEU6dW/gsMVFib8FBfYITzOHC8CSCRBE6FqllEZZJdfS43fBGNu7fXWNcwSf37Cp5xipbTJYPIH54eKWZYZ6xXZ17d9VUwHs7G2Jtef7kEyTqjRYPA2rV2IoJ/5gSQu3YG5O5rTfJJbzUuP/u0yR5+KYM2unkekfHczEHg8swDhms4MzdtT1gPl3I0pwsU9ZgQCKRrl3kkPQzsJJVLZIh9e8QVtiuzT3f4HLRLEABS/hLGZjMzUzy9TM2ORtasiqeHvh0NbQlZ1eY98DfMGh+2cLritpBjEb8dgC3y4z8yz3hsPybI0EqX7gEAvS6yyGLx3W1SIDDj/s28XekHaUIRrzohVrY8Je/8fwKMtwvdQZQy0GnYWZVqRKaZNADaumvbU1VtO5E4srdgqrVWM672yUCC8P65c5L4rPhbUkVgQNLpMmhJiE7yrx0Z4Sc0vQnUXZ5FPSz4IHSm8McE+i/Wgtwe/GSOGr9jAdtCkGVTJrFk9I/mN9rwd3BjhAeqBcNzd7F8a/ANF7XchqhShPb/1zYg+L8YAoBT66CFb/IJnwExTzlp2PbeXMcr2dB2bSMbW1ENAr7s9fFmQt39dtpF6tMeiA+n0BYkgpXckbK2ZIWPKIJPa4X0L0Q2+quE7xzHFLnESlSzNMIgYf/Kk3gj+kR94W4ErMO7Ct30b5HqwzkvVfkAOu5Dq4Zy+kkLCMNuydOnNcCjZwoPQcA2S67wNeY4oI67smIJCxFReS+vEeMF2ddlywkLX6WOoFh4Bh2bwLfhvABcpfytVo9JvffoIDzszay908fVmsMk B6rG15W4 GgpZ2JBoY9gxpjms5jlxcLRZlewRmq4s+7gh7lW0D2G/fRtbrdonqTTghCdCO+rxXa7lsEBqIkNjUASzFsKBGm48bDGBQ1bRAy4zukWd/NO9BLfRVAFbB5UyW31DJqHAx/DtMQS28HVHg5oRslMrm15pbcK1ad5LKRqgPbaYY7kR2KUl08FjPlGHaoEjeb5u+JRm3MjeiEke/DeP5Haet+PSq980x9A3ET402x+jXK5NYGEiOps9+ztvdknSOcv/t9E0MpfbvhW5G2BmhuRuUq9LLkONhSb+C/lOT94YWX+57YChuhEVPdkVGNQlfIJN/CKJYupmedSkgfljGw/x5hRQdmQyHMopP8pbjyB/Cf6NlIYPk5NWQ1d8BOXnbHVu3hCCoyOWUwzSn7IFf8KcmR5H6zrMFbraA21FALVl2Sbnb87DOHnSitTWJi7NYKlRmDeAaBTQIr8UjRSyl7PjPlFDppunA63v/va6VKUUNA6XRfJtjCLV4XJtW9Q== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000004, 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 2025/01/06 11:21, Baoquan He wrote: > On 01/04/25 at 11:38pm, Akihiko Odaki wrote: >> elf.h had a comment saying: >>> Notes used in ET_CORE. Architectures export some of the arch register >>> sets using the corresponding note types via the PTRACE_GETREGSET and >>> PTRACE_SETREGSET requests. >>> The note name for these types is "LINUX", except NT_PRFPREG that is >>> named "CORE". >> >> However, NT_PRSTATUS is also named "CORE". It is also unclear what >> "these types" refers to. >> >> To fix these problems, define a name for each note type. The added >> definitions are macros so the kernel and userspace can directly refer to >> them. >> >> Signed-off-by: Akihiko Odaki >> --- >> include/uapi/linux/elf.h | 86 ++++++++++++++++++++++++++++++++++++++++++++++-- >> 1 file changed, 83 insertions(+), 3 deletions(-) >> >> diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h >> index b44069d29cec..014b705b97d7 100644 >> --- a/include/uapi/linux/elf.h >> +++ b/include/uapi/linux/elf.h >> @@ -372,8 +372,6 @@ typedef struct elf64_shdr { >> * Notes used in ET_CORE. Architectures export some of the arch register sets >> * using the corresponding note types via the PTRACE_GETREGSET and >> * PTRACE_SETREGSET requests. >> - * The note name for these types is "LINUX", except NT_PRFPREG that is named >> - * "CORE". >> */ >> #define NT_PRSTATUS 1 >> #define NT_PRFPREG 2 >> @@ -460,9 +458,91 @@ typedef struct elf64_shdr { >> #define NT_LOONGARCH_HW_BREAK 0xa05 /* LoongArch hardware breakpoint registers */ >> #define NT_LOONGARCH_HW_WATCH 0xa06 /* LoongArch hardware watchpoint registers */ >> >> -/* Note types with note name "GNU" */ >> +/* Note used in ET_EXEC and ET_DYN. */ >> #define NT_GNU_PROPERTY_TYPE_0 5 >> >> +/* Note names */ >> +#define NN_PRSTATUS "CORE" >> +#define NN_PRFPREG "CORE" >> +#define NN_PRPSINFO "CORE" >> +#define NN_TASKSTRUCT "CORE" >> +#define NN_AUXV "CORE" >> +#define NN_SIGINFO "CORE" >> +#define NN_FILE "CORE" >> +#define NN_PRXFPREG "LINUX" > > No objection to make them clearer. Thanks for the effort. > > Wondering where below arch specific macros are used. So you just > added all NN_xxx for the corresponding NT_xxx? Not sure if this is > needed if we don't use them at all in the current kernel. Indeed I just added all NN_xxx. The kernel won't use the macros that are defined as "LINUX"; fs/binfmt_elf.c uses "LINUX" by default as the notes named "CORE" or "GNU" are exceptional. Userspace applications may still be interested in these macros as demonstrated in: https://lore.kernel.org/r/Z3f7zJwu8bu8HYln@e133380.arm.com These macros also serve as documentation; correcting and clarifying the documentation is the main purpose of this series. > >> +#define NN_PPC_VMX "LINUX" >> +#define NN_PPC_SPE "LINUX" >> +#define NN_PPC_VSX "LINUX" >> +#define NN_PPC_TAR "LINUX" >> +#define NN_PPC_PPR "LINUX" >> +#define NN_PPC_DSCR "LINUX" >> +#define NN_PPC_EBB "LINUX" >> +#define NN_PPC_PMU "LINUX" >> +#define NN_PPC_TM_CGPR "LINUX" >> +#define NN_PPC_TM_CFPR "LINUX" >> +#define NN_PPC_TM_CVMX "LINUX" >> +#define NN_PPC_TM_CVSX "LINUX" >> +#define NN_PPC_TM_SPR "LINUX" >> +#define NN_PPC_TM_CTAR "LINUX" >> +#define NN_PPC_TM_CPPR "LINUX" >> +#define NN_PPC_TM_CDSCR "LINUX" >> +#define NN_PPC_PKEY "LINUX" >> +#define NN_PPC_DEXCR "LINUX" >> +#define NN_PPC_HASHKEYR "LINUX" >> +#define NN_386_TLS "LINUX" >> +#define NN_386_IOPERM "LINUX" >> +#define NN_X86_XSTATE "LINUX" >> +#define NN_X86_SHSTK "LINUX" >> +#define NN_X86_XSAVE_LAYOUT "LINUX" >> +#define NN_S390_HIGH_GPRS "LINUX" >> +#define NN_S390_TIMER "LINUX" >> +#define NN_S390_TODCMP "LINUX" >> +#define NN_S390_TODPREG "LINUX" >> +#define NN_S390_CTRS "LINUX" >> +#define NN_S390_PREFIX "LINUX" >> +#define NN_S390_LAST_BREAK "LINUX" >> +#define NN_S390_SYSTEM_CALL "LINUX" >> +#define NN_S390_TDB "LINUX" >> +#define NN_S390_VXRS_LOW "LINUX" >> +#define NN_S390_VXRS_HIGH "LINUX" >> +#define NN_S390_GS_CB "LINUX" >> +#define NN_S390_GS_BC "LINUX" >> +#define NN_S390_RI_CB "LINUX" >> +#define NN_S390_PV_CPU_DATA "LINUX" >> +#define NN_ARM_VFP "LINUX" >> +#define NN_ARM_TLS "LINUX" >> +#define NN_ARM_HW_BREAK "LINUX" >> +#define NN_ARM_HW_WATCH "LINUX" >> +#define NN_ARM_SYSTEM_CALL "LINUX" >> +#define NN_ARM_SVE "LINUX" >> +#define NN_ARM_PAC_MASK "LINUX" >> +#define NN_ARM_PACA_KEYS "LINUX" >> +#define NN_ARM_PACG_KEYS "LINUX" >> +#define NN_ARM_TAGGED_ADDR_CTRL "LINUX" >> +#define NN_ARM_PAC_ENABLED_KEYS "LINUX" >> +#define NN_ARM_SSVE "LINUX" >> +#define NN_ARM_ZA "LINUX" >> +#define NN_ARM_ZT "LINUX" >> +#define NN_ARM_FPMR "LINUX" >> +#define NN_ARM_POE "LINUX" >> +#define NN_ARM_GCS "LINUX" >> +#define NN_ARC_V2 "LINUX" >> +#define NN_VMCOREDD "LINUX" >> +#define NN_MIPS_DSP "LINUX" >> +#define NN_MIPS_FP_MODE "LINUX" >> +#define NN_MIPS_MSA "LINUX" >> +#define NN_RISCV_CSR "LINUX" >> +#define NN_RISCV_VECTOR "LINUX" >> +#define NN_RISCV_TAGGED_ADDR_CTRL "LINUX" >> +#define NN_LOONGARCH_CPUCFG "LINUX" >> +#define NN_LOONGARCH_CSR "LINUX" >> +#define NN_LOONGARCH_LSX "LINUX" >> +#define NN_LOONGARCH_LASX "LINUX" >> +#define NN_LOONGARCH_LBT "LINUX" >> +#define NN_LOONGARCH_HW_BREAK "LINUX" >> +#define NN_LOONGARCH_HW_WATCH "LINUX" >> +#define NN_GNU_PROPERTY_TYPE_0 "GNU" >> + >> /* Note header in a PT_NOTE section */ >> typedef struct elf32_note { >> Elf32_Word n_namesz; /* Name size */ >> >> -- >> 2.47.1 >> >