From nobody Mon Feb 9 01:45:48 2026 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6EDAC1DDFA for ; Mon, 11 Mar 2024 20:40:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710189649; cv=none; b=c6EuT/wL0K7E9LMCgO4V8ezd0LpiTjSft63qDBHOk2Z8leziSW3xFcW9Ya+YdNj0Vlt70F90Fvapryf7ZglqLL6aBPEZOhfuSo7NB49vJ4fMejgeIS1miM6gPO9P6/WKAESxMh/DFwbwzLW7Zl7HYkUzk4cbjxTjBfklDBoLQxo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710189649; c=relaxed/simple; bh=9OWRJdkAv7cHnWuVRgo+tbzxoUOMQDC00S++Chf+Sns=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=s4YR9Tp2jCMgHvZx5dxNzlhBrzn+HP34+BH/YwtnHhUUT7CyWZM94N3oGdt2q0V+yWw0F0+SFFgj8nObHeTCT5tR4uTq87yaw6GId+UdaeezQHipQ/ykAqhkm1yYX+bxTIwtOrwASACKJe9tXgR2mvANbkApi8e+f/4+nrPhQgU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=h1O69mAc; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="h1O69mAc" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-4132600824bso9902565e9.2 for ; Mon, 11 Mar 2024 13:40:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710189646; x=1710794446; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=dTVNNfo5/Y61rhM7u0Y0ocSrSY3U2WS9X7F9mo8CMy4=; b=h1O69mAcICA4AHdTcSn77eI6whnFZzh0g9D944iLZDrncQrrKumIj/4H9pJc2Khjup MuykPPN16lSto7FXc0fjkhVkZym1A3wLfQoLLvsiDO75RkWgNY8s8zOgtNtHLPqaL9oy 1IUDIwTAjmj1wj7csMtmG0vQZbJ6j7gzzL0YduqpZbHS+LzzcE41z3N/wdX7xgb3k2b3 jfB4GJN3CXoDT674p8RCM6JlQ/2QwdbfFQANGbHYDehON9s3HAfvIvdSiTJ/lmpn5txK u3xgwbR1DaBE0mJmqPxrcoX2urXDM47ZmOO7Xtvvz1G/eB3c8VlEls2gqbYcSOSoqZwD Vy+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710189646; x=1710794446; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dTVNNfo5/Y61rhM7u0Y0ocSrSY3U2WS9X7F9mo8CMy4=; b=c9pk5RUaPHCnce1PVdqFjAc+1wP1ZHg7sItPkP5zxA7RTv2vD8E8rO16kstAwAIaag 8u51L9pioFWM9rDBmMzTQvRpDh0HN8y8B7ZL+hbl5xgj3uvcyUUUR4To0fM/4NAHqbHx uLfNTOzSIdKZIpW30i0OkgG/CiFRvKW5Qf7Zv+qkT/imgsKFjsXEB2o629cMYWoVeUdd d6S0DFPw5dzK3ujgOr1BxR+R1FLMbJzMK6/U67mCsjq7WBOHN7n5Ryh6Wi7WivBAa7qw bdB62te2UpLaO9LNNxlW9FLrIyJAcLGdkBtQAaxc2OH1c5KK0mMIXAzdwqnlVaiqq/dq cFIw== X-Forwarded-Encrypted: i=1; AJvYcCXq9fCya8zSwcidAoV6JD8PrAVT1IPoBGaqaXf/9HWdojlsHUQeFtipnkSyFzC3idabLdV1PR5bzdWz7oRRonp5LHS0jPAw1XKZwhS+ X-Gm-Message-State: AOJu0YzQFlxV/fo13CvFH3LNRJQrOcEhQr6Iul47BbwjxOFlWNkMEGz5 SxCHPkKOZCxanUF2KUs8NGDgyrRGm1HGKMG3s1gmzLNuq9Vky7H7Z0SGye6Y3s8= X-Google-Smtp-Source: AGHT+IGvTnmoa5Cz9WQRFC4IZp9WkJ12JdmA9Uz+ctrXAr5ntxnSxjKEA1HkmgAT2KlKBZ3+F2c3JA== X-Received: by 2002:a05:600c:350b:b0:412:f065:5c4f with SMTP id h11-20020a05600c350b00b00412f0655c4fmr1108683wmq.29.1710189645688; Mon, 11 Mar 2024 13:40:45 -0700 (PDT) Received: from rex.hwlab.vusec.net (lab-4.lab.cs.vu.nl. [192.33.36.4]) by smtp.gmail.com with ESMTPSA id t14-20020a05600c198e00b0041312c4865asm14929355wmq.2.2024.03.11.13.40.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Mar 2024 13:40:45 -0700 (PDT) From: Brian Johannesmeyer To: Josh Poimboeuf , linux-kernel@vger.kernel.org, Brian Johannesmeyer Subject: [PATCH 1/7] scripts/faddr2line: Reduce number of readelf calls to three Date: Mon, 11 Mar 2024 21:40:13 +0100 Message-Id: <20240311204019.1183634-2-bjohannesmeyer@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240311204019.1183634-1-bjohannesmeyer@gmail.com> References: <20240311204019.1183634-1-bjohannesmeyer@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rather than calling readelf several times for each invocation of __faddr2line, call readelf only three times at the beginning, and save its result for future use. Signed-off-by: Brian Johannesmeyer --- scripts/faddr2line | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/scripts/faddr2line b/scripts/faddr2line index 587415a52b6f..bf394bfd526a 100755 --- a/scripts/faddr2line +++ b/scripts/faddr2line @@ -87,7 +87,7 @@ command -v ${ADDR2LINE} >/dev/null 2>&1 || die "${ADDR2LI= NE} isn't installed" find_dir_prefix() { local objfile=3D$1 =20 - local start_kernel_addr=3D$(${READELF} --symbols --wide $objfile | sed 's= /\[.*\]//' | + local start_kernel_addr=3D$(echo "${ELF_SYMS}" | sed 's/\[.*\]//' | ${AWK} '$8 =3D=3D "start_kernel" {printf "0x%s", $2}') [[ -z $start_kernel_addr ]] && return =20 @@ -103,6 +103,14 @@ find_dir_prefix() { return 0 } =20 +run_readelf() { + local objfile=3D$1 + + ELF_FILEHEADER=3D$(${READELF} --file-header $objfile) + ELF_SECHEADERS=3D$(${READELF} --section-headers --wide $objfile) + ELF_SYMS=3D$(${READELF} --symbols --wide $objfile) +} + __faddr2line() { local objfile=3D$1 local func_addr=3D$2 @@ -125,7 +133,7 @@ __faddr2line() { =20 # vmlinux uses absolute addresses in the section table rather than # section offsets. - local file_type=3D$(${READELF} --file-header $objfile | + local file_type=3D$(echo "${ELF_FILEHEADER}" | ${AWK} '$1 =3D=3D "Type:" { print $2; exit }') if [[ $file_type =3D "EXEC" ]] || [[ $file_type =3D=3D "DYN" ]]; then is_vmlinux=3D1 @@ -143,8 +151,7 @@ __faddr2line() { local sec_name =20 # Get the section size: - sec_size=3D$(${READELF} --section-headers --wide $objfile | - sed 's/\[ /\[/' | + sec_size=3D$(echo "${ELF_SECHEADERS}" | sed 's/\[ /\[/' | ${AWK} -v sec=3D$sym_sec '$1 =3D=3D "[" sec "]" { print "0x" $6; exit }= ') =20 if [[ -z $sec_size ]]; then @@ -154,8 +161,7 @@ __faddr2line() { fi =20 # Get the section name: - sec_name=3D$(${READELF} --section-headers --wide $objfile | - sed 's/\[ /\[/' | + sec_name=3D$(echo "${ELF_SECHEADERS}" | sed 's/\[ /\[/' | ${AWK} -v sec=3D$sym_sec '$1 =3D=3D "[" sec "]" { print $2; exit }') =20 if [[ -z $sec_name ]]; then @@ -197,7 +203,7 @@ __faddr2line() { found=3D2 break fi - done < <(${READELF} --symbols --wide $objfile | sed 's/\[.*\]//' | ${AWK= } -v sec=3D$sym_sec '$7 =3D=3D sec' | sort --key=3D2) + done < <(echo "${ELF_SYMS}" | sed 's/\[.*\]//' | ${AWK} -v sec=3D$sym_se= c '$7 =3D=3D sec' | sort --key=3D2) =20 if [[ $found =3D 0 ]]; then warn "can't find symbol: sym_name: $sym_name sym_sec: $sym_sec sym_addr= : $sym_addr sym_elf_size: $sym_elf_size" @@ -278,7 +284,7 @@ __faddr2line() { =20 DONE=3D1 =20 - done < <(${READELF} --symbols --wide $objfile | sed 's/\[.*\]//' | ${AWK}= -v fn=3D$sym_name '$8 =3D=3D fn') + done < <(echo "${ELF_SYMS}" | sed 's/\[.*\]//' | ${AWK} -v fn=3D$sym_name= '$8 =3D=3D fn') } =20 [[ $# -lt 2 ]] && usage @@ -291,7 +297,9 @@ LIST=3D0 [[ ! -f $objfile ]] && die "can't find objfile $objfile" shift =20 -${READELF} --section-headers --wide $objfile | ${GREP} -q '\.debug_info' |= | die "CONFIG_DEBUG_INFO not enabled" +run_readelf $objfile + +echo "${ELF_SECHEADERS}" | ${GREP} -q '\.debug_info' || die "CONFIG_DEBUG_= INFO not enabled" =20 DIR_PREFIX=3Dsupercalifragilisticexpialidocious find_dir_prefix $objfile --=20 2.34.1 From nobody Mon Feb 9 01:45:48 2026 Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C7F123CF6A for ; Mon, 11 Mar 2024 20:40:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710189649; cv=none; b=qBJJSwj6GjrZlSkC4lMMnGFCdBadoxmMNqC6uIZPLn5MM1TzWBr1eUoZQNurYNApRRbu0wJFhr8DtkzUxC3Qa5X3fqgi5s29U4dhG7ibe3vSYjoqqBRWzlpyLS7+yJbSlzt/M55yCCC67SnJ/F3OEKllePPGk3T+2hWcjpYkXjw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710189649; c=relaxed/simple; bh=0Kq0Kgx3d6qdBteVdc49v+B1oL6Tx1LvVDzpIfXgHLU=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=RS1ghf/EnvPG+TrqsNn7bU+wLKIWATkkpuKPyQqDFicZdYsabpvfBSRTlrXJOyVb52VUi1jbZmTraKlOBzgEOomIvQ0gK6PClRqxYGEzhtkZrLYgS0PURXCo2qNmMbqBJoksmY7HCzXGIEuUbCfp78BArsdLwRZIFpKu11ZhfVM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=J+JYnl7l; arc=none smtp.client-ip=209.85.221.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="J+JYnl7l" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-33e1878e357so2842826f8f.3 for ; Mon, 11 Mar 2024 13:40:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710189646; x=1710794446; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=SeoEezW9/4VkOixPnqAE9ztYSH2P2V/0rjgAzL/X/r4=; b=J+JYnl7lszzAGvgNzjnPmph1Um5qKeb4SQf055wLSvTi5FTxUCMa0jPRwU9QKRsCzq GbgNV8HVcyakI0gyvh2FVEFPrrBmdBw8BnAiGcDtARfPUljXst80XMkquowvn1JNTrCA 2UgoeTIWFZUoYfjQR+oArVs9N/UejanYKvGYvcDMifcP0hIEK318Q8rTlxCsbwy9OSNG j1cZ1rFv5lIvbHF1U/q0Ohao/LU1s0vu9eE4qeXE2c4QmwFqcCSaQmFI0oZ+N93lqJx5 vqZm4Ohn51HFlsyylw67BKzj6uEa4MyapDhaCbJqedsKZboPKUTmPVMARZ0/Z79ll5CG BCqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710189646; x=1710794446; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SeoEezW9/4VkOixPnqAE9ztYSH2P2V/0rjgAzL/X/r4=; b=AJHIdFv5FCjH+FbmOMCE4mU0HJULmV5R+gMk29F60dIm8LFnzvae898QYoV174U5V5 g0jQrfkojnMCb0id6Pu92KQwRDsSS3q7dM4ZmA6rVclkYls5oxpoo0MgzyWq8lQKlEdy YNWQtT2yV8xBq5aTd3/kncQbogJZ74FIvalZ/5qhpXsZTDMa2MTFQmXtncij8qLqZYRq OYjWB90OHyMKayHZKCQhXIiSa/hJyqDXRA11Q+wGDuBwAml6qM3+7PPR21tYmO4AA3gd HWqQX0BZDA+9/hcbPg3cKArAkssFNmT6UXNp8+CNN7Uo9UpMKBCrj6zx1cLFLrkNJl31 MORQ== X-Forwarded-Encrypted: i=1; AJvYcCUYPmNpHegsRrflk0ZtSDT7ricxEMTPTwCyUc5js9YEOR/vU33wK4vP2T1LX9ybByWv8lcb6F+aVJkqH3fxcIdbcHJmhPa/Hh6qF7h8 X-Gm-Message-State: AOJu0YxmD8ICSr7M4Owx6R76clmxusKVtYYrm3b856wWPSHm1BYfiGnb 9GH/HJ4d4Qstwr+iOq1XBskWjNN8fXc0gHvE8/xGZW/DrV4LKiB/cE5/31+Gf4o= X-Google-Smtp-Source: AGHT+IHm/wmXAJCdAIcmk8VCIZUos9PwX0mRIoscbcVEURvjgXYI0XxqavO7+97e3hMh2fhIDT8haQ== X-Received: by 2002:adf:e6c5:0:b0:33d:1739:aed3 with SMTP id y5-20020adfe6c5000000b0033d1739aed3mr6147704wrm.60.1710189646093; Mon, 11 Mar 2024 13:40:46 -0700 (PDT) Received: from rex.hwlab.vusec.net (lab-4.lab.cs.vu.nl. [192.33.36.4]) by smtp.gmail.com with ESMTPSA id t14-20020a05600c198e00b0041312c4865asm14929355wmq.2.2024.03.11.13.40.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Mar 2024 13:40:45 -0700 (PDT) From: Brian Johannesmeyer To: Josh Poimboeuf , linux-kernel@vger.kernel.org, Brian Johannesmeyer Subject: [PATCH 2/7] scripts/faddr2line: Combine three readelf calls into one Date: Mon, 11 Mar 2024 21:40:14 +0100 Message-Id: <20240311204019.1183634-3-bjohannesmeyer@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240311204019.1183634-1-bjohannesmeyer@gmail.com> References: <20240311204019.1183634-1-bjohannesmeyer@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rather than calling readelf three separate times to collect three different types of info, call it only once, and parse out the different types of info from its output. Signed-off-by: Brian Johannesmeyer --- scripts/faddr2line | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/scripts/faddr2line b/scripts/faddr2line index bf394bfd526a..f011bda4ed25 100755 --- a/scripts/faddr2line +++ b/scripts/faddr2line @@ -105,10 +105,14 @@ find_dir_prefix() { =20 run_readelf() { local objfile=3D$1 - - ELF_FILEHEADER=3D$(${READELF} --file-header $objfile) - ELF_SECHEADERS=3D$(${READELF} --section-headers --wide $objfile) - ELF_SYMS=3D$(${READELF} --symbols --wide $objfile) + local out=3D$(${READELF} --file-header --section-headers --symbols --wide= $objfile) + + # This assumes that readelf first prints the file header, then the sectio= n headers, then the symbols. + # Note: It seems that GNU readelf does not prefix section headers with th= e "There are X section headers" + # line when multiple options are given, so let's also match with the "Sec= tion Headers:" line. + ELF_FILEHEADER=3D$(echo "${out}" | sed -n '/There are [0-9]* section head= ers, starting at offset\|Section Headers:/q;p') + ELF_SECHEADERS=3D$(echo "${out}" | sed -n '/There are [0-9]* section head= ers, starting at offset\|Section Headers:/,$p' | sed -n '/Symbol table .* c= ontains [0-9]* entries:/q;p') + ELF_SYMS=3D$(echo "${out}" | sed -n '/Symbol table .* contains [0-9]* ent= ries:/,$p') } =20 __faddr2line() { --=20 2.34.1 From nobody Mon Feb 9 01:45:48 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 351F73C482 for ; Mon, 11 Mar 2024 20:40:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710189649; cv=none; b=ZvFzHdt0/1ylr6sztj6ThvbUnt7ehNWBmwols8VjX4DLDvPgPTub3El/MmeobPCInF9uGR2edDhR37NHMfuULnAyf945pavnvu2t6b6eRyrVO0yLOcFbSkOEblcAr5CUgyc+BOjZ/KtSG/xCr240BZmoHD5TCiqqmkPDT5p1TSY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710189649; c=relaxed/simple; bh=pXQbxd5ujUmK1VVLnK8kdd1NphI/TywkGB3WoCJTJQ8=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=e2kkxeXtJ6aAlRbdTe3b/Wdvg/yRuS0ndERmCES1Lnmd5cGcpmq8y500J4gFInbgTrwhql9ZvEf86jkA+vV6DiE2GN9yPP9h4dSQTLdIxW4iuyANKwjWHheTwqCMyXS0T+9V8wG8wnHYba5yKfWCTH527Ngwe3vEzJON7aIJ17w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=cjO8NYQI; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cjO8NYQI" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-4132cc37e21so6994515e9.0 for ; Mon, 11 Mar 2024 13:40:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710189646; x=1710794446; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=H4lmLduepyzOAbsVFho4Xvkct1BwmBvnsIf9kusvzWM=; b=cjO8NYQIAN13N+QZ2t6yBs6+ON7XySj+3+luGnBZfP+OjWJEo3lt8viAOPYpPI8h+c 16HbVnfRO3JJ6dcU/jOynwTfom1LVkBm6qxXEz+oAElN9FzWx3qls70vvHCPXo8Thtrg GO5ILc9FSQVWVIMyuu2AQCqoFn3ieVKLjOztwqUHi4NMlWcXysw88VAihvDwblM0FJgQ ibUfnp6E55xiVlJierrU1Y2+bckG5KD983gHaLes4isnlSSVASlbqQdV76PldGUkKpgj FV4n2hxNC6vZcaiSnqQH6qB2LqDEfeLc1wjKamHX86QnOKrmVZ7pMM5EdCxLKQExIMN9 P+0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710189646; x=1710794446; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=H4lmLduepyzOAbsVFho4Xvkct1BwmBvnsIf9kusvzWM=; b=SvaM+alGUzNEgRP9x/CQNKi4KxsNXILPW+wI5n4yvcVth0jVN8BfElij0YzarxfD2S OBANK5F2SZN91TdVMcoBvwgF0f+JF6nmjEr++qSMVHUg7QYrVF+gv24nHpcoha5WinIR 0h3ZhC+1Q4ToN3qptJqk8v29BULoxzdcRhpNXOIH06qEFGRxh4j9jrkFvU83tYRNzrZ4 DgOOjYQ7w/ne+2g3aCGHatxZFrztxFm1eZo5Y+vyVWCg5MZXpZG252nn5+JgvwdSRu3H PiQElKVN009UhUEQxQxQ8c5CQP3L0eBqU22FU65W/YaJpQblf/FVqHsLI+U5HmBXbZti E+Rg== X-Forwarded-Encrypted: i=1; AJvYcCXn6uhv+So0Txiw6r4yF+GYf3gLCbm1RJTDyVRizqAevwAC4tX8xeuaXVQUIFjNZgWSAjqjAyZIOGLtn4GniwHhBj8vO7TT+Nze/RL4 X-Gm-Message-State: AOJu0YzcP5Q6z11WLkfiYkv6bE7GzrkKG6NyxcM+WrY6g21ADbva1ysk wJj01/M2wECLsKkss9wxY45qtZwc5bEccF2CWdlWu0id1EjPfJGy X-Google-Smtp-Source: AGHT+IE/k9nNpWaDh7aTcG9ytU2aYoM4t2KZQYJh/+tsjpCmWqscXxxPX72z7ce7dJ3mKaR9EFjXjg== X-Received: by 2002:a05:600c:4e05:b0:413:18d9:f5ac with SMTP id b5-20020a05600c4e0500b0041318d9f5acmr6334511wmq.9.1710189646470; Mon, 11 Mar 2024 13:40:46 -0700 (PDT) Received: from rex.hwlab.vusec.net (lab-4.lab.cs.vu.nl. [192.33.36.4]) by smtp.gmail.com with ESMTPSA id t14-20020a05600c198e00b0041312c4865asm14929355wmq.2.2024.03.11.13.40.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Mar 2024 13:40:46 -0700 (PDT) From: Brian Johannesmeyer To: Josh Poimboeuf , linux-kernel@vger.kernel.org, Brian Johannesmeyer Subject: [PATCH 3/7] scripts/faddr2line: Check vmlinux only once Date: Mon, 11 Mar 2024 21:40:15 +0100 Message-Id: <20240311204019.1183634-4-bjohannesmeyer@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240311204019.1183634-1-bjohannesmeyer@gmail.com> References: <20240311204019.1183634-1-bjohannesmeyer@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rather than checking whether the object file is vmlinux for each invocation of __faddr2line, check it only once beforehand. Signed-off-by: Brian Johannesmeyer --- scripts/faddr2line | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/scripts/faddr2line b/scripts/faddr2line index f011bda4ed25..bb3b5f03f4ea 100755 --- a/scripts/faddr2line +++ b/scripts/faddr2line @@ -115,6 +115,17 @@ run_readelf() { ELF_SYMS=3D$(echo "${out}" | sed -n '/Symbol table .* contains [0-9]* ent= ries:/,$p') } =20 +check_vmlinux() { + # vmlinux uses absolute addresses in the section table rather than + # section offsets. + IS_VMLINUX=3D0 + local file_type=3D$(echo "${ELF_FILEHEADER}" | + ${AWK} '$1 =3D=3D "Type:" { print $2; exit }') + if [[ $file_type =3D "EXEC" ]] || [[ $file_type =3D=3D "DYN" ]]; then + IS_VMLINUX=3D1 + fi +} + __faddr2line() { local objfile=3D$1 local func_addr=3D$2 @@ -125,8 +136,6 @@ __faddr2line() { local func_offset=3D${func_addr#*+} func_offset=3D${func_offset%/*} local user_size=3D - local file_type - local is_vmlinux=3D0 [[ $func_addr =3D~ "/" ]] && user_size=3D${func_addr#*/} =20 if [[ -z $sym_name ]] || [[ -z $func_offset ]] || [[ $sym_name =3D $func_= addr ]]; then @@ -135,14 +144,6 @@ __faddr2line() { return fi =20 - # vmlinux uses absolute addresses in the section table rather than - # section offsets. - local file_type=3D$(echo "${ELF_FILEHEADER}" | - ${AWK} '$1 =3D=3D "Type:" { print $2; exit }') - if [[ $file_type =3D "EXEC" ]] || [[ $file_type =3D=3D "DYN" ]]; then - is_vmlinux=3D1 - fi - # Go through each of the object's symbols which match the func name. # In rare cases there might be duplicates, in which case we print all # matches. @@ -260,7 +261,7 @@ __faddr2line() { # Pass section address to addr2line and strip absolute paths # from the output: local args=3D"--functions --pretty-print --inlines --exe=3D$objfile" - [[ $is_vmlinux =3D 0 ]] && args=3D"$args --section=3D$sec_name" + [[ $IS_VMLINUX =3D 0 ]] && args=3D"$args --section=3D$sec_name" local output=3D$(${ADDR2LINE} $args $addr | sed "s; $dir_prefix\(\./\)*;= ;") [[ -z $output ]] && continue =20 @@ -305,6 +306,8 @@ run_readelf $objfile =20 echo "${ELF_SECHEADERS}" | ${GREP} -q '\.debug_info' || die "CONFIG_DEBUG_= INFO not enabled" =20 +check_vmlinux + DIR_PREFIX=3Dsupercalifragilisticexpialidocious find_dir_prefix $objfile =20 --=20 2.34.1 From nobody Mon Feb 9 01:45:48 2026 Received: from mail-lf1-f41.google.com (mail-lf1-f41.google.com [209.85.167.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A7855579F for ; Mon, 11 Mar 2024 20:40:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710189652; cv=none; b=uYZ9qrTE44WOFQ4fMvc7QQRJ4F/rTz1/i4De8ctRJN4PWhPILX2u7QwZ4yqm5i0oinSi6ToFHNte8p7huChDjnuz/f+hotH1YBAS8IsdyTQCuNAW+thSgx80Rqfbt+kkxJahtPVqxUJ+0Hy+GZkz29/sdU3zmwVYMBpUk5x9X3U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710189652; c=relaxed/simple; bh=hVTH5bLCNmcxmn1AYn7nqYIKnxCb2Ab5PWYay7BarHM=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=MOJAs5Xt8Z5MeTh99aVEeJtosLak5HR25Gs7HXl1aIF+pQD8S5CgpXlPCOcWBr8pV2nqJqTx+0pk1ffh2Z0oDhrlNCg5+bq49bXb+WoKZRoUYUwrIGvurDJUgmEVA+jmUBShSbsIwKu1lWFSuubg1gmC0iTidQMekidNaP3qmUE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WBh6vKUT; arc=none smtp.client-ip=209.85.167.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WBh6vKUT" Received: by mail-lf1-f41.google.com with SMTP id 2adb3069b0e04-513a6416058so2063661e87.1 for ; Mon, 11 Mar 2024 13:40:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710189648; x=1710794448; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=ftY3ceO7IaWaPhjW2mEyGYWXSld3NmgLxCpyOgogGis=; b=WBh6vKUTiT2gqu1cHdz2+VgBKIQzNRZkn04q0OChrL5HllEbRsEHfXKJZuE2FQ1KfP cB3rPmA2VKknu9++V22vb/df0msxxcpHwI+kHiqhxWIC3lb5+JlVJiwtVb7GtsXeFPDr 9k8RRjc/l0766Aa+tv4pymcUw+cidLm2BaaVp/6dAWzmi4qY6ADDc5WXQKvPXXJIP5Y/ Nf2Y63tgUqJnpcTZnTjawj7UhL+UvsxZf0bC5pNboY99g5aLSVPAkAwSaE0BWGKWewjh 5wjyn6X2s1YKOX+PFkf7IQlu6snCun2VW3ehcZK3afWSySdHXoK4ScXWJFJD/i4cRVbB opLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710189648; x=1710794448; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ftY3ceO7IaWaPhjW2mEyGYWXSld3NmgLxCpyOgogGis=; b=VOjYqiSCNXWM6wAaPxbjAb+ACiHSuPfH/KvKA8fV97oxfGWx1NiyQlD0hIepdkaNIS /biAQwZd6OJ/Sbi5fNjjNiA1ZUStithePaYqGopyGVUaXxlCXWy87GONryuNhzz1MY8z yIxn69Dw/Od7zSwHPSuvimJlIyjZOOgTQsyVMLDix5EMTpdgrI527RwJmwPNMWTm4klC jxgbVPsyLvvlXnHKa9HXW00bVIpnsvE5q5MY3Ru01zb+ILR407TnenkUg1E5KWRCt0jN N6Dg68DbLzHpEExGx3RKMQ72EW57NViBukVIFiJtJPeID4Nk2nu/14hsDSDoSFncoqPh wM4Q== X-Forwarded-Encrypted: i=1; AJvYcCWRrzG4z74Zh8g3fJMDgYrsg//5HKK6yRLRKqzqwJaRYh4AXUuTzl/h5LnwGepGxJE6CN97wqgbiDVBs6K52hSsbybEPhG2aV6IH2at X-Gm-Message-State: AOJu0YxeQ6JWa0RbY5PLZDhJwNa9nBzqfPSbjbc4BB5NmfuxQOBJPlSC /ykG9rALp1BHWNo8304j5SW4joS/mofWswX8hiQUfIDm0lqoLuvF X-Google-Smtp-Source: AGHT+IEuo38Nj/u+0ocEJLpw0I9lkC/BxLBa+odAtoJ4d87TGgThDX6RvVzq64ymJi8TTt5sFXXRig== X-Received: by 2002:a05:6512:49a:b0:513:aa05:9ca6 with SMTP id v26-20020a056512049a00b00513aa059ca6mr2545016lfq.49.1710189648428; Mon, 11 Mar 2024 13:40:48 -0700 (PDT) Received: from rex.hwlab.vusec.net (lab-4.lab.cs.vu.nl. [192.33.36.4]) by smtp.gmail.com with ESMTPSA id t14-20020a05600c198e00b0041312c4865asm14929355wmq.2.2024.03.11.13.40.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Mar 2024 13:40:46 -0700 (PDT) From: Brian Johannesmeyer To: Josh Poimboeuf , linux-kernel@vger.kernel.org, Brian Johannesmeyer Subject: [PATCH 4/7] scripts/faddr2line: Pass --addresses argument to addr2line Date: Mon, 11 Mar 2024 21:40:16 +0100 Message-Id: <20240311204019.1183634-5-bjohannesmeyer@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240311204019.1183634-1-bjohannesmeyer@gmail.com> References: <20240311204019.1183634-1-bjohannesmeyer@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In preparation for identifying an addr2line sentinel. See previous work [0], which applies a similar change to perf. [0] commit 8dc26b6f718a ("perf srcline: Make sentinel reading for binutils addr2line more robust") Signed-off-by: Brian Johannesmeyer --- scripts/faddr2line | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/faddr2line b/scripts/faddr2line index bb3b5f03f4ea..820680c59a39 100755 --- a/scripts/faddr2line +++ b/scripts/faddr2line @@ -260,9 +260,12 @@ __faddr2line() { =20 # Pass section address to addr2line and strip absolute paths # from the output: - local args=3D"--functions --pretty-print --inlines --exe=3D$objfile" + local args=3D"--functions --pretty-print --inlines --addresses --exe=3D$= objfile" [[ $IS_VMLINUX =3D 0 ]] && args=3D"$args --section=3D$sec_name" - local output=3D$(${ADDR2LINE} $args $addr | sed "s; $dir_prefix\(\./\)*;= ;") + local output_with_addr=3D$(${ADDR2LINE} $args $addr | sed "s; $dir_prefi= x\(\./\)*; ;") + [[ -z $output_with_addr ]] && continue + + local output=3D$(echo "${output_with_addr}" | sed 's/^0x[0-9a-fA-F]*: //= ') [[ -z $output ]] && continue =20 # Default output (non --list): --=20 2.34.1 From nobody Mon Feb 9 01:45:48 2026 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA90B56B85 for ; Mon, 11 Mar 2024 20:40:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710189652; cv=none; b=BSUEhP1y7y+TY/DU1SxZ7YLxYRspyelbP8a8sTKcx4BTlYHWbTQK76TnaK4keKeMEmQIJv+wvQrjIKEnpEjm1RFF/mYeLJ478UTTu+vOqKmuTZeEJlZtvtydYvO9vuSdvQ1/RSLL7qIKlAaVYHqxMaknwHripT0y1y7tU7EwF3g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710189652; c=relaxed/simple; bh=OahGgLwn1WruEUcGd+tWfxyPUOLyjubgiXZOePzWu+g=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ClU8y3XO7KfgkKnNrvd51gLL6OLmZaF89PiD1G1ltjEKsODn1Qk1gAhwjsBK0tzjxvkVgKkAI4+wwNcjbgIWj2p7IWs5TSKisqwRML1lnu2YvVUVDuHp6RzFAVG+6M41eZVtAu89FjBFVsOi0vj2UVVpEhpw5N1Pm425DDshngQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=NXRyM176; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NXRyM176" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-4132a4b0971so7225165e9.3 for ; Mon, 11 Mar 2024 13:40:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710189649; x=1710794449; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=sp2H2ET381pFnni6E350xwNwIeOypPbNT863TXJ2TvQ=; b=NXRyM176CV2yIqQl+P1MP+w0ukdvv5GIHwT/ytEacVpN0Md2oJ3vqfYr0VCFkb4q5B oMUzQfHhpEtbQJ/TXf9Yn43AIWJb6ggFY5cG+tcRcdjCQv7asSP59RzBTjXVc/RHfu/h 9K0NeslZMx/H2EWFun+OaAatRAU1eerDgQekR+b1LeCV2gVzz4jmeYk3+CWdqWG6VF7d ZtAM0HZgrgBD1/+s1AU2R5Npfe5paYOYBa3b+2vKwfLQuaFUzQB9i91e4A3iTOqL9S18 eXNcxFEX+BxGSK/lE1VbcI1l/LJ1MVFBBaimrKE+rlQXu//UgWU8sR8sFrFY7sc8/f3L zPLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710189649; x=1710794449; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sp2H2ET381pFnni6E350xwNwIeOypPbNT863TXJ2TvQ=; b=OHCVErhbMlDfUeDiRUO1uG5IqoecXMS2q4qIW6uTafUyRNuE4K0CVwyMwIosI7v2ad veVA3udRvn6MAa7AsI/zvMGg1cf9rb6FNP8eagzoaiCIKAlDeJbZTlTZh2f/0d9n/Nnw etK5jWhjaeKFJg6vEErSUTSeR4s2soKJ0pZEDbZVn+0ihZRMtoj9Vei1z389iSB4UkPu XO0BZSo5rgjgX0+1kyEVR4yhPETZjFm4976OI8Beiec5Q2OQ6z6ZFL2itZ+1d7oqp6Ih T9kYmbryPzC6nQfQM4RtfAUGviAsU3Mou3VJ2W3kEh7lAMqmJPct8NTMyMi7MyupFLjG M9fg== X-Forwarded-Encrypted: i=1; AJvYcCUOqj7tf3cBYuI4EKnvUjgCRE7ujixMTsep8YZtygpp5pqBeIsPYmuBd0Mmv1zejluMTAVMQ/A4LPw4g1FDYUdlkulf0s459DcFsXx8 X-Gm-Message-State: AOJu0Yxar7F429iV7q5zQzICn5S/VqOs1Eiy7Z1waTu+CscPIHGTRY8W cH/OGOf3Bn8JAYmHhwZ3QERF0oPe346kRO4OssT+mgf+L3BwqJ2Q X-Google-Smtp-Source: AGHT+IHRrjPPv/xgojeoeEzLF4rYCcuxVrt70i875S2vX54csiZ0R5lKjsdvEP4YCfYUCbXPQCcysA== X-Received: by 2002:a05:600c:3c9e:b0:413:c1d:af44 with SMTP id bg30-20020a05600c3c9e00b004130c1daf44mr6925185wmb.41.1710189648903; Mon, 11 Mar 2024 13:40:48 -0700 (PDT) Received: from rex.hwlab.vusec.net (lab-4.lab.cs.vu.nl. [192.33.36.4]) by smtp.gmail.com with ESMTPSA id t14-20020a05600c198e00b0041312c4865asm14929355wmq.2.2024.03.11.13.40.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Mar 2024 13:40:48 -0700 (PDT) From: Brian Johannesmeyer To: Josh Poimboeuf , linux-kernel@vger.kernel.org, Brian Johannesmeyer Subject: [PATCH 5/7] scripts/faddr2line: Invoke addr2line as a single long-running process Date: Mon, 11 Mar 2024 21:40:17 +0100 Message-Id: <20240311204019.1183634-6-bjohannesmeyer@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240311204019.1183634-1-bjohannesmeyer@gmail.com> References: <20240311204019.1183634-1-bjohannesmeyer@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rather than invoking a separate addr2line process for each address, invoke a single addr2line coprocess, and pass each address to its stdin. Previous work [0] applied a similar change to perf, leading to a ~60x speed-up [1]. If using an object file that is _not_ vmlinux, faddr2line passes a section name argument to addr2line. Because we do not know until runtime which section names will be passed to addr2line, we cannot apply this change to non-vmlinux object files. Hence, it only applies to vmlinux. [0] commit be8ecc57f180 ("perf srcline: Use long-running addr2line per DSO") [1] Link: https://eighty-twenty.org/2021/09/09/perf-addr2line-speed-improvement Signed-off-by: Brian Johannesmeyer --- scripts/faddr2line | 52 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 7 deletions(-) diff --git a/scripts/faddr2line b/scripts/faddr2line index 820680c59a39..48fc8cfc80df 100755 --- a/scripts/faddr2line +++ b/scripts/faddr2line @@ -126,6 +126,48 @@ check_vmlinux() { fi } =20 +init_addr2line() { + local objfile=3D$1 + + check_vmlinux + + ADDR2LINE_ARGS=3D"--functions --pretty-print --inlines --addresses --exe= =3D$objfile" + if [[ $IS_VMLINUX =3D 1 ]]; then + # If the executable file is vmlinux, we don't pass section names to + # addr2line, so we can launch it now as a single long-running process. + coproc ADDR2LINE_PROC (${ADDR2LINE} ${ADDR2LINE_ARGS}) + fi +} + +run_addr2line() { + local addr=3D$1 + local sec_name=3D$2 + + if [[ $IS_VMLINUX =3D 1 ]]; then + # We send to the addr2line process: (1) the address, then (2) a sentinel + # value, i.e., something that can't be interpreted as a valid address + # (i.e., ","). This causes addr2line to write out: (1) the answer for + # our address, then (2) either "?? ??:0" or "0x0...0: ..." (if + # using binutils' addr2line), or "," (if using LLVM's addr2line). + echo ${addr} >& "${ADDR2LINE_PROC[1]}" + echo "," >& "${ADDR2LINE_PROC[1]}" + local first_line + read -r first_line <& "${ADDR2LINE_PROC[0]}" + ADDR2LINE_OUT=3D$(echo "${first_line}" | sed 's/^0x[0-9a-fA-F]*: //') + while read -r line <& "${ADDR2LINE_PROC[0]}"; do + if [[ "$line" =3D=3D "?? ??:0" ]] || [[ "$line" =3D=3D "," ]] || [[ $(e= cho "$line" | ${GREP} "^0x00*: ") ]]; then + break + fi + ADDR2LINE_OUT+=3D$'\n'$(echo "$line" | sed 's/^0x[0-9a-fA-F]*: //') + done + else + # Run addr2line as a single invocation. + local sec_arg + [[ -z $sec_name ]] && sec_arg=3D"" || sec_arg=3D"--section=3D${sec_name}" + ADDR2LINE_OUT=3D$(${ADDR2LINE} ${ADDR2LINE_ARGS} ${sec_arg} ${addr} | se= d 's/^0x[0-9a-fA-F]*: //') + fi +} + __faddr2line() { local objfile=3D$1 local func_addr=3D$2 @@ -260,12 +302,8 @@ __faddr2line() { =20 # Pass section address to addr2line and strip absolute paths # from the output: - local args=3D"--functions --pretty-print --inlines --addresses --exe=3D$= objfile" - [[ $IS_VMLINUX =3D 0 ]] && args=3D"$args --section=3D$sec_name" - local output_with_addr=3D$(${ADDR2LINE} $args $addr | sed "s; $dir_prefi= x\(\./\)*; ;") - [[ -z $output_with_addr ]] && continue - - local output=3D$(echo "${output_with_addr}" | sed 's/^0x[0-9a-fA-F]*: //= ') + run_addr2line $addr $sec_name + local output=3D$(echo "${ADDR2LINE_OUT}" | sed "s; $dir_prefix\(\./\)*; = ;") [[ -z $output ]] && continue =20 # Default output (non --list): @@ -309,7 +347,7 @@ run_readelf $objfile =20 echo "${ELF_SECHEADERS}" | ${GREP} -q '\.debug_info' || die "CONFIG_DEBUG_= INFO not enabled" =20 -check_vmlinux +init_addr2line $objfile =20 DIR_PREFIX=3Dsupercalifragilisticexpialidocious find_dir_prefix $objfile --=20 2.34.1 From nobody Mon Feb 9 01:45:48 2026 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 031D257315 for ; Mon, 11 Mar 2024 20:40:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710189653; cv=none; b=tjv1oKa8BataKBjOEaXMfirjaYj2lYmUA4WLgUGXVSlNGUBJrs1ui6j2stI4vkSkB4EHvqgbRh0DiN45TbAr4YtqRJxyAJtR1QPyPpRRBXQoFwLtos7fxjPUI8VWyWbihgCyDgL0NqDmDENwUXgUrmjzn9gRSIGG9Eowx7cAw1k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710189653; c=relaxed/simple; bh=z1eiWF00ulFGIhwzo8vX7fAaQ7Gt/3wwViaVAn8v6Xs=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=g9QoJtgAITYEq9+sZaybD2TuQqdBXFGRryf9+1p2KHkiQZDcQS1jvoudi4j2LrXh8YzhPDCMOTWhXHF5z9bZwoCNtdpAgoqeu7HjxcqOXU1Lt8bvhstXHuakI+csiKMdSg1fw+2LWwOfr/MHrB3TCfSF1tWfTkWLn81Zb2irgHc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WV/Nh38t; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WV/Nh38t" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-4132cc37e21so6994845e9.0 for ; Mon, 11 Mar 2024 13:40:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710189650; x=1710794450; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=H4gf5zJ8CKFjRYmrei7za8lmpK5Lzx3+chgGCjt8WGo=; b=WV/Nh38tBykT/JicFi0KacWSCtk6fkOOQttIMrbJwVNy+oa8ehBrNfRe9ZdsKAnGem ngM+WVZtvXsJglUPPOOeSfHBnpGMQzOnApiodrmPv88jsIAfa7H6IIMRbf+wCPcK9L6d IAEd45MeW4z+YPTyvd7X0cdDO7DHLaYXg3OgiVgn1hTRvqpsyDXOqFqaCdkWyQoxjdaC gVdR3JOjGHhx3L4fVzdAKHPFieJfEGRuDsTkOHafHMWQ1WnGOt2kieNHXSXMXwIwBDde WyofNlxeAV61Z4mDUqq6sLdVvlPXAV/xAqn6Qu127Nhz0RRSA3DaI4ZUKgjH2ktZLwLz 4rgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710189650; x=1710794450; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=H4gf5zJ8CKFjRYmrei7za8lmpK5Lzx3+chgGCjt8WGo=; b=kv4zO4GgPBX9dODYENqOT4KoeSV6UFBGQQceRtw0ciqLvCjSvmKDT4Q1CAANe0kDbx iipdJlrl8FP0GINZULiXCIH5Ej9Sjj+tA47m3jLk2jJssFKcisWHoBBjQ32jYFFTGeNk lH9XEmTTtdCcQlogRCr0ra+Lcw1vLUAuBCqUcTmpqDJmEdiuR0yrSxqpDz2odvDCzHRm M9mgrNoEJgjkXpds77/CbrxgI8ZMwBRyakDWa07LUqT6hLs8y2NeKtKEn/5X3z8bd/ZI K1Lf7Hz5oLEe/b9JqE8xvHCA7Stlj09fDXIBP1LzVrpi56+gNiL7J3QfwZUMyBQU+l9b VT2Q== X-Forwarded-Encrypted: i=1; AJvYcCWW04Ifx0it5aSmRrOfwn5wpeoti45FB3PRQHNIbvXernSk0oqc6vx0SIgh1mIY8ua79BTxRyG6YmulXIrXjcbDHMCCImLIvVW8Mi19 X-Gm-Message-State: AOJu0Ywzy/9q2zvN9x8b5G11AIrDtFj22mnZvGDxJyfnWiHVpVAO4yOk fFRwBT1KM+QXWP0baNCrixxLaRta0ewfIijnJH68RCVOb92vn0xnshsimVZn75c= X-Google-Smtp-Source: AGHT+IFmXXxuNdfoeWL7LRFZsvGA+WyC047fJGUlZv8+wxSs1WHgZrjKSl+0gbgaXFowrjsiD0v/ow== X-Received: by 2002:a05:600c:548c:b0:413:3110:2d06 with SMTP id iv12-20020a05600c548c00b0041331102d06mr555348wmb.16.1710189650396; Mon, 11 Mar 2024 13:40:50 -0700 (PDT) Received: from rex.hwlab.vusec.net (lab-4.lab.cs.vu.nl. [192.33.36.4]) by smtp.gmail.com with ESMTPSA id t14-20020a05600c198e00b0041312c4865asm14929355wmq.2.2024.03.11.13.40.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Mar 2024 13:40:49 -0700 (PDT) From: Brian Johannesmeyer To: Josh Poimboeuf , linux-kernel@vger.kernel.org, Brian Johannesmeyer Subject: [PATCH 6/7] scripts/faddr2line: Remove call to addr2line from find_dir_prefix() Date: Mon, 11 Mar 2024 21:40:18 +0100 Message-Id: <20240311204019.1183634-7-bjohannesmeyer@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240311204019.1183634-1-bjohannesmeyer@gmail.com> References: <20240311204019.1183634-1-bjohannesmeyer@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Use the single long-running faddr2line process from find_dir_prefix(). Signed-off-by: Brian Johannesmeyer --- scripts/faddr2line | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/scripts/faddr2line b/scripts/faddr2line index 48fc8cfc80df..1fa6beef9f97 100755 --- a/scripts/faddr2line +++ b/scripts/faddr2line @@ -85,15 +85,17 @@ command -v ${ADDR2LINE} >/dev/null 2>&1 || die "${ADDR2= LINE} isn't installed" # init/main.c! This only works for vmlinux. Otherwise it falls back to # printing the absolute path. find_dir_prefix() { - local objfile=3D$1 - local start_kernel_addr=3D$(echo "${ELF_SYMS}" | sed 's/\[.*\]//' | ${AWK} '$8 =3D=3D "start_kernel" {printf "0x%s", $2}') [[ -z $start_kernel_addr ]] && return =20 - local file_line=3D$(${ADDR2LINE} -e $objfile $start_kernel_addr) - [[ -z $file_line ]] && return + run_addr2line ${start_kernel_addr} "" + [[ -z $ADDR2LINE_OUT ]] && return =20 + local file_line=3D${ADDR2LINE_OUT#* at } + if [[ -z $file_line ]] || [[ $file_line =3D $ADDR2LINE_OUT ]]; then + return + fi local prefix=3D${file_line%init/main.c:*} if [[ -z $prefix ]] || [[ $prefix =3D $file_line ]]; then return @@ -350,7 +352,7 @@ echo "${ELF_SECHEADERS}" | ${GREP} -q '\.debug_info' ||= die "CONFIG_DEBUG_INFO n init_addr2line $objfile =20 DIR_PREFIX=3Dsupercalifragilisticexpialidocious -find_dir_prefix $objfile +find_dir_prefix =20 FIRST=3D1 while [[ $# -gt 0 ]]; do --=20 2.34.1 From nobody Mon Feb 9 01:45:48 2026 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F03657861 for ; Mon, 11 Mar 2024 20:40:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710189654; cv=none; b=hDtBoxf7/VHd59Xrb3Ii85zBdbBzMK1aHTY3kZ4jdhC4rM1c6Ljg/7m00V0TCMZXInnIm8tIO+5H9GFoNxYZ+VtN6VW0+eiwaPKZf4wcCyiIeN0555UTHM+9fUHsVqA7jjh+LcyFr0NURQDPcQkeA10cvaY2eRyCqE49T0DFXpo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710189654; c=relaxed/simple; bh=l6+vGocoJjKBZ6LjvyKw3EB2dMWQhPWbCAUhatHdqDE=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=k5T9qxUKLpg+9gjaVQaq4D8J5c50rdQgXM/lvGH2Sh4QVzrhDEPlLrb/62d1gfc0wTLRwQalDGJl/Lz/jq9JbSS4anWOIa21kCPoMHpX5TzMlldVaadp6q5NNxLVtB9TT1uAp5uYYA9YHiNdAzzLTqi6yrs6obaT5CJBIRCxOUE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=met2E4kd; arc=none smtp.client-ip=209.85.221.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="met2E4kd" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-33e8f906f3dso1887298f8f.3 for ; Mon, 11 Mar 2024 13:40:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710189651; x=1710794451; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=Hysh3fJNhJmvp1Mvqbl3AfXFa72LgQZtPG4AlifhcO0=; b=met2E4kdu7Dtzsz0EKXTMl/JmsybqY7YxI3Tu85dHRsR0t41/YZoNVpdwZUEp1JLGZ o8gYjn0bafuG/2e6hTtgi+aWrXDRyInawILP6lshtqyTPzln8MsI8YlO5+d6hkC/jv6D y/ouxqsi0jEqFHPkoaaULOLh/IHm55cz3sOdkD3mnPMeBycVN5P7hJXri9aCGWxgtlfX Jo2Ryk2WUF/o3Zf5cD/x2hR/7O/teFepxp82oFfN3PEx/p6xQ2QHNKUQu7cpHEmsbROO ej+y5eY3ItEURlu/Krkj91OnTeRlQYhyXPfnr5X8Bff/d9CT6ebQw7Z0vbX2WU6TbYUg uShQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710189651; x=1710794451; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Hysh3fJNhJmvp1Mvqbl3AfXFa72LgQZtPG4AlifhcO0=; b=remTTVgRssRUkJQcu632rN42/pTdfuYNf8mfcOLk6SwnfxIgCrzIfPt5alkXBd9f3q plSl8M/OL+DOnCpY1VP6eXKGmfe53Zzd8YuW4kRoundxbTPUgPGnXFov88wQ7GU3+DXe hF10iIvdgyDEfLNgv7bjMDlBYNU+QMbVv/BVnV+DTGJLEYk+ygT0g59zVdoPTyyw3M+S Fhi7cxvzFG/6baL9syMRzYyxIj3dZKaFwqnTFkYzYA23Vuwc+F5hz4vju5/NCSBdiD3B q+YfeN5iDJmaVB4+62ytZYskww/m0dmaFhQx8gueRlqyxgOluPSnbvwu87EgXQjQcITn HKnA== X-Forwarded-Encrypted: i=1; AJvYcCXnoocIj6yH2zBVtQUjlEetscb7g30b02UfCHtI+6MSZnYuda9ARw/pa+rkWCS/j1HclcbEetV203cK3R9NqK40yVA8HzNd/3s8ob7w X-Gm-Message-State: AOJu0YzF7IRMjjc31LI9Xcb4oOvlDsLR95LljtuxnA33tnKyjqPFuYNS XzlCuny3a39NAnnDuqZ22mFJ/JONdsCY0uTuk7pwH0lDA7lES8uhL9fN0Tj0WBs= X-Google-Smtp-Source: AGHT+IGY2G4F8cTa0D/fyd+ZIT6Qbr8F168RDRZDJAMNFqzAzGHgWGWYgTpGdTGLt80U7pXeR2kYjg== X-Received: by 2002:a5d:5012:0:b0:33e:1560:71a8 with SMTP id e18-20020a5d5012000000b0033e156071a8mr5271323wrt.7.1710189650835; Mon, 11 Mar 2024 13:40:50 -0700 (PDT) Received: from rex.hwlab.vusec.net (lab-4.lab.cs.vu.nl. [192.33.36.4]) by smtp.gmail.com with ESMTPSA id t14-20020a05600c198e00b0041312c4865asm14929355wmq.2.2024.03.11.13.40.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Mar 2024 13:40:50 -0700 (PDT) From: Brian Johannesmeyer To: Josh Poimboeuf , linux-kernel@vger.kernel.org, Brian Johannesmeyer Subject: [PATCH 7/7] scripts/faddr2line: Check only two symbols when calculating symbol size Date: Mon, 11 Mar 2024 21:40:19 +0100 Message-Id: <20240311204019.1183634-8-bjohannesmeyer@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240311204019.1183634-1-bjohannesmeyer@gmail.com> References: <20240311204019.1183634-1-bjohannesmeyer@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rather than looping through each symbol in a particular section to calculate a symbol's size, grep for the symbol and its immediate successor, and only use those two symbols. Signed-off-by: Brian Johannesmeyer --- scripts/faddr2line | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/faddr2line b/scripts/faddr2line index 1fa6beef9f97..70d5a4602a92 100755 --- a/scripts/faddr2line +++ b/scripts/faddr2line @@ -252,7 +252,7 @@ __faddr2line() { found=3D2 break fi - done < <(echo "${ELF_SYMS}" | sed 's/\[.*\]//' | ${AWK} -v sec=3D$sym_se= c '$7 =3D=3D sec' | sort --key=3D2) + done < <(echo "${ELF_SYMS}" | sed 's/\[.*\]//' | ${AWK} -v sec=3D$sym_se= c '$7 =3D=3D sec' | sort --key=3D2 | ${GREP} -A1 " ${sym_name}$") =20 if [[ $found =3D 0 ]]; then warn "can't find symbol: sym_name: $sym_name sym_sec: $sym_sec sym_addr= : $sym_addr sym_elf_size: $sym_elf_size" --=20 2.34.1