From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932137AbcFUQdd (ORCPT ); Tue, 21 Jun 2016 12:33:33 -0400 Received: from mail-db3on0146.outbound.protection.outlook.com ([157.55.234.146]:56049 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752501AbcFUQdR (ORCPT ); Tue, 21 Jun 2016 12:33:17 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; Subject: Re: [RFC][PATCH] arm: ubsan: select ARCH_HAS_UBSAN_SANITIZE_ALL To: Arnd Bergmann , References: <1466487545-22819-1-git-send-email-sw0312.kim@samsung.com> <12441230.VuJWJP4oWR@wuerfel> <3804659.HRLf903cuS@wuerfel> CC: Seung-Woo Kim , , From: Andrey Ryabinin Message-ID: <57696C7B.8050109@virtuozzo.com> Date: Tue, 21 Jun 2016 19:34:03 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <3804659.HRLf903cuS@wuerfel> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: VI1PR07CA0122.eurprd07.prod.outlook.com (10.165.229.176) To DB6PR0801MB1303.eurprd08.prod.outlook.com (10.168.11.21) X-MS-Office365-Filtering-Correlation-Id: 41db9988-adad-4355-6d20-08d399f1ba12 X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1303;2:bZwwKxdMw4FP7FrD7fE1GBgWG7obog6Sz3+ZtXeE7ykyrECZCw5xRVQJUGAX9b1kgmqx0g+omSZkEhi1Cp6VUe8SdLCkHsWaLnvW7XAzKLSoQP+3EwePBBuohOx/nKcIbL+lxtbiQmjAj/uEv5qrWMCf2YbzF96bBxGv7lPkdAmwe69pA+avAma8F++tY4hg;3:uDz1NokjTV3WTQesXs7fQwyWVQwb59fm3uNjoPqWurIbcvs5lHoM5jV2sC/WyMVJiXbvQmEsIz9VXOcIbCWLid+HVG4I+bkyti0ZXWE9FvmL5nyYRlX5FoDmh63P5+mv X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1303; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1303;25:kg++6PAkIRYL8d53uJ4PI3BhnIQquOOULDjbm9x+6pgHYQv301lYTu7waY8eXoFwiKggrelzfv403tQ9uEl42W6jq7xVGd3HaoJcBOXG/SCqLlhixSKze7MpEkjg8rs18M3v8xiNQbZkvVY5QDbK0VATLjaRw2pF84RxG9slCMlC+rjGaPZu8SmOmF0gmclN0L79XDpVpYSyA6yDz3+UpijkJ6/M70JDfldvDiRpa7fquA4U3vMdMXw9ntptMr1YKIDOF8B9yu53u7HhwGkaX+Ow+NAEWT+bSPj5zWsYEzKu28DrvX9N7bpxaeIQtOxESeAKsvLNE8QDVvfmlley4GC2SSW20FXg/cFzgUCBsE2jjBrZzAVyCShc3JnC4kjLICXfNd25nMt+muSxIpcuV/nOUmPV1BFJ88jhrYPYpo9zHRhk6hXpnVBzLfsgDYq4aA/NpYFKig/vV9D7sTkuLt5/CEzi78FuyQkmnNvyFcyxmh+KFgMRmMYZFXz2oQr+bEP7Ast7njuONhMrYNZlk9u2DQfNL8QNc7WvQuomPsuK85T9CwmkFvWT9qMkmmt6tl6bOTuZBcRzSaOWo0Y11rgsX63usH66StMKC/E44vdP1eEFJmdfPTEslT7a6gR6J6L4Hqdj8zUpKo2UsZAaPFoGuyO8ZoXPTSLMUxMb6aXRMMF4gMEgOuqDKk8Uq47sDFj6AllEgenIs+GiLQKD072L3dfX7drfLtN4vISQREk= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(131327999870524)(7411616537696); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041072)(6043046);SRVR:DB6PR0801MB1303;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1303; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1303;4:PNpWvzt1Jd8gnA3rOL5d4fd2Fdae7yo953SKfOs5Q9Tyn6MsLw3SXORJ/7mba/cJJtsUxMb+IL7Nvfz2gWWyvptCTqABEGykZ7cyi1kBclW81lEq5J/DMXros49aumfLBudL2y8FCNM5xIkjwarZViJm5YjbOO3pqkjLZiCXIMpvtviJT9g93w+DH++TFq9NIuTOctX61ieMgscUDOYX4qK4FYJRu1vmz4UMowZ2HVInN/CES3Waaj/ulg63d7LwkkGEPMPrfslRNOBXmP/5byjZichgrAs3GQthGA9ffFgCmYJuVA1qf7oK+385QgMLnN/8f6dvuDUE3LKkzRp/QD3eMZQ8PFupXX+fUdbY6EuDpVqSwYxFEMrz3Yo4JvDf2cmALa+ocEkM1aRIgfyHoQ3Xv6MYShZfmK7yMpbHFRpk0tRX4+Jr+oRA+svgtG4rqyoLu4vNrbEq0Pn6bd1NlLsjI+spn8Chn4C3E+w2E36nLILvZvwpNASvckxUSiA3 X-Forefront-PRVS: 098076C36C X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(189002)(199003)(377454003)(24454002)(99136001)(101416001)(76176999)(2950100001)(87266999)(65816999)(92566002)(19580405001)(65806001)(54356999)(68736007)(23746002)(83506001)(50986999)(7736002)(47776003)(66066001)(65956001)(189998001)(230700001)(106356001)(59896002)(5001770100001)(42186005)(80316001)(19580395003)(33656002)(97736004)(7846002)(6116002)(64126003)(3846002)(81156014)(8676002)(4326007)(105586002)(4001350100001)(81166006)(2906002)(77096005)(586003)(36756003)(50466002)(86362001);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0801MB1303;H:[10.30.19.223];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;DB6PR0801MB1303;23:HVvBfc8q9DQOvfwDoOIigR05/9wb0QLhDt2?= =?Windows-1252?Q?XEC373z9MXoV8NapLlV5yejU3lnOoaAw819Ddo1TRYIvNparA4apM7+2?= =?Windows-1252?Q?3xYe7z24M8vBtf3nzvNa2+DJjEbAhqGhRwzwKKtSSNC3LluSpHhquw9W?= =?Windows-1252?Q?O04ENNOPqmU5fwhmIyje9AY8TA+nljXWlGUNmvIlXoyWMab40Ki9nUK9?= =?Windows-1252?Q?FTr3uckKfngm6hDmN/dAo5QAkShOkl+9Im2dP7ucwDI/4/kyyOu6CkD8?= =?Windows-1252?Q?ns4e6DiKNB/zJAv1zj3vpHJHRNvmqpTNiHJejJWm1oqoqG7uu9nQ3p6S?= =?Windows-1252?Q?PGMnC+j6+xUCNl0OtxOUmHRiHUZb08ZgZdtYU8M3VBCmj7irfkJGRPgJ?= =?Windows-1252?Q?EkjrssAQ9d1/B9RCgHDqyOmEg6LOELBm6WuhIkJXuJH6CtQCha71jaFn?= =?Windows-1252?Q?LVYRPbyxJiBtjN7Fx/kCBoSqbzJrvOUkpf3JlJjDU8u95MdXPomdATTp?= =?Windows-1252?Q?FTqQiar6DMqA/PfR+MGftIBjR0wxEZDvO2awaC2yDwJKxdXDeIiQzHNq?= =?Windows-1252?Q?C5v8tf9nPadNbwdqUjlsM9r8h52pkRZh9vMT5LPJ3mqYwBqsEcCce3Sk?= =?Windows-1252?Q?cse8EhnKbtO68vsEvg90c1JHMaoa6PUhZaCj3pnxl5cBidK49SJ77dER?= =?Windows-1252?Q?WNVwbGMP3TZ+AM6xSpRt+SS3ddTakOeGvbuH6yXdMQjo81g/1IiDTTUk?= =?Windows-1252?Q?JY8pSxDBFoVeucomvQjyC4p7gRuvcEWPTx4fQWFqy66naLm4qh0NxBAF?= =?Windows-1252?Q?pZHhyI3JpbOU7RyZDndw/bI9nFncK2i7TFPpnOJUZ7Jy19UWjHKcawD4?= =?Windows-1252?Q?isZ8j4AApYJanq/Y8VOoFr6fePF9xO5I2NwMKP/X76qAqwrY/v2nVUBy?= =?Windows-1252?Q?lgqZaVKcQf1w8JgxyrczKbq3DPDWnWrI3dOc/G3r4k/duULg/LRkTs9E?= =?Windows-1252?Q?cuDsGyJbbYZjNNV2Bnt8hx/SQ9rLifeDebkPIgHEA+KOGuWxGmDGF6hg?= =?Windows-1252?Q?qbQFgRKjVUzRYam0XcBuhKjzVlAuyCjdlq8FLAK47gWArOBpLGrzXC0c?= =?Windows-1252?Q?n7a4HFivf+bu4C2w+miphyPMEZXPCA15GSRWLcs4VShTOuSYke7ZMr1+?= =?Windows-1252?Q?SDCb4/8WF/+enAHDgUgCxTmvVl0OZwkI9UNb0bCfK9WqflSBgcagKeTD?= =?Windows-1252?Q?kW2eBXu/CUnE/XotACU55Y3U4FfLcWvrurO2o03Wanl/oLLFNqT3XZfU?= =?Windows-1252?Q?vwBGr9Gt0xjGd6TTklg8/F1rqXWE+ZWbXtvEziyANxk1k7eZeXNUw5oi?= =?Windows-1252?Q?8ylP/BWVfNXzuJrWIkZSgmvYC7IKfPyIopg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1303;6:as43H+0k2N29yhUh22KjgM2CyPL4vmUSkfKBRgXnV4TWUMk7G9zRUyRgTF+cyLc5QxWpHMUlBgNn9tRUefXhWJX7RhFo1JlJkWe3qWJXWIbWQTwfKit4Y/Gf1S9eZuQBB2IKNQ2B/88urXzCdi2wsESKq4Fqa/e6E2uH99gR8b3WPt+73joIMMRoLHLjYsI/bB08r3DijMaK3haZnPwMT5XE3x98A8YTY2dg0U7AswFsBwibT6a14trLomakGU33leIEojOhIhufkAWjP+N+LPH5ustMcC+dlZAUHNT6s3HpBizY00gVB/pj1bb9Lgho;5:cv1EefktJYxNJJl6P6enQbJtBIqjJvt0/69aPNK2f2a1wIh+O1NOVOjqBaxtH2T4/W4X3SL6NbD73/4UcRzSmAvCSNwzxHYFsWuiYtxYf1aBK2s0pbSgo3Yk1h2SYfiJszHb95oeJv0fhJcb4qLMWQ==;24:bl70vBaBLOTY7Tc21eu2JBG+HGEh8tcqMyH+me+wt2dlGS5UB8iLCcZrfJ7kb8z8qnNdYQg3cP/CqhInIQLUyWo/9bjGZa8RDHeXfEbo9eg=;7:8+cdqFa1zpJv3lokR/WOCRbrKfFTgZNt+tLCjnQNxLl4lP1KpsemVYXGnAkfeAQlhDcoS+iQ4ORP8c+t7FU5dfrw5wX7/IHAHXr+CtXwnale25xMOAaYwqphlAq9DiUcSQmIXHPQY12Z2wY6RRPq6ed2Gv9h/3cFpWkqmv1J0O6fxIOGrkMIof25NIfOQGGXbGkMHb7mnJ45NqgbFwTVhHcInvohSKrLdeseQZEABJNn+tBsqIEmhjoy6tZKnjAM SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1303;20:TcaKAfb61ER0rxYB/8F1KdsI0EqSij53hjtyrjNN76ks7FwU9yb4pAfumbsqo0w38msb279+RNzlsw5z5DtLwIte+s/6P7VhZzCrL2iLXGca9gWAmPchBDvxNh2jXv/ABQASLqiHLFOKKFlrwca6GZRQJE36od92zPq9sUVreqc= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2016 16:33:06.9383 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1303 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/21/2016 02:44 PM, Arnd Bergmann wrote: > On Tuesday, June 21, 2016 10:43:19 AM CEST Arnd Bergmann wrote: >> On Tuesday, June 21, 2016 2:39:05 PM CEST Seung-Woo Kim wrote: >>> To enable UBSAN on arm, this patch enables ARCH_HAS_UBSAN_SANITIZE_ALL >>> from arm confiuration. Basic kernel booting is tested on arm kernel >>> enabled CONFIG_UBSAN_SANITIZE_ALL from Exynos5422 based Odroid-XU3 >>> board. >>> >>> Signed-off-by: Seung-Woo Kim >>> --- >>> Because I tested only with specific soc board, so I am not sure the ubsan is >>> fine for all other cases. So, I send this patch as a RFC. >>> >> >> I've tried this out on my build test box in the past, but ran into >> some problems. In particular I ended up disabling >> -fsanitize=signed-integer-overflow and -fsanitize=object-size >> and later reverting the whole thing, but don't remember exactly >> why (possibly I was hitting internal compiler errors?).' >> >> Let me re-enable it with your patch locally and report back >> with whatever build problems I run into. > > This is what I have run into so far, during a few dozen randconfig builds, > this is with "arm-linux-gnueabi-gcc (GCC) 6.0.0 20160323 (experimental)" > and I can try building a newer version if you think that helps. > Unlikely newer compiler will change anything. Ubsan causes register pressure and bloats code and stack. We could workaround most of the build errors bellow by bumping CONFIG_FRAME_WARN limit. > I left the duplicates in to show what happens how often: > > ../crypto/serpent_generic.c: In function '__serpent_setkey': > ../crypto/serpent_generic.c:436:1: error: the frame size of 1080 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] > ../drivers/media/dvb-frontends/mb86a16.c: In function 'mb86a16_set_fe': > ../drivers/media/dvb-frontends/mb86a16.c:1522:1: error: the frame size of 1096 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] > ../drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c: In function '_rtl8723be_read_adapter_info.constprop': > ../drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c:2243:1: error: the frame size of 1032 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] > ../drivers/gpu/drm/radeon/si_dpm.c: In function 'si_init_dte_leakage_table.constprop': > ../drivers/gpu/drm/radeon/si_dpm.c:2614:1: error: the frame size of 1096 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] > ../crypto/serpent_generic.c: In function '__serpent_setkey': > ../crypto/serpent_generic.c:436:1: error: the frame size of 1072 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] > ../crypto/serpent_generic.c: In function '__serpent_setkey': > ../crypto/serpent_generic.c:436:1: error: the frame size of 1072 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] > ../crypto/serpent_generic.c: In function '__serpent_setkey': > ../crypto/serpent_generic.c:436:1: error: the frame size of 1072 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] > drivers/media/built-in.o: In function `zl10353_calc_nominal_rate': > tea575x.c:(.text+0x1caa94): undefined reference to `____ilog2_NaN' > tea575x.c:(.text+0x1cafc8): undefined reference to `__aeabi_uldivmod' > tea575x.c:(.text+0x1cb02c): undefined reference to `__aeabi_uldivmod' > tea575x.c:(.text+0x1cb09c): undefined reference to `__aeabi_uldivmod' > tea575x.c:(.text+0x1cb2d4): undefined reference to `__aeabi_uldivmod' > tea575x.c:(.text+0x1cb3a8): undefined reference to `__aeabi_uldivmod' > drivers/media/built-in.o:tea575x.c:(.text+0x1cb410): more undefined references to `__aeabi_uldivmod' follow > ../drivers/video/fbdev/aty/atyfb_base.c: In function 'aty_bl_update_status': > ../drivers/video/fbdev/aty/atyfb_base.c:167:33: error: array subscript is above array bounds [-Werror=array-bounds] > return aty_ld_le32(lt_lcd_regs[index], par); > ~~~~~~~~~~~^~~~~~~ This is just a bug in code. lt_lcd_regs[] has only 9 elements, while: #define LCD_MISC_CNTL 0x14 .... aty_bl_update_status(): unsigned int reg = aty_ld_lcd(LCD_MISC_CNTL, par); > ../drivers/video/fbdev/aty/atyfb_base.c:152:26: error: array subscript is above array bounds [-Werror=array-bounds] > aty_st_le32(lt_lcd_regs[index], val, par); > ../drivers/gpu/drm/radeon/si_dpm.c: In function 'si_init_dte_leakage_table.constprop': > ../drivers/gpu/drm/radeon/si_dpm.c:2614:1: error: the frame size of 1096 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] > ../crypto/serpent_generic.c: In function '__serpent_setkey': > ../crypto/serpent_generic.c:436:1: error: the frame size of 1072 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] > ../drivers/video/fbdev/aty/atyfb_base.c: In function 'aty_bl_update_status': > ../drivers/video/fbdev/aty/atyfb_base.c:167:33: error: array subscript is above array bounds [-Werror=array-bounds] > return aty_ld_le32(lt_lcd_regs[index], par); > ~~~~~~~~~~~^~~~~~~ > ../drivers/video/fbdev/aty/atyfb_base.c:152:26: error: array subscript is above array bounds [-Werror=array-bounds] > aty_st_le32(lt_lcd_regs[index], val, par); > ../crypto/serpent_generic.c: In function '__serpent_setkey': > ../crypto/serpent_generic.c:436:1: error: the frame size of 1080 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] > > > Some warnings go away after I turn off -fsanitize=signed-integer-overflow and > -fsanitize=object-size, but the one in crypto/serpent_generic.c remains > unchanged. __serpent_setkey() bloat caused by alignment checks, i.e. -fsanitize=alignment > > Arnd >