From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id A30C14881E for ; Sun, 18 Feb 2024 16:25:51 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 232D268D35D; Sun, 18 Feb 2024 18:25:48 +0200 (EET) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04olkn2063.outbound.protection.outlook.com [40.92.75.63]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C6DC568D32E for ; Sun, 18 Feb 2024 18:25:41 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GtU91xEPhPtsWoibhdpDyVniW21jd2CKIXkgL3OOGRRBoyP459KSSjoLHtqMkZK819OkmX0vgaGYG/3twsCOacsBfMXOTZFaswAndJZtd0gDcGpEkDctuzTiWJObtnNzZqOU3mqyxBXSlz0T0cLiZSI4PvRm0YxbuOGZ6QHOgkvifIuy9ANV8FpSjnhRqNp6xJtiiNr4Z0gq6bByT19BWjfXaw/5oHdNokhmcGsBafW4OWFz6ja5tH0iJX47UCT34sa8XHKhHG0BmnMsl3owTq4I8kMnwZBdXTqeNpxO/AjEv7z4rYlBeef6GLH9al5VhvOzn1VdvhEJf40bwWRl3w== 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=p92JQDi+lCHnwxnjcyjzAryOrYgKBhR2HA4lpWCw7qI=; b=gwV1Um71hWqnJmYdWW1Vk05EY1JAO1RdbH9n+ehc7qCbsU2MTfa+KZKrWISxIsot3/NUewQSanLBmgJB2fzvvMrZr6T4jRtoQAy4G5WdzxF10We3GFIX8pYCFRsoVL77ETPWHsHp9zSklMSqgRfOBYwF51YXdpQaE0ZI6PbZNGLy/bfJd4qlGExzx0M8UlDy34gMquFK9VyWhuneTb1LFg3798mHLNSvWImVL7In+2yssVbW0IDeftByqNp6ZqthSL5MiCfb3fFkztAQF26S3nxMB99He5drRBmN8A812jwGkzxEWp3d2gR6GZMuQBgKOq5wke3azJAAB5rf3MdS5A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=p92JQDi+lCHnwxnjcyjzAryOrYgKBhR2HA4lpWCw7qI=; b=ku9uXScpq/EKFT9rp8tOWIZYV61SbN+uICiQOENBDVSDuIiBdXgfg7lt3mcRVwm7xgtyCaXIbILsWY3ZaAGVaWCtLrgFvqLI99ov62CM9F1bYlcawEkAEZEFJYL740ZXhs8SiHhVqT9+nGiMlc5QrKcFfcFDaTvIxT4ZOTsOOsGB6Plj1ZAva2kX6hvf52V5x4+TAaUs1gR+JXI3Z0TwZ1NVMHQpnb97qOM44qt8dOOA2+BeSgwpcOzWWOTzPinEI5rZ98YVwdc3IM6Y1yIwDv+FhAPWIVneIBlXI5Z+APYcr1aFWTeb/zGQdBXhlfRFEIy5EJdGilGuQ3hA8HyWfg== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0239.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:278::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.31; Sun, 18 Feb 2024 16:25:39 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7292.033; Sun, 18 Feb 2024 16:25:39 +0000 Message-ID: Date: Sun, 18 Feb 2024 17:27:35 +0100 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20240218161636.15649-1-jamrial@gmail.com> From: Andreas Rheinhardt In-Reply-To: <20240218161636.15649-1-jamrial@gmail.com> X-TMN: [e2Rf0Tjbt2Efb6wz4qBuSMh1TdNXfbjsFzUCxjkKFm8=] X-ClientProxiedBy: ZR0P278CA0169.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:45::16) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0239:EE_ X-MS-Office365-Filtering-Correlation-Id: 703090ce-58f5-4511-02ba-08dc309e3e7c X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uiJDqCr754UHk5xyadFEcUWIBYiT+zTwGirnMP+6vPIYIeby8o85RIMbQgSYte5u1swiX4VHmYey29U5XPFrgTRYLd1fdtAVogHgz4X9b9bgsBekQvtZSZwbsmdCIT7Mv3oDLQcEUy3KF6bgoYKk4bQs5lXNuxulKOAuBh769xc9JFJWfrjWuJBYjnAAUMjF2tZSIj+w6p9zeasuUSP09Y9hPWdxlTZuY5L9n+sf3jDXq4IGg90jJH00Y6s7TuMo7WJHTYC6sKWmhGq6KP4wGy2HyXWVTgu5rt7HwVTktCBcqNeaJRcP4ooXC3X1CbgVorFUzjowTVq0d0W4SiPQDY00i94MNbdLpY2Fx+uaIKnDmClHMRwYT/mryVQzLmgwCMhthmF3GcfZtiC52BEhREqyPVWYTAUgRCwX1OPPo1HSNGbQLbLAOHbDFN4HUmpEQqWgtcFng6E4glvfeQki6WOKKom4egl5mOW5wqOh8NLxzKHJ1GdkmKIqSJfGj/lmICRSssTgRdf1KBmDS/Gjq7rk1xnD4ddoSFswMin01rZRZ2Iy16ID0vBF/nmjTgzC X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ajFhdWhKZDZ4T2hnV1dUbXlBUDM4MmxoTld6TjZBV1dlRVNlK0xGRUdrcHIv?= =?utf-8?B?Ky8ySzc0bktMZlBSRXI4OUx1YWdVa2t6c0J6SFFsU1l2WHMrejUzekxRdE94?= =?utf-8?B?ZFdWZkp1NGdDZFh2T24wVVRoV1l6cVAvMXpmaDQrN3Q1cUtnTTBlYzVLZGR1?= =?utf-8?B?QUhWN3ZUVEo1YmhKVHYyYkZBN1hFclZsQ0l4VU9IMm9XL3RZMzZxN0ZDTmw4?= =?utf-8?B?LzMxZ3VPQzgzYXhjOHo0TDBlaWpLSFJnZGlnMEQ5Um8wcjVJRWJFdUJGNzdo?= =?utf-8?B?Z2t1ZG1iR250b29GVGp1OHp0bHhXNmR4RkxFdG13SXJ2bEgva1Z6eUxZVnlp?= =?utf-8?B?bTlzbjZjTTJsQW1zcG10TEVHTlJERTNiTTFOeUMrTWVIbkd4WDIvOVZlaFlt?= =?utf-8?B?c1VkdVNObmM4TUhJVW5iU01VOWF0T1BlTFhpaWNnMzN2WHhreFFpL2tpZmdp?= =?utf-8?B?VW5yYmpTVzZLVmlKN3ZKai9RaFFDZXBoNElvbk5YWVZRV3FsZEp2WHJaZ3Js?= =?utf-8?B?eWI4VmJlMi9FbDVURFduVlg2UDVDV2hFTG1zemlNSVo4WDFjRUNCdDlJcFF4?= =?utf-8?B?Z2wyNlZaSlhFZVVDWWI0NXlEMGNkQWYzSE5vS0k4dTZaOTE3c3NybEJRa2RO?= =?utf-8?B?THl5NmRWWEdUZGlxTVl1QTVCT3JRaS9hUitIUm4rM09SeEUyRm9XNHVCVGp1?= =?utf-8?B?eUFONGp3RmtZcHFGYjJPaE0xenFpcnFKVnlaaENiMVhNL3JmS2hHbFZBWitE?= =?utf-8?B?NjVwM1FuMHNGTU0yRUNveTUzRi9RYTExT0c0U3VFUk53VTBKTmpGaVk2RGd6?= =?utf-8?B?RnhBK1hHdHRuM1J0UEE3c1hCUnpzS2UxZjVjTEhzOVlCNHJldUhiNUIyK3Ny?= =?utf-8?B?R1BYMlYyMU5NQ3R3eFZQNlVuMVI3RVE1NDdWeUhVZFdTVERUWWtRMlZxY2Z1?= =?utf-8?B?WW9DeEYvK09ZQnlod2RheGE1cU53QTFEWk1KZFk5R3pPNkZBZ3ZLYUVOSWQx?= =?utf-8?B?dnpwRzFXVzJoNHhtSTRCdlFaNk05TU9xZXordXE2bjY1SExKNGFxMUdTN2pQ?= =?utf-8?B?Yk5wa3FWcmdyQjgrY1BWYVhSaVBXcG9hM3FYWGxjaTlMQkNtV05XZ0FpVHVy?= =?utf-8?B?WFFOOXhBYW9ac29SZzdMeXJNbHVXemZxd1JjTWpTTlZnTVUrREJ2QmJsTy9R?= =?utf-8?B?d2Uvd1h0R3B5WmEvKzU3ZnF4TWRrMDY0N25jVElmMHZRTEdGRytGdVhCSGtN?= =?utf-8?B?Y0RTOTY1ckNpbUpvUGwrd1BUdllCdzEvM281cE1KSm1IWm1lQ1EvQkh0VEcy?= =?utf-8?B?QURQbDRFUVN2YnpNK3ZjQ3JWRFNZeUpYdmJPLzhVckhOWFBzMnFDeWZqUXRZ?= =?utf-8?B?dklveFplVGI2UVBSekxLYjRTTVJibWxWRWM3MlR3VEJwN3NkYjZLUkhJUmFN?= =?utf-8?B?bFZXT0tQamxkRnJqSGJ2bEhHY1VFMmk4YlhnTlFsWU9tZ042WFd0Yml0WE9I?= =?utf-8?B?TTZNeER6eG5qd211eEpqV2lXVzY4NFB4OTA4Y3ZIbFNET3BxcEEyS0R6L0Ju?= =?utf-8?B?T1YxMGllRTNvdk1FOUFoMDNhQ1ZpMC9wYUtkb3hWQkcvU0pCN05sY21xQkFQ?= =?utf-8?B?NmNNcksxZysrZGtMc1V3VzZNVHUyeGxQcHFmcEplL1I0MkpySnBCaUlFMTFl?= =?utf-8?B?ZTNrOHB6ZVBFVXBaUVpCK1hESmIzVGNlZmQvZU93RmZRbmJiMHdUcUV3PT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 703090ce-58f5-4511-02ba-08dc309e3e7c X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2024 16:25:39.2983 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2P250MB0239 Subject: Re: [FFmpeg-devel] [PATCH] avutil/mem: use C11 aligned_malloc() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: James Almer: > Save for the Microsoft C Runtime library, where free() can't handle aligned > buffers, aligned_malloc() should be available and working on all supported > targets. > Also, malloc() alone may be sufficient if alignment requirement is low, so add > a check for it. > > Signed-off-by: James Almer > --- > configure | 2 -- > libavutil/mem.c | 42 ++++++------------------------------------ > 2 files changed, 6 insertions(+), 38 deletions(-) > > diff --git a/configure b/configure > index 7c45ac25c8..8fd2895ac2 100755 > --- a/configure > +++ b/configure > @@ -6450,8 +6450,6 @@ if test -n "$custom_allocator"; then > fi > > check_func_headers malloc.h _aligned_malloc && enable aligned_malloc > -check_func ${malloc_prefix}memalign && enable memalign > -check_func ${malloc_prefix}posix_memalign && enable posix_memalign > > check_func access > check_func_headers stdlib.h arc4random_buf > diff --git a/libavutil/mem.c b/libavutil/mem.c > index 36b8940a0c..a72981d1ab 100644 > --- a/libavutil/mem.c > +++ b/libavutil/mem.c > @@ -100,44 +100,14 @@ void *av_malloc(size_t size) > if (size > atomic_load_explicit(&max_alloc_size, memory_order_relaxed)) > return NULL; > > -#if HAVE_POSIX_MEMALIGN > - if (size) //OS X on SDK 10.6 has a broken posix_memalign implementation > - if (posix_memalign(&ptr, ALIGN, size)) > - ptr = NULL; > -#elif HAVE_ALIGNED_MALLOC > +#if HAVE_ALIGNED_MALLOC > ptr = _aligned_malloc(size, ALIGN); > -#elif HAVE_MEMALIGN > -#ifndef __DJGPP__ > - ptr = memalign(ALIGN, size); > -#else > - ptr = memalign(size, ALIGN); > -#endif > - /* Why 64? > - * Indeed, we should align it: > - * on 4 for 386 > - * on 16 for 486 > - * on 32 for 586, PPro - K6-III > - * on 64 for K7 (maybe for P3 too). > - * Because L1 and L2 caches are aligned on those values. > - * But I don't want to code such logic here! > - */ > - /* Why 32? > - * For AVX ASM. SSE / NEON needs only 16. > - * Why not larger? Because I did not see a difference in benchmarks ... > - */ > - /* benchmarks with P3 > - * memalign(64) + 1 3071, 3051, 3032 > - * memalign(64) + 2 3051, 3032, 3041 > - * memalign(64) + 4 2911, 2896, 2915 > - * memalign(64) + 8 2545, 2554, 2550 > - * memalign(64) + 16 2543, 2572, 2563 > - * memalign(64) + 32 2546, 2545, 2571 > - * memalign(64) + 64 2570, 2533, 2558 > - * > - * BTW, malloc seems to do 8-byte alignment by default here. > - */ > #else > - ptr = malloc(size); > + // malloc may already allocate sufficiently aligned buffers > + if (ALIGN > _Alignof(max_align_t)) > + ptr = aligned_malloc(size, ALIGN); > + else > + ptr = malloc(size); > #endif > if(!ptr && !size) { > size = 1; 1. The function is called aligned_alloc (how did you test this?). 2. C11: "The value of alignment shall be a valid alignment supported by the implementation and the value of size shall be an integral multiple of alignment." a) To use this, you would have to round size upwards; but this will make sanitiziers more lenient. b) If ALIGN is just not supported by the implementation, then everything is UB in C11. 3. What's the advantage of this patch anyway? - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".