From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id ED47F396E83E for ; Fri, 13 May 2022 17:50:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org ED47F396E83E Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24DFdEkr031696; Fri, 13 May 2022 17:50:26 GMT Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g0a04q8ff-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 13 May 2022 17:50:26 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24DHGGtm013612; Fri, 13 May 2022 17:50:25 GMT Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam08lp2041.outbound.protection.outlook.com [104.47.74.41]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fwf7d64m3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 13 May 2022 17:50:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Wu9+ZPAUzyypEsonnHm2C42+SQFRnGZ5Vra64vPj99gU9+8WUheGVkagfzQdtumFGnsGUKejYmeNFH5ucjZrcvJTxoztllFUEY5BkwOT/QIyrSEtK0C8fwgQPZk6bQvxxbGt6vQrFS1uHvRW2FVfeFxSxxXm/K4mlKr8FfNxCybojIt4DxOacE+jKQJRzcvG31grNvrDPjlfjlzskhKdoYY6xqwxgS/ClLEdiVec59PpteA/Ls4HxvdRvjnKf3XiW+6/aZroJ2wNd0P2G6Zomlnx0b+Tp0YHocqCRC3WQjdw4T4rqfBysz8a0iyIxuCpaXetTLjL8nd1kpQ2nUXyzw== 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=+q+vlg2rSEdJepy1U9P50cJuTagDw3V5Zil6J3/hUzM=; b=GITs8YgBiFyDYDnKQUuE5fCMtnBhgKbE1p/CXWNE6o41x6sEElJCuAYC6WnrwUf24OmuS1qjCZJ3aB/T30z4b6W0bYKkX+wU+3GMiMgqSO0WHBPYz4+hywlT/0RfHwgSGQKb095p3vHywDERZsUnRVFADB5GaWmcG/b1A6Y9iHq/ShOv87tkxsUrlNzTiD0kbFbnlFc+uU3+rzZEjoa78mrVMtv/VFGsELX1ju4mavxF4y7QJinIkzKiNkHPrvO7UeBwouyplE7rO2YcXiTk8ec+wjh5cPzg7P95JrplMevS2/HkFpSRnbgByd+GPmcAPvcDUNs3fgk6Iufq6qS02w== 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 MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by CY4PR10MB1590.namprd10.prod.outlook.com (2603:10b6:903:2c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.14; Fri, 13 May 2022 17:50:23 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::c1ba:b4c:fe6f:d171]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::c1ba:b4c:fe6f:d171%7]) with mapi id 15.20.5227.024; Fri, 13 May 2022 17:50:23 +0000 Subject: Re: [PATCH, RFC 0/7] Definition and Implementation of CTF Frame format References: <20220507005223.3093035-1-indu.bhagat@oracle.com> From: Indu Bhagat To: Michael Matz Cc: binutils@sourceware.org Message-ID: <939d873d-0c5d-0cf8-968a-63a1e6e70562@oracle.com> Date: Fri, 13 May 2022 10:50:18 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SA9PR13CA0093.namprd13.prod.outlook.com (2603:10b6:806:24::8) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2449b42a-1861-4803-7cbf-08da35090dd6 X-MS-TrafficTypeDiagnostic: CY4PR10MB1590:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7xgsZkB9AUhn5XWdyFHFaaEXAgrrqxUB/Bd+gOL9KCh5zfmvq+WpgWQ2bevY1KzDIkAgv9buxvrLZnu4hnGRbbm1BcOzuRxGNzh2RAOx90m9FOSsqFjaFG71ENlTwmqRsPl5auz376CD8iMKdDCh3ix5fOzvHayFvEAQq7xCTFNoGuNCj+iR6L3qsSPIS+1dIfXEnTeSnIV7Aeo8i15fusuUhZLewCKzi3EIfi2/I6iZIGKCq6F3mr0PfqkTHiF34gW6U9w9T+c9Zut0tc7N6xoXwtZHBMz9RyOT2fRYcMzbpl0sMP0AG1uhfBcneNsEyY99dzP7rdNFO3Z6J2kmLh7DGyzVx0tPPBNQgD/l3h5fLDN0I34gYCUsr5cly4Pm3QY7lX26REXH2hSIp4rOPK0eMSX5wPYPhGRZfEUxPfgrB/ZO4F1fKfpjI8HZhWufDnH+Sl+24B9Z7a9YnJg3/T/qE+escpQvK1Djlsb+uc0jOg3SOsA/gonZFrNtbCYMklkqSpffYhScm9ZVGojrKjq9hOwC51d7w8eutCXnUr0skWoeCU6BhAVEr4B0mfkTmBh0nY0tbchNoZj6/nq9SwAVYdh0uTDLrqTUY7aOxzwiKscqytlKtNNqx4n08OIJrIwqMWNq6ri9Bc62hPmatZxZ5rrTo1tj87rkdo09J+5kH0AV9YR6Jyk4EovjhmaILjGcXccMFhH3pdsGPXQYhfxab1OCxLBh8Yn6eL6x8REI/z8o1Xz7EXX1hnQCNzqERFxItinKmilg/E2TSj+DEGazPGk+shh0vD6oWuzJ9gb5IKHBW0UFX5y2/pMSx6cN X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR1001MB2158.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(36756003)(2906002)(6506007)(31686004)(316002)(2616005)(31696002)(53546011)(6916009)(6666004)(66556008)(66946007)(66476007)(5660300002)(4326008)(8676002)(38100700002)(83380400001)(44832011)(86362001)(8936002)(508600001)(186003)(6512007)(6486002)(966005)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QUFGeFFpRWxaeFpvRWhFSHRYOGxnYnFnMFFpZ0FXR01lb2JkcnlqMUFCS291?= =?utf-8?B?cFc1YUNPajZQQkNQM1ZPcSswMlJHMlRFSmx2M2phdWZ0aUZYY1MraE9GSStZ?= =?utf-8?B?aVl6MTJUcWZwTjJkNnZkOS9hTnZkVG92R1dLQnVVSEZaMVNzNW1WTHlWYjVO?= =?utf-8?B?SVhRVFJ1WENIaEE3VlNMWk9XNTU2SHJUNTdham5mdzROaVIxbFowL1kwWG5H?= =?utf-8?B?Y0E4THpyTXVxOSt2QkJ6bFJZZWg5L2MxdnNHVzlZT2tPSXMyL3pTdms3eGt0?= =?utf-8?B?b3o5bUpNSGs4L1R4VUNQbmV1d2ZnTmFzVjNSa090SlB1bjAvZHN3c29ST2or?= =?utf-8?B?Nlg3MEJHRFlMdXRFL0xmWHI3aS96OFJLSUVQaHVGc3NHVnBDSzJmSHNvNmF5?= =?utf-8?B?WUJyZmZBQThFVmdKQVBML1F1bVY0SFdVZWRXNzk3T3BSVlVlVy8zempwYldk?= =?utf-8?B?YTZXK3g3QlBYaFBHMHV3MndKQ2p0QnE0NVBmSTVtQjExeGNmQ1BzNVBzMXhF?= =?utf-8?B?bzlxSDJFeWRkMnJuRmRLK0tySjBJcmhZM2FqNWRSejJrT0dFT1htRDlDMFU5?= =?utf-8?B?SDdCbXlIanI3WktrQjYxNGtOTzBEd1JvOVl4ME1hZktBSTFpUTNiYVdEN0Nz?= =?utf-8?B?emptRHZ0S0lXTnFsbng4TGpJZVR5NHExU0hpdzZheExhcE93WkdOWUc5dmNm?= =?utf-8?B?RlczR1NzajlwM3ZIdnZBSVlsTWpCZzhjSXQ1V3ZBckpyT2dMckFZbWNUY21h?= =?utf-8?B?bVhrVHd3WStIVDl2ZjRBdHRFME5mYlpadDJjV0QzbUxEREJoN3pMSFAvRUpq?= =?utf-8?B?UzZGWm9JS00veG5jR0Vta1A2elpSNW81SzF1Y2tibnl5T1NlU2REd3RzS0gr?= =?utf-8?B?N21DYlJlUjFLc0RnSm1TeVBabXRoQWpDR2lwYTZSWFdEN0lQUWppZ3ZneHUz?= =?utf-8?B?WkZ1M1BuZVN6dEVBR2Q0Rk1hNnBqK1F4alp5cm9qZy9EOEhWZ29Zb3MzN1Yv?= =?utf-8?B?c1MzUkZmQ3pyeFdETnJmeW52VTF3UHZWcHY3R0dUOWRNamhEN3N4TytDckxN?= =?utf-8?B?cW1ta1lUMnhJYlIyZlVOUHRGbWdrcWdCaXVpOVczU3VSMkdwd3d2dkRaMUtW?= =?utf-8?B?bVFWY3lqVm05RWtpR3o1NENvV3hmRG9iUUljTW15REw3dGZveE5uWFdJRUhD?= =?utf-8?B?cXVFaEl3QXl1L3ZUcDY5Z1J3U0Z2SVZtcEQ0THR0Q242UVFkSHh1MUwraGRI?= =?utf-8?B?TWI4eEpWaGdTN0FwWXozR0dGaWpzNUZRL0djekErN2FwQzlXMWxzOVR6dmVO?= =?utf-8?B?a09lZFpib3VDT1VOYVVKb0dONDg1MUNwTFhBSjgrc3plSXJXb2UvUFVNeW9K?= =?utf-8?B?SUd3TEpSUStsQzdjZWhPZGRpNUhQK2hnN0FTc0VhaFJWekR5TDBEMjdYVzlC?= =?utf-8?B?ejJzTGxHVk5iTEtPR1d0NlVWc0lGOXprZnZxN25SKzZvUGpaREZqcUJDK1Ar?= =?utf-8?B?aG1ib3BqUmNzbHRleWtwZktjQzVuMy9vT2JadkVUUmMzcGxCRktPckJNamJi?= =?utf-8?B?UEhHenhUU3gvNjdQVkZ5U0I5YS8xMXd6SHRxZktRVlBGWjZidEVMdUpROTVD?= =?utf-8?B?YUI1ZERpdXRuOTNxRU1pT0RzYmxxNHBIQlcwblpwZ3lHRUxmYlJHQW5KeWo3?= =?utf-8?B?S0F3c1NZVFRUNDAvNCtFMEh5bXU2RWhhSWpkbXlSMUxrSzcwb1QyMjBscHZ1?= =?utf-8?B?K21GUmhLc1B5b0ZNV05XYzhLYmVDbFNpWU5iTktXUmRrbGRMWlRzZ1dja0h3?= =?utf-8?B?aUNpOFpEckJnRTBJbWE4Z3d1OEhoQ0hDRWJTMFB6RFdzbnhmcW03dUFMVldC?= =?utf-8?B?OHRpSzJ5cnFMbWZuZ2dNaFUybnY4MnBUYUhNWmNScENyWm1CYmxKalhsQ0Fo?= =?utf-8?B?Rk5jZkpFYVJIVUJ3YjdDc0UrRjJGUG9WaHpXbit4MXl5VXI1dzVFZDNHb05j?= =?utf-8?B?WE9YVWl2VkcvOTEvVnVHMEJraHdWbWdKV1VyWkRCallBcEljYlh2TG1YY3NP?= =?utf-8?B?VUt6UVN2QmVodEVHMEZPdUwxbDBDWk10TUhxRytmVU52SnMxdWljV3BDUi9G?= =?utf-8?B?aFhnVllsR2ZUWTg1RzVXWVJYU2k3YXFZR0RwSlVUVHZ5UDBBcy9WR0tHWU1G?= =?utf-8?B?NnZFVFNvRXpnSVlpKy9lQ0ZrS2hOMFh6YzNXbjd4QVZjU2hmQWtBTk9BTVJa?= =?utf-8?B?TEIycVFiSXBkbStGTXRBUUM3bXEzNi9LRER6cGpTOEhvMlF1Z3pvZTJnQ25h?= =?utf-8?B?bm9TUTVPWHpyK1VCRDFMYzFUdlA2dlFEZW1XbEtMQmZndm82NHVVWCtlWXZR?= =?utf-8?Q?PlndZOCmrujQ8Mm3tgAfaZrp58th6/djrX8TK?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2449b42a-1861-4803-7cbf-08da35090dd6 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2022 17:50:23.3078 (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: uwLdPLgwR4plINCJDiBWkqtLKlDzdtbLac7eUWltpVL1f6F4j33T7W7SMoh4rLIB/aZo6OagRcGCCh0GBQGz9g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR10MB1590 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.858 definitions=2022-05-13_06:2022-05-13, 2022-05-13 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205130074 X-Proofpoint-GUID: kkiZJref5A4hFnpm2fyU4GeNJ39eL2Ud X-Proofpoint-ORIG-GUID: kkiZJref5A4hFnpm2fyU4GeNJ39eL2Ud X-Spam-Status: No, score=-8.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_ASCII_DIVIDERS, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 May 2022 17:50:28 -0000 Hi Michael, On 5/13/22 6:08 AM, Michael Matz wrote: > Hello, > > On Fri, 6 May 2022, Indu Bhagat via Binutils wrote: > >> PT_GNU_CTF_FRAME) in ELF linked binaries. The CTF Frame format specifies the >> minimal necessary unwind information, i.e., information needed to recover only >> the CFA and the return address (RA) for all insns of a program. This >> information is a subset of what .eh_frame can convey: .eh_frame specifies how >> to resurrect all callee-saved registers, if need be. > > So, it's designed to be less complete than .eh_frame. That in itself is > not a problem, but ... > >> ratio = (.ctf_frame / (.eh_frame+.eh_frame_hdr)) >> >> --------------------------------------------------- >> program | [x86_64] ratio | [aarch64] ratio >> --------------------------------------------------- >> addr2line | 1.13 | 0.67 >> ar | 1.03 | 0.70 >> as | 1.00 | 0.73 >> c++filt | 1.08 | 0.64 >> elfedit | 1.03 | 0.66 >> gprof | 1.06 | 0.71 >> ld | 1.02 | 0.73 >> nm | 1.07 | 0.69 >> objcopy | 1.08 | 0.72 >> objdump | 1.08 | 0.73 >> size | 1.10 | 0.67 >> strings | 1.09 | 0.67 > > ... this is. You need more space on x86-64 to store severely less > information, and even on aarch64 the savings are meager when compared to > the information loss. > > So, hmm, who would want to ever enable .ctf_frame instead of .eh_frame? > Those applications which struggle with the following two complaints will want to consider .ctf_frame: - eh_frame-based unwinders are complex and slow to manage with - eh_frame-based unwinders are large as they need to deal with DWARF opcodes via a stack machine implementation We know of two large applications of interest which have adopted ad-hoc solutions (based on post processing of binaries etc.) _and_ devised *their own* unwind formats to address the above issues.  The issue is that these ad-hoc solutions are themselves reaching their limits or are borderline unmaintainable because of the need to support more architectures over time, the need to regularly fix issues in different components involved as the generated code evolves. Also see https://sourceware.org/pipermail/binutils/2021-December/118880.html. So, the main premise of CTF Frame format is to address these issues, and more importantly make itself available via the toolchain because compiler/as/ld has the visibility needed to correctly generate unwind information. Post-processing binaries is not the right choice (IMO). Highlighting two of the most important differences between .ctf_frame and .eh_frame in this context: -- Simple unwinding with no stack machine.    .eh_frame based unwinding needs a stack machine based implementation to work through the DWARF opcodes.    .ctf_frame based unwinder is very simple to write and need no stack machine. -- Self-sufficient FREs    To achieve compactness, .eh_frame stores the DWARF opcodes in a sequence such that all the applicable instructions need to be executed until the desired PC is reached.    .ctf_frame unwinding, on the other hand, needs to locate what is called the CTF Frame Row Entry (CTF FRE) in the .ctf_frame section, for the given PC.  Each CTF FRE is a _self-sufficient_ entry which contains information to unwind from the given PC. This should make unwinding faster with .ctf_frame. That said, the sizes of .ctf_frame sections on x86_64 will improve soon. The current issue of having to encode a distinct CTF FRE for each PC in the .plt* section, is causing some bloat on x86_64. I expect some reduction (~10-15% ?), but we will see :) Thanks Indu > > Ciao, > Michael. >