From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 9A1D73858402 for ; Thu, 26 Aug 2021 13:27:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9A1D73858402 Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.0.43) with SMTP id 17Q9SmUq029893; Thu, 26 Aug 2021 13:27:57 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3ap5528xeq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 26 Aug 2021 13:27:57 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 17QDBMcq130918; Thu, 26 Aug 2021 13:27:56 GMT Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam08lp2043.outbound.protection.outlook.com [104.47.74.43]) by aserp3020.oracle.com with ESMTP id 3ajsa98qgn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 26 Aug 2021 13:27:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kMxo6Epr36YLUkqDo+bLQseHBaP0R7DLpJfT5qH28k4rjFb/+L9OPe+s4MRGAKY3Fbg1BaDhWs/BbVDhLo/Aw5tR5kjuhPIqc3zuDk/RjnObqkrYxKQ1WrCWwIvd9XKVqy5Ez8uXi8u4CYnOhZ94VCa9Rj47T4s/OtwOqwf9e3HbupPGkEFNdz6HiUVNzgPhMjjERjjrISBf6FAHOSQ9POqW7r9WLZFT39Bpea0M5PhzH0x4rBdqQL/6EkE2kb/p7DeJ6zWOwIvMHuvBd0q6k4CiSqCW05USeXkZG+BIdX8pQ6Vfum5qw3SF2TxICVjMZYpOX2PBWi7DjLMUDooEQQ== 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-SenderADCheck; bh=dSsx8XMSkiSNowB3tPuxWID+hIseXLh2k8ApifESF9E=; b=bo1hMXe1p57sqdDck9E2yTINVljhXpjSbNP6O3G5pf7I1RcsNquWzGgHilJ0VqvtS159aHoAbjWhY1z8Glt2JKavhtnYm0tpEBKqO4gyeH8TsKH5Cm67LYWfb3zo20YNk5ZUg0N7bwfUYWuXDX49g1eJMFunhUlx/6tjN9vMNaIUWXL0uQtsun2jgRnzzgxwy9VeYBJKEG9gYsfZ8JY2KdcpwEUs+kY2ZL9AqDe/cSEjRCSEOQ4Gp5i+rhN38lXCr/UAw4h+wMfEcHBxd8O9klu0+6YNSOXt4GC95eUQCwwwxkvACfScy6ORdkp2160tZpP4q1y/8bd/VkP62QQimg== 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 BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) by BY5PR10MB4226.namprd10.prod.outlook.com (2603:10b6:a03:210::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.24; Thu, 26 Aug 2021 13:27:53 +0000 Received: from BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::5d49:ec20:468e:1b77]) by BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::5d49:ec20:468e:1b77%7]) with mapi id 15.20.4436.024; Thu, 26 Aug 2021 13:27:53 +0000 From: "Jose E. Marchesi" To: Richard Biener Cc: Richard Biener via Gcc-patches , Indu Bhagat Subject: Re: [PATCH,V2 1/3] bpf: Add new -mcore option for BPF CO-RE References: <1628124628-28706-1-git-send-email-indu.bhagat@oracle.com> <1628124628-28706-2-git-send-email-indu.bhagat@oracle.com> <87sfzhnw1i.fsf@oracle.com> Date: Thu, 26 Aug 2021 15:27:44 +0200 In-Reply-To: (Richard Biener's message of "Thu, 26 Aug 2021 12:05:54 +0200") Message-ID: <874kbcjpyn.fsf@oracle.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-ClientProxiedBy: AM0PR01CA0169.eurprd01.prod.exchangelabs.com (2603:10a6:208:aa::38) To BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from termi.oracle.com (141.143.193.70) by AM0PR01CA0169.eurprd01.prod.exchangelabs.com (2603:10a6:208:aa::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17 via Frontend Transport; Thu, 26 Aug 2021 13:27:52 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 99928d1d-0950-49b2-2a5a-08d968954eb6 X-MS-TrafficTypeDiagnostic: BY5PR10MB4226: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wTXqJ23Mgna2TAKqUug6uSTyX8yG4qvGa6RUMNdnotGW0BYbfFBw6HdonxSbo1gJ/mheuQTK5kGPTIBERLWaW3k+9cQx7akH3GMo/N8jutGLDOI4u9N5eix3HFDLEDPgnhYq0yQZKRPiy2ywn+jm2dK6B8eEwL6gNRj5XjRVEzhgskF1dv4albEvsy78IlNuZ/DwEuMlHTZQ79Ghe/06LrVMHeyDQPoag6gJbMXyjqpaJxaoMvFvrKzLEm+f3BFVlZ2uqG7+vQxtliOncCxQwPr57P+nTz/MHx5TAkguqhRILOAYQ4yJLz5+1l4F5Gkvc8x0Ttmj5Ag5vdzlIsIQ8RgGSKiqIA09YBk8wwHhrEkhwplpuzRWLjJD96wYsvjPK69Qx2EKl2nW3ML1kQa68tYTzRtltBmZv7e1b2VXVBme5q2+bWcpmCe/Z1uFdWI34gbmf4hfkZRNUfzl07W+PFvSowiR1aWoW092LjzOvwtV0MF5UsAyjbppLUHQIJbPySPTLWqbvn9DskS60DBwWG69XUrmwb2LBtZSlk/UZ5oCUWROIOWYAnc0GN2ft5pYtbPHriyD6EiDo+V5wF4PWsGzkIFF8cegQNwU0/5Jiw+CygD09MSvZgn+WRijSLMPOkyWaMtkhZOdGN9cslBe4nHp1A4yluSqrHcO91L6PLJcTzif6ZNTqM62YGL+eNPhqEL14+nEioNXn3XMj45j8EiBoOoe04lFftF/E1YnRSf4axVAaOnali6lOc1u+VsMsF/YFdZM8DFxU4La+u2f+7y/fIjxGIgdn3o8Y+PtZYw= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR10MB2888.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(39860400002)(396003)(376002)(346002)(366004)(5660300002)(186003)(26005)(52116002)(6916009)(86362001)(38350700002)(38100700002)(478600001)(107886003)(2616005)(956004)(6666004)(4326008)(6486002)(316002)(83380400001)(36756003)(53546011)(66946007)(66556008)(66476007)(8936002)(7696005)(54906003)(2906002)(8676002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PwObOyAJ+AVUJ9vZssZFt2v0/I4pkW4opWsyYLFUwZ/tyRmsjW0ouSbUDZfb?= =?us-ascii?Q?uCMpg6wyCyCj19TAEJEzaXM10KZ8rBqkYR3msAVKikqSbR/zmu0KkdrSJpHw?= =?us-ascii?Q?7czTDLm1rcmkN0pS/dunp0k6+9JrZdxGBPnaxrZXiYKgUfiGZCfWTCw4We5J?= =?us-ascii?Q?4ID6hFPhLqpIHaC4VfDh+5xiAQ4E5CfJHLsUHPZcGwPvEnyzkFyFXUMwX2t0?= =?us-ascii?Q?bSSIbCZVwJuGvq1y1caW+LCCJ3C+UEGOyI4pnXkU8FQoOZnjT6SCrt1qXIYm?= =?us-ascii?Q?Yc9xSbuskc0KC7MG5VdybHBRQ0jqGR/Rraxh9r6jVIIRJQ6fAduzeEXJO0mG?= =?us-ascii?Q?IUkM8c9COh6FoV7pRm+Re/6hxDFrNB9MldEHBohXvsvNfOV2K/IVMvD+Ukhp?= =?us-ascii?Q?gCobeA3ssDXw330Z1bCeLiDqq67sx4ROM80JGjKsEDgOVqQoC1rRtnQHjhM7?= =?us-ascii?Q?CwQx751G4G+cFwfhS/9SOFRDoWkISXbu7D3HHR0HZ61qBW8bvZwli4d4nBbH?= =?us-ascii?Q?Np93GC4s9MhuJuwOS/FMvk5vFIk5mCgqp0TC9FbZ9eqk+wh7aU91iBEHvMO1?= =?us-ascii?Q?DT4Ceokxdgb8137/I6twR/oEvfcyZCMApdHWXUyDdWzI4KlT5eNA6/3UlqSt?= =?us-ascii?Q?9UzAILgGDGCy2Ru647eCmLZm8OlLvjZwXAeuJOfzeyhX31ZSQRbUaQxH5ctL?= =?us-ascii?Q?sNcP0xrkLG6ArZDJNgKwzPL7rAa/ALAp0HNhPmwhgbH3H0ekMEgtnv6zCRGG?= =?us-ascii?Q?UIJlxeHjGOrFLhTY7K4XxlwgKBgbyQAxYRAGDKj4+Aces/iXnEHIsWovDlvU?= =?us-ascii?Q?Pe4b0YV5y8q/jOzbmYyjL/3FqJbm16eahJOI9W3yo4TyMLvvo5gmTamEiUQe?= =?us-ascii?Q?JVK60gXQ1tVr6otJyOFtQr/eQJOYzns1BcnfSe76pVdxCeSHRQBBDP+0DhqD?= =?us-ascii?Q?0OpMVg94oD8L27eRlqJxiqgHApdNkBl5IX+qGEeJcGUnXNYE95a9NQeoVSGI?= =?us-ascii?Q?D/1wBrRpFB/d52xMxDiHSrT8kRe+yOyQM90coNUpmg18D+EHAoM12e6Tna0R?= =?us-ascii?Q?wuB/tqczKqMOeOJ2Ql0nS+zCPhF1bucZwrjO8N1JzrmdU5Ql3Q2zDurb6j77?= =?us-ascii?Q?YNZqfa3wdGdHxPnC3aAoK5SWQpi4BIO3H+k1FUF8tKDO0R3XN7S3v+IPITbN?= =?us-ascii?Q?E9yuDSS+zk0O3yn0t/T2aA18AxKHswVhMNVxNz5FQTdfTEhubkS/3ndJVg1b?= =?us-ascii?Q?gTP/Htwdih2stRhlWin76JF/2r/vk/DGhbW3VnCI8bzgND2IDHMHOgc6Gi1m?= =?us-ascii?Q?JxW1toP1OXqI7+qNzdgOsNtL?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 99928d1d-0950-49b2-2a5a-08d968954eb6 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2888.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2021 13:27:53.4618 (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: 9aCSzL/FcX9dM37XfbdgedO2ueFGdsvVxub2mA44ap/dT13CQDgBiwk+FA/1aRvNob+1NaGAoowDJIra5Wdz2BLUtdfRRz1eRhJ6nI77dDY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4226 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10087 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 adultscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108260082 X-Proofpoint-GUID: vT2G4NdROF1enSU3j-koSBwNVVSWA8q7 X-Proofpoint-ORIG-GUID: vT2G4NdROF1enSU3j-koSBwNVVSWA8q7 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, 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-List-Received-Date: Thu, 26 Aug 2021 13:28:09 -0000 Hi Richard. > On Tue, Aug 10, 2021 at 5:45 PM Jose E. Marchesi > wrote: >> >> >> > On Thu, Aug 5, 2021 at 2:54 AM Indu Bhagat via Gcc-patches >> > wrote: >> >> >> >> -mcore in the BPF backend enables code generation for the CO-RE usecase. LTO is >> >> disabled for CO-RE compilations. >> > >> > -mcore reads like "core", why not -mco-re? Anyway, ... >> > >> >> gcc/ChangeLog: >> >> >> >> * config/bpf/bpf.c (bpf_option_override): For BPF backend, disable LTO >> >> support when compiling for CO-RE. >> >> * config/bpf/bpf.opt: Add new command line option -mcore. >> >> >> >> gcc/testsuite/ChangeLog: >> >> >> >> * gcc.target/bpf/core-lto-1.c: New test. >> >> --- >> >> gcc/config/bpf/bpf.c | 15 +++++++++++++++ >> >> gcc/config/bpf/bpf.opt | 4 ++++ >> >> gcc/testsuite/gcc.target/bpf/core-lto-1.c | 9 +++++++++ >> >> 3 files changed, 28 insertions(+) >> >> create mode 100644 gcc/testsuite/gcc.target/bpf/core-lto-1.c >> >> >> >> diff --git a/gcc/config/bpf/bpf.c b/gcc/config/bpf/bpf.c >> >> index e635f9e..028013e 100644 >> >> --- a/gcc/config/bpf/bpf.c >> >> +++ b/gcc/config/bpf/bpf.c >> >> @@ -158,6 +158,21 @@ bpf_option_override (void) >> >> { >> >> /* Set the initializer for the per-function status structure. */ >> >> init_machine_status = bpf_init_machine_status; >> >> + >> >> + /* To support the portability needs of BPF CO-RE approach, BTF debug >> >> + information includes the BPF CO-RE relocations. The information >> >> + necessary for these relocations is added to the CTF container by the >> >> + BPF backend. Enabling LTO poses challenges in the generation of the BPF >> >> + CO-RE relocations because if LTO is in effect, they need to be >> >> + generated late in the LTO link phase. This in turn means the compiler >> >> + needs to provide means to combine the early and late BTF debug info, >> >> + similar to DWARF debug info. >> >> + >> >> + In any case, in absence of linker support for BTF sections at this time, >> >> + it is acceptable to simply disallow LTO for BPF CO-RE compilations. */ >> >> + >> >> + if (flag_lto && TARGET_BPF_CORE) >> >> + error ("BPF CO-RE does not support LTO"); >> > >> > ... these "errors" should use sorry ("...") which annotate places where the >> > compiler has to give up because sth is not implemented. >> > >> > otherwise this patch needs BPF maintainer review of course. >> >> I agree -mco-re is more clear than -mcore. >> >> Other than that this looks OK BPF-wise. > > So in other context I wonder if CO-RE is really target specific, it's a flavor > of the BTF debug format, so shouldn't it be -gbtf-core or sth like that? I wouldn't say CO-RE is a flavor of BTF: it makes use of the BTF string table (an unfortunate design decision) and the relocations are stored in a section called .BTF.ext (which is confusing) but if anything it would be... an extension? I would say it is very target-specific anyway, since it requires the BPF backend to generate particular sequences of instructions, and the BPF "hardware" (kernel loader and verifier) to do the right thing with the generated relocations. The whole thing is very tightly related to BPF and the kernel data structures. I would certainly not recommend anyone to implement CO-RE for other targets/architectures...