From patchwork Tue Jan 18 20:47:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 50188 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0468F3858032 for ; Tue, 18 Jan 2022 20:48:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0468F3858032 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1642538935; bh=zwHj2tSYL/9Z6MYbd6wuoez0JgGQ3svYZ3JIMQy6xYE=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=wuq0T8RUz8xMh/ibJwYXPAgXQ3L1CzFRZU3AKVPH5KWoOcxGK6GTqB+Yj4gZL0TbL mG2T/QlVirEOGGcrthP4QoyRymfZazYtX95pt1tUUUoyUJ9VBCt7GqFHcnx3AsnSqE OHof2t8/vZDfOKNVizrFbNx4KDFs9406LoSB9544= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 821EE3858D39 for ; Tue, 18 Jan 2022 20:48:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 821EE3858D39 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 20IKEZBP013783 for ; Tue, 18 Jan 2022 20:48:22 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3dnc52u4yh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 18 Jan 2022 20:48:22 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 20IKKOWR096144 for ; Tue, 18 Jan 2022 20:48:21 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2171.outbound.protection.outlook.com [104.47.59.171]) by aserp3020.oracle.com with ESMTP id 3dkp34svug-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 18 Jan 2022 20:48:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TxYmPEOcLpcnJ4ggXl5FHPb951sJ1Q89TduEx8y9mYaOaOxJbSps7qbVjEzxMimcUJt+VC2KV112kg5SUwuZj4I4cxQKeMVaIvh6sKRv9rjHxlHATfX+53AdCezhgRy6Hitxz7K9OvTyW09lQKN/aZKHHG1cVBVhUb5xjemU5MPuhcMYXGtsSdz63cojELoKJz9k9FB9g9mEfGPMjm5lPSxI7xPmX68A4RI0Pt1JwbpAgK+RLcbfe9QWZCzyobqaeOhDTKlLuWwBwid+kJUJfrKTZ4Ds4QXwvJnv7J8TVxq7DNoJyknJFYJgi/KC+WqL994TB442WrsGyMe/UdRrkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zwHj2tSYL/9Z6MYbd6wuoez0JgGQ3svYZ3JIMQy6xYE=; b=Hnxt4DmaSd5MKlQSFQChS8zGLyDrYHCYZCBAOUrPP88r56MRCTyCfbnwHDq54CbJWcxQXXXhraWQildgxIeN297RkIVufiNZ/OU7kR8yOMl26Yc05NYtir4xGpd/T9BmL/Gy1dpN8g9ZTVDQ+LrKzXOfvdHv2Ob3xKsMWAIn+D7K7B1tLgg/V6WByT8m88qeImrLcJHYyCex5h1Nl4SEFWsLLILK0y30szLfjiKUEPSFPZ4JrGFDbv8XdintlZssy09AgBUVcZox648eHyQopQYHbpieXpF5bsok7TO/FqzFcsbfPYGieKYj3Gv2hSO7aNSC75JFRHuvSfZaWuX21A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none Received: from SA2PR10MB4458.namprd10.prod.outlook.com (2603:10b6:806:f8::24) by BYAPR10MB3176.namprd10.prod.outlook.com (2603:10b6:a03:158::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.10; Tue, 18 Jan 2022 20:48:17 +0000 Received: from SA2PR10MB4458.namprd10.prod.outlook.com ([fe80::7cc8:3113:5f58:eed6]) by SA2PR10MB4458.namprd10.prod.outlook.com ([fe80::7cc8:3113:5f58:eed6%7]) with mapi id 15.20.4888.012; Tue, 18 Jan 2022 20:48:17 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH] bpf: write CO-RE relocation record size only once Date: Tue, 18 Jan 2022 12:47:14 -0800 Message-Id: <20220118204714.6682-1-david.faust@oracle.com> X-Mailer: git-send-email 2.31.1 X-ClientProxiedBy: SA9P223CA0022.NAMP223.PROD.OUTLOOK.COM (2603:10b6:806:26::27) To SA2PR10MB4458.namprd10.prod.outlook.com (2603:10b6:806:f8::24) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4d86b5e5-1f6e-459c-6925-08d9dac3daba X-MS-TrafficTypeDiagnostic: BYAPR10MB3176:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: IcpVcMxkxGBVRpf1ybizW3q+EhhykCgVhNj5/HpDQyKApcSTpdAp5D5RmNFKgTFa7gqKRtrBC61JBuY7OUI8otJBxjManhIygpW4WOqADY2RWcXSs4euXT6vzXLr551neAOtAL7qMw/g/mar2UwxxdULG7n6++P9Hipx2eHMqloA1piKt0oZuLICm943WqvujnRyMj8Nnoahe7/ZLhbERt4Du/4iD0WbGASRwGL+99TmGK34H4WT5fzAfLy47iia77+BaCUIKH1CwyQotXZTX/m4F4LrcDf5ki/oMggeZDoL+cZbxzjCxYtm1ds8EY93Yz2iNzOtHB3mafVAmJRJ0H0TRGf71lpfUOmsRjdppNbRyjAT+OBoHlnqKqg0OYBg0VwJnmwUVdLje/6yeYBAuOvM/e2+ZG6c88TlbsLT9WBq/TRM2QNfuvzMWRHOeSvUMVfNY31VKqU+/RSfLJfymuefHjnrER3rvw+ZuXmZS+b4U6awXHS/vFQJVYYyU90oFSaF0Kjjh2UtBVT7bNUhzYLixuYugLeNvkEmejqq65xGWQh8B+fQ0FY8AJlIO8HwMK1i7M/b4G/dmitZw6jgv+iJzGW/L2Mmc2cq4mZxqDlHfn+caibIDQ+g9YsuKMrLtAzxvSNMo/c4V1c6AAY5o3sp8tgR2doRvKh3oFAN3knPZJhB53R3pUhgquz/RCnyvX7LHPg49lkO8Ejq9AlV1UmRnqSAL5dfXB8dWoad8Hc= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR10MB4458.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(84970400001)(5660300002)(2906002)(1076003)(8676002)(83380400001)(44832011)(66556008)(8936002)(66476007)(6916009)(316002)(107886003)(66946007)(6506007)(6666004)(6512007)(38100700002)(36756003)(52116002)(6486002)(86362001)(508600001)(186003)(4326008)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: YuK+JRdUjwirNtefJvf33XKBaP9Y3KYdRJAUb12uGTf5nphtNzj1FdGLbD3kI4gnz2KdbUMp76EEvKsuH51aVEEbCBHUWYDgp2lv0Aofu35lAgCAKWpKDPRQWfvJSGuOnkFAo6aKWj8dtzoRk4Y3RDZ0nVO84JKWlEpToVVb7doDE8ty8MEOjoTrt/Cf05j6mpvxvQr6AP6GAvhVynzZ8GIyr4+TlZ8L1j3KEA4Ra/Dhux7yL1u8JxNZf9wAZ0rJ2756FFZv4CWsJMJrejGl+xk+21gRI86b34zLzMHKx1lM8YyyKglPF23xlM+5P5VOhDOHr98A6wdfhtNxxjgfm8fS1K5TYdQ8VYhisfKScyK7FV1Xj0J1It5jnKbcHPOexlH1tEbbcA7w9wdcnpI9dc8Cq1k0g0wjU9aTraCNaqb9utv3CwcBHZ2C9AZTTNITJeDD7aTDk5+BpbTKD1EFZ0mQ/yU0h9OQyyCaaSwaLZfOwNMzlnvWKqQB9309NQXR7/l8Dw/Q9t5yTsnXwIHyckXZ9ol2a92f4abO8UyR/hI2r5Ig3VQ4pHpBvxGXhGOnoy71D6JPSyCP2ooXPV1zkEAWMpSNqV1P/qsWl0X4qx7t2j19k2Ou8VAEpuc5772mYUQTxniwH+rO2/cdwxYvEyzsAUX9jdSg7RlLlR9F9ujGAYaG2QI06Umh59fIpD4aTVo8itk4kFwTmof01UCiOMAfwnI0q2+QCyv3k3h+OugP/GcAlX6LV5m/wpqh+i3FadndvwYbZP93AmfMKwfrDki607kDzs3RzKTW0tu9zALH2WTuI5DrAvITaDoX5IERjU45XfP1VqY0KJYskF+e+vLRccz5j3uk0WuGrOT4v/F9miOdZLbYi120YuAadEwXsy9mKYs9Jwzcq1VMReHDbyjkpSDVMJzSvhjg1i4GPSbY7fiXTOG2J/0ydiVGROSAN3M4cKW0f5sdTtQ9HNpkNRAHY8GtTT2SiObW75smQe3fSjFvuxfr8XpfFculJzDvp0jEJUvMH2aGPLVn7tgzU3/hU8tVidfrvIJDMC2AppQCJf9a3JylIuZwjxqI9OtqEyjVOSppa6T/YAbvBlV2S5SptufDXugqRyvPOUgO4afGI64zYP2l4aIHldAguvmhWbHElR5dali51k/X0zD1/gVtN3g1WK3hFmQmfLW4o4FY4NRm083T1cS28iArHRYed1sgv2S2u/86LAG9qOn7A6TFwdN5VfiBhbS+gUbe+eC1iHYOVD9hTSe3snzaymtWqDAQhUvGz9xHFK8jZKbrGF+xX9rC59UKtJhbCcPenPd5n6Wgr02UzVQSMyBLksS2d13WkSm7AVg9VFOSQGj4zXqN5BE8Du5KKFk5QFA6TW4P76z6g6BiNywwKTrFx+/PFu8jvyd1/C3P1JGn8AYuEjQySdDtj63VhElIH2m+Rt8aFadMgPcOU6EYbZb85vTmGrkkI4hdrHcTCCk2Ljr4nZXYfxr1PJCiEV76nuFvGMjlnwgjiOO1DuTAYV+ffb0STT1AZNPqObIxMw9e2oq5WvATBm0FeosbHsWn1BEx8ZqFOSPruFYHKJUV5izGGw1Zp0ZSCS5ZNAyjzDNuzxwuq0yBtNOjyVVU6FmufXS3Fk3dYxYEGv6Xar1eC3Hc/mLt X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d86b5e5-1f6e-459c-6925-08d9dac3daba X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4458.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jan 2022 20:48:17.4169 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Nuc5Mn9kh2S/eThZc719z4dRlWwI/hYx+nTDllPveobUVUzDuefHms+mKXw7TnovXoRZy3y3ncWK2oCEOJS3VA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3176 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10231 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 malwarescore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2201180120 X-Proofpoint-GUID: wtUVa9sQ61wXe9ccr05Rx2Cv2CCYyXZF X-Proofpoint-ORIG-GUID: wtUVa9sQ61wXe9ccr05Rx2Cv2CCYyXZF X-Spam-Status: No, score=-14.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: David Faust via Gcc-patches From: David Faust Reply-To: David Faust Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" The CO-RE relocation record size should be written only once in the .BTF.ext section, not once for each section with relocations. Tested for bpf-unknown-none, OK to install? Thanks gcc/ChangeLog: * config/bpf/coreout.c (output_btfext_header): Account for 4-byte record size in core_relo_len. (output_btfext_core_sections): Only write record size once. * config/bpf/coreout.h (btf_ext_section_header): Delete unused member. gcc/testsuite/ChangeLog: * gcc.target/bpf/core-section-1.c: Adjust expected record size occurrences. --- gcc/config/bpf/coreout.c | 14 +++++++++----- gcc/config/bpf/coreout.h | 1 - gcc/testsuite/gcc.target/bpf/core-section-1.c | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/gcc/config/bpf/coreout.c b/gcc/config/bpf/coreout.c index f8ca2804207..4ec12ecd305 100644 --- a/gcc/config/bpf/coreout.c +++ b/gcc/config/bpf/coreout.c @@ -259,7 +259,7 @@ output_btfext_header (void) uint32_t core_relo_off = 0, core_relo_len = 0; /* Header core_relo_len is the sum total length in bytes of all CO-RE - relocation sections. */ + relocation sections, plus the 4 byte record size. */ size_t i; bpf_core_section_ref sec; core_relo_len += vec_safe_length (bpf_core_sections) @@ -269,6 +269,9 @@ output_btfext_header (void) core_relo_len += vec_safe_length (sec->relocs) * sizeof (struct btf_ext_reloc); + if (core_relo_len) + core_relo_len += sizeof (uint32_t); + dw2_asm_output_data (4, func_info_off, "func_info_offset"); dw2_asm_output_data (4, func_info_len, "func_info_len"); @@ -310,12 +313,13 @@ output_btfext_core_sections (void) { size_t i; bpf_core_section_ref sec; + + /* BTF Ext section info. */ + dw2_asm_output_data (4, sizeof (struct btf_ext_reloc), + "btfext_core_info_rec_size"); + FOR_EACH_VEC_ELT (*bpf_core_sections, i, sec) { - /* BTF Ext section info. */ - dw2_asm_output_data (4, sizeof (struct btf_ext_reloc), - "btfext_secinfo_rec_size"); - /* Section name offset, refers to the offset of a string with the name of the section to which these CORE relocations refer, e.g. '.text'. The string is buffered in the BTF strings table. */ diff --git a/gcc/config/bpf/coreout.h b/gcc/config/bpf/coreout.h index a9d7e364ba3..3c7bdfd8c2f 100644 --- a/gcc/config/bpf/coreout.h +++ b/gcc/config/bpf/coreout.h @@ -33,7 +33,6 @@ extern "C" struct btf_ext_section_header { - uint32_t kind; uint32_t sec_name_off; uint32_t num_records; }; diff --git a/gcc/testsuite/gcc.target/bpf/core-section-1.c b/gcc/testsuite/gcc.target/bpf/core-section-1.c index 031acd5292e..4f16b087c1a 100644 --- a/gcc/testsuite/gcc.target/bpf/core-section-1.c +++ b/gcc/testsuite/gcc.target/bpf/core-section-1.c @@ -35,4 +35,4 @@ int bar_func (struct T *t) /* { dg-final { scan-assembler-times "ascii \"foo_sec.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ /* { dg-final { scan-assembler-times "ascii \"bar_sec.0\"\[\t \]+\[^\n\]*btf_aux_string" 1 } } */ /* { dg-final { scan-assembler-times "bpfcr_type" 2 } } */ -/* { dg-final { scan-assembler-times "btfext_secinfo_rec_size" 2 } } */ +/* { dg-final { scan-assembler-times "btfext_core_info_rec_size" 1 } } */