From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) (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 0B78F1E98E3 for ; Thu, 18 Dec 2025 19:38:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.181 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766086696; cv=none; b=pslbtMywNzu0lCs1uqeLmnFnKSg5XF9J9TDNCO4W40qzlslU5wngvaShwmwevnGezjdsIZcrk4X7zDmI5EkRn5o08WaOe1ipCiaGLPXjmuIXbTPT5ZarpGAGTlHZGFTD8pyeZS/XaMeMlmNzXAIz9QBnHTRxpUwPwXPw8JJVxeg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766086696; c=relaxed/simple; bh=5h0AowYEtSWnYJc+RxiBXfZsRExtzQ5Sx5ovC4kUWcA=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=LiEIGXf3oyixkB3mOz+WmUU+xWLJ818OqeKUK15CZOupYZDHfXzw+VWt8Gi2KSsH1puxjhv+Xevd7EBHQxrZS26d2Y908xEu/d5tIWByAW9p18d59p4cNp2/YXGK8zMo58RziC9qrTBj/HhLAOh5h4gTjmob3EUJufENAmEdiPU= 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=d8KUGsI2; arc=none smtp.client-ip=209.85.210.181 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="d8KUGsI2" Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-7b6dd81e2d4so1122709b3a.0 for ; Thu, 18 Dec 2025 11:38:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766086694; x=1766691494; darn=vger.kernel.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=OBzN6e1JmHzI9Ntr8wqKmXMkJ04vwDzSW2NsDrN2KXY=; b=d8KUGsI2JuqeYCYNKFSSu9KQWXbCFPiwNhxrOx3gCYKtRfp/cJAjYaEkFNBZhHb4pa QxzSfQDuEvdCc6UHMSUXztRp5QriQB677EWRmZub76TOYzkyJ+QRN45Hgpf8deInTHYY YdQI/DoAR6FR3ryDOeLvX3VrHLk0dQx4pkvMzzkuhHNJBbBgvFuPm6ext217e2HKB3Db JHFOkc/n9zVnNdabg8e7nZQ6xRZ9WlrsxWIHVT1vfBSWLcQpiQDkacVk3JykIa85nNlB 8pe38OMT2AYSVLCsLsFaCYoqgNn7rDGh+oFu6Nk0oCwezLc2nz0zTZv3sPHfExMsbJiO Qqlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766086694; x=1766691494; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=OBzN6e1JmHzI9Ntr8wqKmXMkJ04vwDzSW2NsDrN2KXY=; b=NZVh0/jDzG0hJy9NM3KRbgs6IMlk2XVbUbXvItyVywOSppQj5JVWWJ3aMTo79E/6cZ 6bJUncDTn6xMD5PFWt2fD9kB4Nmo75n5cCjvR+/u1KOsDE/Az5XGMY7iECuFeNiJPcnG 1lkP8vUIhffYCc/bOROY/5Ica7nShx+kqwfl8e08vnMU/1P2jmR3g4CQVRndmAQ851D2 tPFHUkJYozVtUh0S+LCa6bN0M/Rt6hboOdq4U57wRzWUvELufIh9SkHfAZ8K1hkAsODP pYT1gt3en+fGyXar/jgKTkoyp23pDWtM4TDvfXv5OVZ49QiAvfDijfgBOMPOtzax6vjZ K2Rg== X-Forwarded-Encrypted: i=1; AJvYcCWZYC744w88nnyP3kG1gquAYDKyP+EKOYT41lcJ6DVwy+ep78SEOrKRsDdF+dNvH+gnXN/KzG7C3U2wi0I=@vger.kernel.org X-Gm-Message-State: AOJu0Yz27II1PDVOihN0lIZK96tDVShdyhE1OLCMJPYjVLhSw102STq0 +AY44y+5NNoLa0obIzJBTeXHzbFr2zw0o6auoHPIhxnPU46QRsGZx9YZ X-Gm-Gg: AY/fxX62ESwRbA4or1nCDEciFu+zH/eo0k+lTpbrMwdQbZ85X3WPWq2DXmWumslymIV 1pR3Kkr2CQy7SxTk0gBdxRZ4SH+RRoIhFVV7nKSigDQx/q6BhhupnM+5ZgjbhhkdiZkBtTpNb6k Y3ED845cJoS3mhe1IT4Ga1dqXRJH5820sY4qyyO4t6NNVsxyHfZr+PL3ZgatQ5xnnPmcJgjW6aH pEBeTWtTwZykRr/EJ8g5AllrM/xN8MMtCgxD4RQY/HROUGbBs7qGigJMgCkZMzKbwF7SFq0ZfDm O00/CKKXj6SOJmAHUr5SaAxQozR+WbCLhMdChwzeEsRw38oEBCmb0Q5RIkZxAKRRsFRlm9wLGZn mmEXPy3mYHUffHVx/s6ieSbv/Atwv82skFV9+DhvFqWrH2XVegn38d9dHlANRVGh5+KPJx0i5te MHvQ088e97mJQxdDRMWnCMzF3DAv99R4j4wr2N X-Google-Smtp-Source: AGHT+IGc5WkRdcmid4aFhKtQxoJVAZauOcrQ5OraZEtCkKY6m/Dwd0JR2NvgGpX86zBPDlb3pofYZA== X-Received: by 2002:a05:6a00:4c09:b0:7a2:84df:23dc with SMTP id d2e1a72fcca58-7ff64ecc3a7mr453656b3a.28.1766086694331; Thu, 18 Dec 2025 11:38:14 -0800 (PST) Received: from ?IPv6:2a03:83e0:115c:1:d912:2088:c593:6daa? ([2620:10d:c090:500::7:e642]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7ff7e589b0csm102950b3a.56.2025.12.18.11.38.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Dec 2025 11:38:14 -0800 (PST) Message-ID: <1970cb006e56500c8937e62a8a79042990fb152d.camel@gmail.com> Subject: Re: [PATCH bpf-next v10 05/13] libbpf: Verify BTF Sorting From: Eduard Zingerman To: Donglin Peng , ast@kernel.org, andrii.nakryiko@gmail.com Cc: zhangxiaoqin@xiaomi.com, ihor.solodrai@linux.dev, linux-kernel@vger.kernel.org, bpf@vger.kernel.org, pengdonglin , Alan Maguire Date: Thu, 18 Dec 2025 11:38:12 -0800 In-Reply-To: <20251218113051.455293-6-dolinux.peng@gmail.com> References: <20251218113051.455293-1-dolinux.peng@gmail.com> <20251218113051.455293-6-dolinux.peng@gmail.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.56.2 (3.56.2-2.fc42) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 On Thu, 2025-12-18 at 19:30 +0800, Donglin Peng wrote: > From: pengdonglin >=20 > This patch checks whether the BTF is sorted by name in ascending > order. If sorted, binary search will be used when looking up types. >=20 > Cc: Eduard Zingerman > Cc: Alexei Starovoitov > Cc: Andrii Nakryiko > Cc: Alan Maguire > Cc: Ihor Solodrai > Cc: Xiaoqin Zhang > Signed-off-by: pengdonglin > --- (But could you please fix the btf_compare_type_names() prototype?) Acked-by: Eduard Zingerman > tools/lib/bpf/btf.c | 41 +++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 41 insertions(+) >=20 > diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c > index 2facb57d7e5f..c63d46b7d74b 100644 > --- a/tools/lib/bpf/btf.c > +++ b/tools/lib/bpf/btf.c > @@ -899,6 +899,46 @@ int btf__resolve_type(const struct btf *btf, __u32 t= ype_id) > return type_id; > } > =20 > +/* > + * Assuming that types are sorted by name in ascending order. > + */ > +static int btf_compare_type_names(__u32 *a, __u32 *b, const struct btf *= btf) Nit: still no need for 'a' and 'b' to be pointers. > +{ > + struct btf_type *ta =3D btf_type_by_id(btf, *a); > + struct btf_type *tb =3D btf_type_by_id(btf, *b); > + const char *na, *nb; > + > + na =3D btf__str_by_offset(btf, ta->name_off); > + nb =3D btf__str_by_offset(btf, tb->name_off); > + return strcmp(na, nb); > +} [...]