From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1031944AbdIZTh4 (ORCPT ); Tue, 26 Sep 2017 15:37:56 -0400 Received: from mail-he1eur01on0127.outbound.protection.outlook.com ([104.47.0.127]:54965 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S935225AbdIZThv (ORCPT ); Tue, 26 Sep 2017 15:37:51 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; Subject: Re: [PATCH v4 9/9] kasan: rework Kconfig settings To: Arnd Bergmann , Masahiro Yamada , Michal Marek , Andrew Morton Cc: Mauro Carvalho Chehab , Jiri Pirko , Arend van Spriel , Kalle Valo , "David S. Miller" , Alexander Potapenko , Dmitry Vyukov , Kees Cook , Geert Uytterhoeven , Greg Kroah-Hartman , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com, brcm80211-dev-list@cypress.com, kasan-dev@googlegroups.com, linux-kbuild@vger.kernel.org, Jakub Jelinek , =?UTF-8?Q?Martin_Li=c5=a1ka?= References: <20170922212930.620249-1-arnd@arndb.de> <20170922212930.620249-10-arnd@arndb.de> From: Andrey Ryabinin Message-ID: Date: Tue, 26 Sep 2017 22:36:38 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <20170922212930.620249-10-arnd@arndb.de> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [84.47.128.244] X-ClientProxiedBy: VI1PR0102CA0005.eurprd01.prod.exchangelabs.com (2603:10a6:802::18) To VI1PR08MB2832.eurprd08.prod.outlook.com (2603:10a6:802:25::31) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2fad0bee-a937-48ab-4ba7-08d505161119 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(201703131423075)(201703031133081)(201702281549075);SRVR:VI1PR08MB2832; X-Microsoft-Exchange-Diagnostics: 1;VI1PR08MB2832;3:9xRNx1BMA254QeDI/zMmsJQF6Ju83Lt6SzcIFgJ24Ul96zIWCQBa3h4A4Z2L8oP1BK1kUN/G6hbyE2SAe7Mzceg/rv+/Eo3jRAu0wMDMB/RJeNEuJHzteHNFwzd2fF11YJRhKxa1CHBddLu12oA2QSlAnPqSIDI2kFBlaJksJrfl+yIAV1zNUL7i7dnC5+lc+epIYVvqGNfoFkAJ/8FGPtHLixkjf5WV738r1WbzL0GRrDseAfC0CLeL8qeYd6LJ;25:wnG3cEEZd/UXNmbqKr3V4LL8wjppmEi4Z//M/EUf6S4XnYG53k0SDhoj37fuNKHvzHKM2u4nTDD0/CHhaUShUsVGPOuBuFGUGGfUfvP6JIBgKFIsdLSE68CGwUzYF2Zq2yQb2NdWKUHCdzr4pMpaRwf4fPecfb8Tjno6h6nss2z3xIopykdUnY9uSzvx4qS4ZON1LX/vgBKhdRYu/vY1ZCZV8ik6UEwQ0NMMt6CgNRtihkNjZMVWUV2nWNUYSmH/jzliPNSQMLtTPLlHKzMZhjqSG8o7knTPL642HckyRRfXyWWQ+DOUni6VkDezBvFIU/4mvMtUDHfgf9sfPw7xYw==;31:b3Y8bcGFfMUhEi7hM8R43qWW5SdOQLOi3ocV5B8c22FYluDLcTc0d/m09KQk0I6NtRbKKU4khMVpDj0PjBo//Ek4+Y/SXic5A40O5gdO5OZ5tqFVg47AHpBTWOqD/Te3sLLeZaAxpJXKle2+COE7FFASB4AlyDyztwLJJ1iWBp82l2JTIKdyLITxrWTq51d/32FWU5nCuxVuGiaVphHT5+twUNXGRg/E+O7+veziYTQ= X-MS-TrafficTypeDiagnostic: VI1PR08MB2832: X-Microsoft-Exchange-Diagnostics: 1;VI1PR08MB2832;20:q2NalO7xTqOvaTWnWPO8GyWd/XnZSUeCF4+gEdaoqwAW64gqthrowbGUijoBaZtx/YHeBQcca0eEA5lX7rGQB6XDbImumOyoiA6XaQJWAC7W+0hPZGtAY+4h3vKmZB6/yYTaRReyZT+5AVJJ+fu8v19cyQEbebaWx/OwZ5F4FhdEy/lDRcsaT0e3VMqoPVMnd5bAO7QoP4c8bviUdEViyeAVCP63HU25v+HGqlx7oWyy3xUHS3tRqjj1ZdKbCZo3qtH9vxuBaYX15aeL9l6h23HzBDFBtwEiylbW6qkvaqcJh4KKCPlRx2hImQ/e+wFm/bpB21P2TdC75Iv6R4vUgkiqyVawFOFATloFa0L/P4IgUMwufcTwdJPdQ5mgthlBJF5y26b5Oqg3YcUalG5wQwT6VSOIWRUiX6BbXoX/oWY=;4:M3XU8dr+T4VVXWtXqFwivi0noyZm05daIqX/gbUM0A76XS2BWp7wyk9GwFBv5QOR+SK5tLaWPwH7IZ2FQyK5aDFsJLmHAos+b+Zf45nUL/Nz+RCrFZlfAz5jNFmp4Nsc2SAlnfwIQ3oZztth1S02/B9Sq6ReCeU9nqoayVBTCb4Lcth6NcIwhNbgRntntd3jU4vGqmnQRZZFGSB+0h3jfVsA7LywRUAoGgLz8EpF2/+RPYseATsRX6bGkQcBC5mzKag4LkOrbWofLhXcEGgN3XdPVYHvB6aFSUlhqWiMTj7pFA/Gpd9gfFrIimDQ+3DIfpzC/gio1Ba6Opy3gLF9og== X-Exchange-Antispam-Report-Test: UriScan:(22074186197030)(183786458502308); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(3002001)(6041248)(20161123560025)(20161123555025)(20161123564025)(20161123558100)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:VI1PR08MB2832;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:VI1PR08MB2832; X-Forefront-PRVS: 0442E569BC X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(7370300001)(6049001)(6009001)(346002)(376002)(199003)(24454002)(377454003)(189002)(53936002)(6306002)(76176999)(4326008)(106356001)(83506001)(6246003)(97736004)(31696002)(33646002)(2950100002)(86362001)(230700001)(53546010)(68736007)(8676002)(81166006)(23676002)(66066001)(65956001)(64126003)(229853002)(47776003)(6116002)(305945005)(50986999)(7736002)(6486002)(7416002)(31686004)(105586002)(478600001)(50466002)(6666003)(7350300001)(36756003)(16576012)(2906002)(25786009)(58126008)(189998001)(81156014)(54356999)(316002)(77096006)(110136005)(65806001)(54906003)(3846002)(101416001)(5660300001)(65826007)(966005);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR08MB2832;H:[10.52.82.105];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjA4TUIyODMyOzIzOk5jeDlRYTA3V29ZdUpVNk11UzlXU0EvQkIr?= =?utf-8?B?OVFMa0ViMEp5ZWdEVzBwUUtuSStxUE9IYXR2bGRmTnRvYWhSdGFQOFA3UDBq?= =?utf-8?B?V01CbVByelBUL0NsRGRYRllReUNMNjVEOGtib3BMSnFSa0lYd2ZVUFlERzJl?= =?utf-8?B?NnBhdUNWNGE1aGlMeklNUDNNSjVWSHlUelcvY2s4Y3JHS1NVTGpKNEl6ODBr?= =?utf-8?B?N1ZndHNkd0JaUUE1SDlZMDRtZEEyZEVhSldyTFJGOHJmRFBmNy9Xemc1ZlNq?= =?utf-8?B?OWNoTTVxWm5ETVpkcGM4cU1tYVpGM0pURnBZcUZnUyt1ZEtMSFZSTW5SSGVq?= =?utf-8?B?OVlaZGVvQ2hIVjViZEVNL0c4NWxUeVJ0RGhMZG1qUVY2OEtFa3lGS2dmM2RR?= =?utf-8?B?OUJvc0t3SkJBZDNTWEZ5L0dzZm1Jc0tMVmpvbFF5aWFjeVpZY2ExWmVXZjlv?= =?utf-8?B?eG1RQXVMRW9Bd1Z1c2dXeStUZWtITWRrVXBLcVpGaEFIbDNZbXdYdDk1cjNN?= =?utf-8?B?NXJkZjV2NktDeTIyL3EwVlFaYzdmc2ZZMkVWWURNelF1aEFuc0M1MHphLzJp?= =?utf-8?B?NDF2WlJHdk1IaGVESFpqRkxyRjNqc0tGankyNDNxV0JSK1dLeEQwVHp6amhD?= =?utf-8?B?ZkJvQXVwMnFLb2J0cnl3QkhwUDBwdnpoNXQ2ZUNrdzlyKzJzdTZTdSt0QkF4?= =?utf-8?B?b2RYN0syalZFcWZLTkdnTnNOUGE5RVJ0aVJLTUtVaEFQbXlPazNnRytRTENP?= =?utf-8?B?c2lZbVUwVjZVUHBCeDhKZmVWSFlPcDVXbmt3ZXQvNDlheXZibTB0QzJSOVJO?= =?utf-8?B?QlVLdWhENmQzZDVxVk9MeGJWdDA3V1pOVEZPWE51V1ZVZ0l4R0xNcWhmOXJv?= =?utf-8?B?ek0xK3VUbTNldGtKdy9CSWdrbytqM2svTTJCNGJUNVFpSDNkNXRwbys4NXZ6?= =?utf-8?B?WW4zVk1QM1ZHWjRQeE5sQ0RaOWVSMlZzMmJyaGNlaGdUSEFWYWcxTktUaGFi?= =?utf-8?B?OEgzb1EwR3loZzdHemFadnQwR3JNT0MvVG1Bc2VxV3RvYTFYU21vd2gwQ2ZG?= =?utf-8?B?cWx3ckN0dmpFMitWanlQR1d5eC9YcGlRNkRna055TVBqT09NblVGcFl2SGx1?= =?utf-8?B?b0JMRDVQWlVPaVJwdjE1bmhManZmNXROQUJLdzZkZU15Y0VKalpBektya2Fj?= =?utf-8?B?cWtFd3RYSW5QeWdaWHgvY0FybXF0UlAyY1BJdEhucnRSMGp3S0xFUzhsZi9W?= =?utf-8?B?UTc3QkM0NVVGaFE1MkFVU1MyblBsWVFjSVVNWGtkTmU5RTJXRTR5NkNXUkR1?= =?utf-8?B?T2NJMjYyYWlYMlFlcm5rK0ZZWXJkWEhNcjlEWjhQeExBL21peVRRaERVNWVG?= =?utf-8?B?L2hpVFMvbFU4VnVpdDVLTE94YWE0dlRoVlgvdFAxT3hSbUNOQ01iUkYxcEVT?= =?utf-8?B?VVdvbTBZVktPV3phSFRKbkhFQjlJbCtuRWo0RmxTQnorcjJKaHROV2JFUjlw?= =?utf-8?B?cDQzZTZzc3FOdklNalNzNG91UXR4MDY4OExjZmdyc29CdGp0Y3luRU9WcTNO?= =?utf-8?B?SkNYM0VPLzcvWDcvU3J5Rmo2V0dpVGlSeE5ZK01BQytYSFk1OGVsZVQ5c3Jv?= =?utf-8?B?OVdySHhtSUY1SzJZekxpNG9vQ0xHTlc3akFhUFlUaU1hSW8yU0srQlM5U0I2?= =?utf-8?B?TEUwM09oWFZxeVBDbmp1TWpCWjVid2pCdjVpalJWcVErV2hGYlJZbkxaY2Fh?= =?utf-8?B?NVNTSGVhL0NBK0xnOTNZd0oya2h0MTQ2YWVBb3k0NGFIcW9FZnN4TENqallX?= =?utf-8?B?TTRkLy9Yck1RdlY4RkJCWWVZOWNDM3NOZlhhNzdFVEk0ZTJ5Rm8zR3F1QnV3?= =?utf-8?B?cHRQQ0lKRW5rNFVVeU9uSkhHanhyUDdEbXFrMDdrUm9PSUMwckJ5ZWRkZFVV?= =?utf-8?B?aFZPcll1MlFUam5UNCtVZkhBbXJta2ZPVFlTRWxJZldDVEptT1NwQVJiRXlj?= =?utf-8?Q?Gac7II?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR08MB2832;6:ce/aH3ZCe9LaxAFSrgb2xNh0h0RGxjFmUfanBJKeyOeXKjEhW2s88LfxSFzfA1PNwE1kflh1ww+GIRY7qpQV2nTz6rmsDOgzhZ3ezYyAMHNbl7PQr0sNMusXM1eLZDzUBy597SAHgnHPic7YMPAjmC0bVB8sPZXLxOlGcjEC2HyI3Xb3Gnh0mtSb7NSNHy9lklh+f0HyxWCRHqXaodCp/ImkIo0sZYSr5W9VaF03atqfqKcsEiiDKzXjqk85OFbH1WgJv5/lewzWGqmKwfP8m99jgDeiCvg2je+X8urUVYlrziAbAUEs+1OHbobAQmnL0jsu0I8rkGXZDIAnpG9jWw==;5:fXbMJIwYYw6eo+5KhBdIw/AzKbLrMRKSVv8PsEx32K9cbb196jBwwN3VbUEMtI4WPmJ4z8h/xYjtijXAJBvzQN6skjvc4nK3+b40BmQw8N8v9AP05sZujOVoupWdEgqwI4Z9/07oZh6MGfQ5TNRiDw==;24:KEUQhyECei10Y0NEBVlR6SQHMXWGu9YHNYagpVyWDSQpLgmKXUjcaZp79UaqDOlP3ez/3L5jvcDE8SmlhrKoAJcRHYCLttK9x5/t01xWg20=;7:wogxLipXUz1JkdKBg0B2+9QuEFIDCDjAD6vJhiWtWszgMSem8azdS0uf9DAue2CTRqk/GVe19FhEwwzmKDGgL4InGNTgtOVn8Sd8Kid2RjxHC8Ih13C7iDeJWI5TSa5+dpyDl+lkyterr1tp0YWt5Z2A2xeczNqWOnBRoxXDhRQSzO1JLGXr55N4QajDGlY2NFhM9KxsTYnW/Arwtbt64iQBunS/xMaT9o5SC/MHU1Q= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR08MB2832;20:i7oKvRg/94j3LWHBRPdgI2KWJwliJeUI4ApqQXC1a9AHKlABkdyRK5KXOx2woIrcIDtM75TTkkdh8hR6vWTBD48PuF5zqI7I1YCqH9ud37HNCCWen62xHR/XrDgpF2WjLvEUNw5FyiY62S/4M8PgzmYNOduPYh7FIL8ul3QcuPM= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2017 19:37:46.1457 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB2832 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/23/2017 12:29 AM, Arnd Bergmann wrote: > We get a lot of very large stack frames using gcc-7.0.1 with the default > -fsanitize-address-use-after-scope --param asan-stack=1 options, which > can easily cause an overflow of the kernel stack, e.g. > > drivers/gpu/drm/i915/gvt/handlers.c:2407:1: error: the frame size of 31216 bytes is larger than 2048 bytes > drivers/net/wireless/ralink/rt2x00/rt2800lib.c:5650:1: error: the frame size of 23632 bytes is larger than 2048 bytes > drivers/scsi/fnic/fnic_trace.c:451:1: error: the frame size of 5152 bytes is larger than 2048 bytes > fs/btrfs/relocation.c:1202:1: error: the frame size of 4256 bytes is larger than 2048 bytes > fs/fscache/stats.c:287:1: error: the frame size of 6552 bytes is larger than 2048 bytes > lib/atomic64_test.c:250:1: error: the frame size of 12616 bytes is larger than 2048 bytes > mm/vmscan.c:1367:1: error: the frame size of 5080 bytes is larger than 2048 bytes > net/wireless/nl80211.c:1905:1: error: the frame size of 4232 bytes is larger than 2048 bytes > > To reduce this risk, -fsanitize-address-use-after-scope is now split > out into a separate CONFIG_KASAN_EXTRA Kconfig option, leading to stack > frames that are smaller than 2 kilobytes most of the time on x86_64. An > earlier version of this patch also prevented combining KASAN_EXTRA with > KASAN_INLINE, but that is no longer necessary with gcc-7.0.1. > > A lot of warnings with KASAN_EXTRA go away if we disable KMEMCHECK, > as -fsanitize-address-use-after-scope seems to understand the builtin > memcpy, but adds checking code around an extern memcpy call. I had to work > around a circular dependency, as DEBUG_SLAB/SLUB depended on !KMEMCHECK, > while KASAN did it the other way round. Now we handle both the same way > and make KASAN and KMEMCHECK mutually exclusive. > > All patches to get the frame size below 2048 bytes with CONFIG_KASAN=y > and CONFIG_KASAN_EXTRA=n have been submitted along with this patch, so > we can bring back that default now. KASAN_EXTRA=y still causes lots of > warnings but now defaults to !COMPILE_TEST to disable it in allmodconfig, > and it remains disabled in all other defconfigs since it is a new option. > I arbitrarily raise the warning limit for KASAN_EXTRA to 3072 to reduce > the noise, but an allmodconfig kernel still has around 50 warnings > on gcc-7. > > I experimented a bit more with smaller stack frames and have another > follow-up series that reduces the warning limit for 64-bit architectures > to 1280 bytes (without CONFIG_KASAN). > > With earlier versions of this patch series, I also had patches to > address the warnings we get with KASAN and/or KASAN_EXTRA, using a > "noinline_if_stackbloat" annotation. That annotation now got replaced with > a gcc-8 bugfix (see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715) > and a workaround for older compilers, which means that KASAN_EXTRA is > now just as bad as before and will lead to an instant stack overflow in > a few extreme cases. > > This reverts parts of commit commit 3f181b4 ("lib/Kconfig.debug: disable > -Wframe-larger-than warnings with KASAN=y"). > > Signed-off-by: Arnd Bergmann Acked-by: Andrey Ryabinin