From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130041.outbound.protection.outlook.com [40.107.13.41]) by sourceware.org (Postfix) with ESMTPS id 31F093858401 for ; Tue, 1 Nov 2022 15:07:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 31F093858401 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=LD7JkPFoXsr38oNLObhzmnMeoa0yNHWQKZedJoD4uaj0HwxcbnCYYImdEqJ247v5TUVU83gVZsQt2NKTU63neb72p/T5DvDo2f2sKJZcFxLSSH/6Rxhy9MW+5osz/H3PcLsoRJyMa/uTl8wr9Sr6pJ8BMjOb1BOVLqpFB78+mhpZrePqrAX4kTVW7U3nqHene53BznbfKkNOfxiOPnIQ50dLThzKGJ/ctgxh+eFwnwBjV+Z2kqLGbZ0bsoYVszNnKS4oeVFoszoq+wVRDFtMKJxfteKT/b735EJwHjt21TMOPyUOT/zVRsohuvPqLL3pVL/2JfsZN2kwuUCkAE6GNQ== ARC-Message-Signature: i=2; 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=bDTM2UeG6y00PWB/E5JIqh0/vREZibzfH22+8bYTNVo=; b=cupSqHgbYZTkOjU25I+OPtwlwsW1UGrmjlKhpKG21Yvb94umsHi4Xdcko8W6rCCF+ugaKt5Zdd6pSXv4MDnmBACJf94fx395RmhXcRjR3hxDOyi6muavV7/746MSJNJzODVXZAQWbdzk3C+mVUFN1AqatXGCmfMcE9dmErLT324U432s1vfVb8Q1mbilm2F1gkRrrSe0Cy4sV51Q+dcdx5BrLNd+/ntDg04DE99QnxAnaNDsL7qKIz1+2iD/cpzWcnEzA5vsMLGtuV52Da57ateKCaMG8AYfBafd2mNSnZxAFBVloIWqIbKHxngXaBZ+bxjxj6IeA4zeIumIfNaxZg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bDTM2UeG6y00PWB/E5JIqh0/vREZibzfH22+8bYTNVo=; b=6xdWZHNYX1lUzymJFdOGtE/DE1Yt+H0AlW5x4liFESr8fe3Mbq+E9mbPOoCRXs8FFmaX+kuB514PSiN5ozKABS/VUAFEwyrRwEdaMZpQkCvzF6JzJPCH9M6n2vfKd2L84SWBXIsmwEdsyRDcUzWWOHaGSN1eok2VOyJvemlrkPo= Received: from AS9PR05CA0012.eurprd05.prod.outlook.com (2603:10a6:20b:488::30) by AM8PR08MB6433.eurprd08.prod.outlook.com (2603:10a6:20b:36b::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.16; Tue, 1 Nov 2022 15:07:28 +0000 Received: from AM7EUR03FT054.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:488:cafe::e1) by AS9PR05CA0012.outlook.office365.com (2603:10a6:20b:488::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.15 via Frontend Transport; Tue, 1 Nov 2022 15:07:28 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT054.mail.protection.outlook.com (100.127.140.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.14 via Frontend Transport; Tue, 1 Nov 2022 15:07:28 +0000 Received: ("Tessian outbound 2ff13c8f2c05:v130"); Tue, 01 Nov 2022 15:07:28 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 3aed75302e175d8a X-CR-MTA-TID: 64aa7808 Received: from 62e50c225a48.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id A3A35A71-F943-4866-A1EF-A49F67CFF62F.1; Tue, 01 Nov 2022 15:07:21 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 62e50c225a48.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 01 Nov 2022 15:07:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZJudImMA0E6OWdpjpcGXACBxxzh7xwkd2surnsdCdYsODwqr9Y3tpRY4imtbbNQxxNsI09ie72YDC+IbbCoigjOUsQFUHYmF5J44xyI6XTPfxWAac0xVE29k8PgPtMmh7ppp7XcNtd2zWi9dFi/sBA7Bw5xiKQVpzEQPMsoRANj1CK/adER5obhi6NZIqnds1jniF5jGsUd82+GNjlBra9Nbvg0hZGpmaEeVC77CCEHBeYDFLlp2V7B7Dnl3Gyjqj4MCXCuxvqZ0cesY/DRFQr7cO+lfR4JQZQAq5vg+Y4oAAzjz6uIJCeRSTpaXFLVEMza2jko0kBOc287oiufk0Q== 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=bDTM2UeG6y00PWB/E5JIqh0/vREZibzfH22+8bYTNVo=; b=QQnv5t+PA1Uk6MrFz1icX1DNncxIlfRY5FggCZEIJketReeE5pvDEoGawhk+oUiKn0bVzdcP8xvEWQkWehNDtVm4Z3QykJ77gfi6bVWgXcMrhphUmx2n3NH2q45tNhUG8JTNkTDafFSI0g8dA3xXJ/nuK49jawOSAwVEjaapQYTImdwOHCcQ9l+Wzcwycqxo+M1MzfXRxp0ekKlAVX92G3vM6oUApQMVBs3rNaQGIuBZ43hOJO2vdyZv3WpGxbRQ1q4QEtRzp+KtprNOLtF3mTAdsgTxFTigJVxjcvNCkzlwLTsy3XpaerYbp3MpkYoWggGnj3SZjTSb0EN/eynhPQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bDTM2UeG6y00PWB/E5JIqh0/vREZibzfH22+8bYTNVo=; b=6xdWZHNYX1lUzymJFdOGtE/DE1Yt+H0AlW5x4liFESr8fe3Mbq+E9mbPOoCRXs8FFmaX+kuB514PSiN5ozKABS/VUAFEwyrRwEdaMZpQkCvzF6JzJPCH9M6n2vfKd2L84SWBXIsmwEdsyRDcUzWWOHaGSN1eok2VOyJvemlrkPo= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DB9PR08MB7179.eurprd08.prod.outlook.com (2603:10a6:10:2cc::19) by PAWPR08MB9541.eurprd08.prod.outlook.com (2603:10a6:102:2eb::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.16; Tue, 1 Nov 2022 15:07:18 +0000 Received: from DB9PR08MB7179.eurprd08.prod.outlook.com ([fe80::8999:7c8d:d088:d198]) by DB9PR08MB7179.eurprd08.prod.outlook.com ([fe80::8999:7c8d:d088:d198%5]) with mapi id 15.20.5769.021; Tue, 1 Nov 2022 15:07:18 +0000 Date: Tue, 1 Nov 2022 15:06:58 +0000 From: Szabolcs Nagy To: Adhemerval Zanella Cc: libc-alpha@sourceware.org Subject: Re: [PATCH] elf: Remove allocate use on _dl_debug_printf Message-ID: References: <20221031190131.2183199-1-adhemerval.zanella@linaro.org> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20221031190131.2183199-1-adhemerval.zanella@linaro.org> X-ClientProxiedBy: SN4PR0501CA0066.namprd05.prod.outlook.com (2603:10b6:803:41::43) To DB9PR08MB7179.eurprd08.prod.outlook.com (2603:10a6:10:2cc::19) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DB9PR08MB7179:EE_|PAWPR08MB9541:EE_|AM7EUR03FT054:EE_|AM8PR08MB6433:EE_ X-MS-Office365-Filtering-Correlation-Id: 706429b9-9ced-4214-81a3-08dabc1acacf x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: bT4+LSVRoeQmt3dSC4CvL6tSy/q98W17P1NNKgOaeYlO3lovB4iWF9gNjaj8sPvvykMKZTQ+z5Mx689eMiyl09qA+vdmelPknumeG3nKoVc3V7gO5hWDdIe1WOnC8B9Fx4VFxVHWCwcEkdB5YnjINRYVXA044qsYj9YixRcWVUPSdMG+9QIiMM3rtsFzH55VDZlIBS2EIueEEM+YCoaIkV0C5URr+REV8700LMTPRLRwqGz1xrosEOwjKsafy2ykgCe7HaCs1UYJ171qPgub+KvuhCyxGOuzOOnCUnbzyefAn85rId5Cr1v2evKgCGy68ArI2EDwKdH8bZb8o9thzfUty9ITuUIq0p4ciBHUc+aWRElGMr6xeOlRZSTMOmu1BQWAcEgEBycJ432+cwmnK4ryx2qiRwXE82nyu+XxXoycUKNkcr3g3YQERykde9s5/s08XirmZCem03ah3qf9MCfFOh8/lEEVAi6k1xjMvKe1V3ucQEq205X2mfxPVxxQdMBCNkmGFby2nW2C9d9mesnllhGcWCNA6sjnzldNKKD0k1CQ+z6aDcCpd/3SnBAUW8aTwcbK4zvmDQM8rxI12oLXf8IJUIlKTSnAgRpEV46J8Xq32PnZxxsnMXSeMsHM2b1J0cbWiOnbzXs+q9V1cpK4ubLhjNSjngNKNAPv6k9f4SVcF2jMUFZ7hbzUCIOwOtHESDbNOJDdacpucwiDwg== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB7179.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(396003)(366004)(376002)(39860400002)(136003)(346002)(451199015)(44832011)(4326008)(6512007)(8936002)(186003)(6666004)(5660300002)(36756003)(316002)(8676002)(83380400001)(26005)(2906002)(66556008)(6506007)(41300700001)(66476007)(66946007)(478600001)(6486002)(2616005)(86362001)(6916009)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9541 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT054.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 95889d01-674a-4e08-e894-08dabc1ac393 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Syu6mNfGHlkWAeZwH2fOCRj7FYjDzgoyJHIEu0B5fMWsW5mLkzuUm+N/os+4eszxmpFzwfaFxeBkxVQ6Bqd5r/bs8xSqm0wlydyI3dMKSnbK6Rpjwp7MVUysLvCr7EEEKrLtq3DBJrxfa7jnG7OXnbhcNCyV6RXTAOJbSuaK+NdZs468DwN/6nN3gFgOgq/ILgtE7tg1qKBXLtNSSHBjbVQSzXGU+jrXGChxdHyHnz5jKkZtmLA2V4RDdU4tfRtU+FeMmgAmMEQpygPM/alULHvGCcgB61wsakn6awtA7E7qlUb2sUaBACXxLNsj3nYL1DK8ETL5JQXrhgjWIWeYz6TeDO+KPOU1w7WZZgtPWxGWNY7YeDzH8lV3N7ublqZYttDO5RdeEzHeSZ6GPVhm8n54N2k/5HwWk4fsBTMiWcFadpu5PUlTbPz3BE6YFZ2qZbBABMaPnG6sXf5P/h7Kk8C1ZOji7gwlPIC6d7wDr5z57Ko25NYtaUrbNeBgqKWG2Db+M79t0GupZa02xYe2sTFgd4mYbINXZWO/CnOlvYtQh/AH7MtvqG8RW8Dj5333JOMpmj8LygJcdEJXF7jCySf2LUleMdCE+Vo2y7ImJwh4EsypBdkFIfcUVLid7kdqXyn/yr8TYjGk5dq29OkeP+0ycglRRSDWbHeBsTNxR5Jhx7FWG4jq5vo5cQjAR/KsQ/c5hJq9kLNkRihQ7rIn6vmqbrUHYFO4GUQwVQFLMUw9hieOPbGZh23Neg0ud8oQd85dq23uDQvZncliMdO2XQ== X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230022)(4636009)(396003)(346002)(136003)(39860400002)(376002)(451199015)(36840700001)(46966006)(40470700004)(36756003)(86362001)(82740400003)(81166007)(356005)(26005)(44832011)(47076005)(6666004)(83380400001)(40460700003)(2906002)(5660300002)(40480700001)(6512007)(336012)(6506007)(186003)(36860700001)(316002)(478600001)(4326008)(6486002)(8936002)(2616005)(82310400005)(70206006)(6862004)(8676002)(70586007)(41300700001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2022 15:07:28.3646 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 706429b9-9ced-4214-81a3-08dabc1acacf X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM7EUR03FT054.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6433 X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: The 10/31/2022 16:01, Adhemerval Zanella wrote: > The maximum number of directives is already limited by the maximum > value of iovec, and current padding usage on _dl_map_object_from_fd > specifies a value of 16 (2 times sizeof (void *)) in hexa, which is > lesser than the INT_STRLEN_BOUND(void *) (20 for LP64). less than > > This works if pointer are larger than 8 bytes, for instance 16. pointers are > In this case the maximum padding would be 32 and the IFMTSIZE would > be 40. > > The resulting code does use a slight larger static stack, below it slightly s/below it// > the output of -fstack-usage (for x86_64): > > * master: > dl-printf.c:35:1:_dl_debug_vdprintf 1344 dynamic > > * patch: > dl-printf.c:36:1:_dl_debug_vdprintf 2416 static > > However, there is an improvement in code generation: > > * master > text data bss dec hex filename > 3309 0 0 3309 ced elf/dl-printf.os > > * patch > text data bss dec hex filename > 3151 0 0 3151 c4f elf/dl-printf.os > > Checked on x86_64-linux-gnu. looks good with typos fixed in the commit message. Reviewed-by: Szabolcs Nagy > --- > elf/dl-printf.c | 15 +++++++-------- > 1 file changed, 7 insertions(+), 8 deletions(-) > > diff --git a/elf/dl-printf.c b/elf/dl-printf.c > index 00c114002c..1b55c87cfd 100644 > --- a/elf/dl-printf.c > +++ b/elf/dl-printf.c > @@ -27,6 +27,7 @@ > #include > #include > #include > +#include > > /* Bare-bones printf implementation. This function only knows about > the formats and flags needed and can handle only up to 64 stripes in > @@ -36,6 +37,9 @@ _dl_debug_vdprintf (int fd, int tag_p, const char *fmt, va_list arg) > { > # define NIOVMAX 64 > struct iovec iov[NIOVMAX]; > + /* Maximum size for 'd', 'u', and 'x' including padding. */ > + enum { IFMTSIZE = INT_STRLEN_BOUND(void *) }; > + char ifmtbuf[NIOVMAX][IFMTSIZE]; > int niov = 0; > pid_t pid = 0; > char pidbuf[12]; > @@ -100,6 +104,8 @@ _dl_debug_vdprintf (int fd, int tag_p, const char *fmt, va_list arg) > if (*fmt == '*') > { > width = va_arg (arg, int); > + /* The maximum padding accepted is up to pointer size. */ > + assert (width < IFMTSIZE); OK > ++fmt; > } > > @@ -160,14 +166,7 @@ _dl_debug_vdprintf (int fd, int tag_p, const char *fmt, va_list arg) > #endif > } > > - /* We use alloca() to allocate the buffer with the most > - pessimistic guess for the size. Using alloca() allows > - having more than one integer formatting in a call. */ > - int size = 1 + 3 * sizeof (unsigned long int); > - if (width + 1 > size) > - size = width + 1; > - char *buf = (char *) alloca (size); > - char *endp = &buf[size]; > + char *endp = &ifmtbuf[niov][IFMTSIZE]; > char *cp = _itoa (num, endp, *fmt == 'x' ? 16 : 10, 0); OK. > > /* Pad to the width the user specified. */ > -- > 2.34.1 >