From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 95635 invoked by alias); 11 Aug 2017 17:58:16 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 92645 invoked by uid 89); 11 Aug 2017 17:58:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: EUR01-VE1-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Message-ID: <598DF02B.8010607@arm.com> Date: Fri, 11 Aug 2017 17:58:00 -0000 From: Szabolcs Nagy User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-Version: 1.0 To: Siddhesh Poyarekar , Wilco Dijkstra , "libc-alpha@sourceware.org" CC: nd@arm.com Subject: Re: [PATCH 0/2] Multiarch hooks for memcpy variants References: <18d2fdf8-ca55-1ded-fa66-3509b3bcf8fe@gotplt.org> In-Reply-To: <18d2fdf8-ca55-1ded-fa66-3509b3bcf8fe@gotplt.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: VI1P194CA0020.EURP194.PROD.OUTLOOK.COM (2603:10a6:800:be::30) To VI1PR0802MB2493.eurprd08.prod.outlook.com (2603:10a6:800:b4::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e87a7656-c0ca-474e-29da-08d4e0e2857c X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:VI1PR0802MB2493; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2493;3:IHlf2PappWYkYwwftsRuMg2pTm80NLtIKkUg1zJWKy9Y1Mq+dWtFKVwr9SbTcbOw1D76987AYIFkvXxDkq1NKh/PipbjAOBdowXAvBh3GMLTjFm1i3zsG4XgRpsxTtFCkDlL0rzqtN0DKJWbWlULHYMtfxZ6W6H1EjS9IOOGa1/x0SLXzAOFPDyCymIPL7rq+Mdryaq9W9bS9VJ+YVRG9ySy1SiWzrCqdyV6P87aFxUd0yh+ejgomta4USep4mto;25:jNIwI70YuHP0xhQddGJ2SwRy+dTP6ylPdlsnu2eCs5KoOgxaBMffQeOmneMKudvWThb+kTw+k8ZPt4BgIAHn6usHzFNDvwhc590lfR0lwZs0ZC6dQwO8XzKzsF2290CZuGKQNn9Jbhf9a39fhIqEvfEvgSHalP/KJ/62aJBOZ7+8PAIguRG36djz7TR801nJRmAr3e/XsDY0aK71oFEZHh+LNSPwAkv0K0S/QHumm8xXGojb5pA+4qgbTtY3AQh7AZfADAojgCa2s3U6ohcpPMZNtz5asoi4YAeMBKKBaKFwUyUikFF1kIsakEFbyUl5nQdsIXN5LAi2IGFav5RR0A==;31:PyQ+TOHpkgTF/TlQGPUIB6w8MSplnLjT7SOmKUSu4Ileos+p/utBL/B2BB0kroZlmPU+2FGclTQwlYJqAoVWaCEWMQCx10+sikfyrv9x9NvEniBx3l7SRgZg2B9tlEj1LBdxcv9xHmXx7ux8PKBFxijb8Y/HkD9mpjjGjqQoUhavt7c3AaqWNGWHSA8hqIbA63iXw6Vs8YL/hbw3TjkK9hYGALXbKxeVjs/TI31Y9nU= X-MS-TrafficTypeDiagnostic: VI1PR0802MB2493: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2493;20:MW9JkqecOhMdGzQN+QvmXaK8oU/LgetsKL7Bv0rN8FpXjsxL4oj9Vk2WZESLn3PIBjXpKeqDn30Afw7pkWKpAa1NsacWFRVw8y8BdoirzxhrjTq0e+euYZCSwgx2VfDPh/hx3zMUL0jkBA7tKv1dndg/+gvHjP/EnQEok6xWVRE=;4:UZEif+Nb2FoVwS5eYJjSWeJzqmSRZLQt4XtS2luMvzbR9BrnAjU+/3Ir+wT5tWdL15cFKEx0aKnwTKhtjj1k35uzQTU7AVEZoCIDuVnVYEHu33xzFPwG7TPNz72o76s1UB2HV57Ton0uOn98EgCfpb8nZ5E4H8z0Vqg2d8Fp4cwOjMD7b3FbsgtMM1ObKAm6ZEH38ChdAV0lkLrUaUd9m4K3yishAjlWbRNYTr7KA2fG7nprGnMiPxAvoGMWJDEx X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(100000703101)(100105400095)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:VI1PR0802MB2493;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:VI1PR0802MB2493; X-Forefront-PRVS: 03965EFC76 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(7370300001)(4630300001)(6049001)(6009001)(39860400002)(199003)(377454003)(24454002)(189002)(33656002)(7350300001)(72206003)(4326008)(7736002)(65816999)(50986999)(87266999)(76176999)(305945005)(54356999)(23676002)(36756003)(53936002)(6246003)(101416001)(8676002)(68736007)(97736004)(65806001)(42186005)(81166006)(105586002)(106356001)(86362001)(189998001)(81156014)(66066001)(65956001)(47776003)(25786009)(53546010)(3846002)(80316001)(5660300001)(59896002)(229853002)(6666003)(2950100002)(230700001)(6116002)(4001350100001)(77096006)(6486002)(2501003)(83506001)(50466002)(64126003)(2906002)(478600001);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0802MB2493;H:[10.2.206.69];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjA4MDJNQjI0OTM7MjM6cnc4MEtaNHZ4bm9aemxSYm5jOStySDVj?= =?utf-8?B?citmbzE3cjdhSmErU29sODI5MU95YU1wbG9QSVFpbUd2WFhVQW5lOThyWXZS?= =?utf-8?B?bHN4VUhCVXgzNWQ4SXgyRkd2aU53NW5pcUJERG02WWQxVUhsU0ZhYjEvOWp2?= =?utf-8?B?eFZIaGFLMk9aNHZWK212SkxmWHJtZXN6Y3JNU0M4SWwvUzRtNXFHUm1yVFRF?= =?utf-8?B?QzQ3aUh4TnRIMko4ZnFJRjBvUTFURnNyUU5UMVlLaGs3SW52alJDV3pHbTlS?= =?utf-8?B?T1NNejYwbnNGMDNqMGsyRFRNaW1PWEJkbUJMekN3UDluTzFBdXpoZjhNTXRR?= =?utf-8?B?QXpyYnhhaFVIbUVTU0ZSQVJSR010amRDaWRnQmVOaERXUEtDL2xrZFo0Wms0?= =?utf-8?B?cS94ZXhxdEs4Z24zaXBVbkZmSHVybXFXWGpFcVNCK0kzZFdYT2xnbVo1ek5s?= =?utf-8?B?cEt1cmR6WVE5bUV5YVVCUFdYNVg5eUEzWS9vYVBDS3N0cVdQZ0FCRU1UVUxC?= =?utf-8?B?YVhldzV5RTY3eEx6MWU5KzRRVFBEekdaRVFSZnd2MGJaSjZ1akZnRE9VRGNt?= =?utf-8?B?TkhzKyszenluTThpSS8vUVBpQmZoem13V1FuZGdxd1g3eU4wMG5ld3Vxa2xB?= =?utf-8?B?cUwrdHlGY3NKSTlLazlpemx3cXF0TjVGTTVjVUZrS0VuKzhWRUdoZlJyc28w?= =?utf-8?B?V21jVVJOZitpSldHQ1B1bXRnN1hYQVlPVTdQTGppNkgxeEN3cjAxbFVJVHhG?= =?utf-8?B?bDlJTnJhcGRIWCtKcUdWTGZjU1Rzc05aM3lrVGVlditoZE4xeE14dHpCbEFs?= =?utf-8?B?QTM4WGlkY0ZuOVNrZXk5Z1V1SUppaXhKZVRDVzhuSHliMDBiTG1NbDU2Zkt6?= =?utf-8?B?Slh1WlViRERVUkQ0Ykg0c1JRNGVZZzZTVkJSUXNYL0pYWlFDMXcycENKRDEy?= =?utf-8?B?MnpqdXFLM0JsNUpsMStlSkwraHNkaFl1dmR0QVhiM0ovTWM3WWtUbmFjSzVv?= =?utf-8?B?M05zRDdCRGNKUXZRMmVIT0NwNFQ3VFlVbkJiRmM2aHV6bW9VZWZGamx5cXJn?= =?utf-8?B?U011blgvU3pOYkdkRVZMeTNydGxMOHF4Z2dSL2dMcEMxWkN6U2xFd0IvZVd0?= =?utf-8?B?d2VzdEFoaGNaT2R1SXhvUHBkakFUSjFZMThsczVVb2xKZVY4TWVZSmRIbVY3?= =?utf-8?B?VmtpZEdRTExsL2VBWDVKUXFWL09TZktWd1Y4RW4vZ3hvSnhhTDlsOU9GM1gx?= =?utf-8?B?QlpSdHl4SG9QbGZnN2hma243RWlnL1JIYWhnNEkxdkhqN0pLZjVGYTE4TW5D?= =?utf-8?B?NWdlUkw0NnJKeHBuN0duMFJqbVZtYllIZXNIZXpSSEJ1VllTc2FyUk5aZVlJ?= =?utf-8?B?V1R0dTVZMEcvOEVNdmltWStsYlhvamJhOG1TT2dSRDlWQ0VNampZd29UQ21L?= =?utf-8?B?UmZyOTMreDloamYzTDJpcHRmTjdHV2dpU0pqWW9KV0RJZmdNMXRjQmVsQlJq?= =?utf-8?B?Q0hFdDZCVXMwOEJrSnBndk5rMXZtOHpnQXAwUjJNQnhuS000MGRwZ25vKy8x?= =?utf-8?B?TWtFeHpNR0V3Y3hOVkdXSzkzVEJTdDhxbjMzYUxLN0tGc1FMNk4vV2F6UHY0?= =?utf-8?B?bGZ3OE1wTG9ocE5ZOUVuQ09paGp4amwweVlZTEVYVEQ5NU4wdGl4NHpyRm0r?= =?utf-8?B?c3BHRWYyUjJjZGZXQ0RLRi9pT1pPemhXQUI5VWE4bFQ0MFVRTFhLM0RZWExm?= =?utf-8?B?ZUxCd1N0aFlrVy9BNW9JMCtGZXpHdS9jU2wxdk1ZQ2ZLYjRUWjJ2NE9Kekhq?= =?utf-8?B?WUlZNHc3Z21WNk5kalE1bU40angwOEVORkpRMU9DRE9UTEVYd0pOcTFDdDZ3?= =?utf-8?B?UmFRZU1UdlRTb2VyY0ZsbUtRREd1M0EzT3BZY29DOGtTSnNoakJnQkxuZlYy?= =?utf-8?B?b3doRWtibVNSMVE9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2493;6:/jAKTBf7bBqZpRnGwgM1TyusgQxvl7uA3n9TK3PpJHC42tBBapPaG5X51XZa/Y4uo+S1QZvo8kn6c/3q3MDoSy/yTuIE2glDS2V53dZYUPQHZoTc3HNLGVGsFOXieK+jCB9hrp/FakfiyEZZo3HcbVgrOA8zN1fUIPDxea8hmq49jYYwlqGMObdITlBbJvG+NtIcCK3PibUN3uusx80xXmz8pDG1GaLZcsp+uZgBuuXk7+Iy6hhnLYvi89I8vVzmSAUgGNr2G0vK/Rx/WtV51SRWhq202vdXQERka/xesyuRLmbDNx5sTj7muTiUBXM1aZNRO8NoNCUPKA+5/jJglQ==;5:L8199zkBnodDr4EfXpUZ8ggW26Lh/PWsXtmkNXe6FB3Ei2adwMv4XOYOvSo1NIU0Flx4V+MZshQt6PSqqM+6XfDXIUC087p1uTrSpeRfVwDtOxGhybRhvlrJVQ28b8fNJv/cuZVaNOAYHN93e6h6Lw==;24:Z7wkEhBhZyqavWiO82ZsP7kNdEuUr66kOrO7TGbMxTbZ2NvPKcHrCAHPZwyWVWAs/HAN6qGC1rpGkZldjjAhgyUFEdng9FhPqy+0ANjU6yU=;7:sMZ9Yv9if1eZUwgJGmA2pWQRfx34EpXR+3ZxfM80bN79dlpwwjWsEuQkY84D9roww9H4dC9KVXQcbFh2lLo9zf2qW7M/jMOU8V/zCFy16xGA7jDgvbSDDX11yv3RUtWM1Aic/jC/4RFEeM+OZYi11vH+5dgGreleMgZNU4MaFfNcWQi5zM89V4L2IEBHfqswTWWynZmN4ewRkoYVAsM99YYPc4YuAPCZudj7fB8LgXQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2017 17:58:07.0476 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2493 X-SW-Source: 2017-08/txt/msg00464.txt.bz2 On 11/08/17 12:22, Siddhesh Poyarekar wrote: > On Friday 11 August 2017 04:41 PM, Wilco Dijkstra wrote: >> Siddhesh Poyarekar wrote: >>> Functions like mempcpy, __mempcpy_chk and __memcpy_chk continue to call the >>> generic memcpy implementation. These two patches fix this by adding ifunc >>> entry points for these functions for generic, thunderx and falkor. >> >> I don't understand what the goal of this is since on AArch64 we always transform >> mempcpy to memcpy. Also why use ifuncs on the _chk variants? Are they ever >> used in cases where the last 1% of performance matters? > > I started off by writing this for __memcpy_chk because gcc transforms > memcpy to __memcpy_chk in some cases with -O3 and then extended it to > mempcpy for completeness. I'm not going to push too hard for mempcpy if > you strongly oppose it, but I am definitely interested in getting > __memcpy_chk ifuncs in. > ifuncs and asm implementations have a lot of non-trivial maintainance costs. as far as i understand *_chk calls are only generated when compiling with -D_FORTIFY_SOURCE=* and most of these checks could be inlined by the compiler (i.e. there is no need for runtime support in principle). may be the generic __memcpy_chk should call the ifunced memcpy so it goes through an extra plt indirection, but at least less target specific code is needed.