Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751735AbdCCNwn (ORCPT ); Fri, 3 Mar 2017 08:52:43 -0500 Received: from mail-db5eur01on0105.outbound.protection.outlook.com ([104.47.2.105]:55472 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751333AbdCCNwl (ORCPT ); Fri, 3 Mar 2017 08:52:41 -0500 Authentication-Results: davemloft.net; dkim=none (message not signed) header.d=none;davemloft.net; dmarc=none action=none header.from=virtuozzo.com; Subject: Re: [PATCH 01/26] compiler: introduce noinline_for_kasan annotation To: Arnd Bergmann , References: <20170302163834.2273519-1-arnd@arndb.de> <20170302163834.2273519-2-arnd@arndb.de> CC: Alexander Potapenko , Dmitry Vyukov , , , , , , "David S . Miller" From: Andrey Ryabinin Message-ID: <7e7a62de-3b79-6044-72fa-4ade418953d1@virtuozzo.com> Date: Fri, 3 Mar 2017 16:50:20 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <20170302163834.2273519-2-arnd@arndb.de> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: AM4PR0701CA0029.eurprd07.prod.outlook.com (10.165.102.39) To HE1PR0801MB2057.eurprd08.prod.outlook.com (10.168.95.22) X-MS-Office365-Filtering-Correlation-Id: ed033e7f-cae6-46bf-757e-08d4623c14a5 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:HE1PR0801MB2057; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB2057;3:k3XIyM5tgT9gKqOAS2CIfvtlfWZP1Q8AzTNWv+wHlqRR30vHWZQT37LreDtlU+/Dw4BFAaO1t1dJCY9G7ducCHO18sYDnZ03nKQ+jqGJ84Nke72kUVqfOTmctSjRIltsZWDOu7iJX6ByjbiYuARtDxKHNmHfzVsr3lR8etwqpZ9uo7vkIR9gapmgHHXFl6ufF73xdgaRUa+xJWcoRVcgyCYSPTjrdZ10csjoPpG1QYfI0CVsy/jDwYsStwgnmhviwLyoTobNVg0xeF7C/450NA==;25:g//7tE9WuCvPAv4gnE0qbF/DqrIxmV/HDKhT4AVVoAN7++xULo5t7zz7Y7ZsTli+HuuTGOVVrq7LwCm+c93kJuDWeDEdGcHsuz698NBBT6ffGvOGvR9LJl3ud3/cblbrQn3BAsZkg36pc1Z7jsVImGBB5hq3SuSaODqmLLAKVwXQnVpQAbwLXbIm5KYnC8P6P1vkm6MgSahGG0OyOncjR4uhhBZ/dNyLmz4mVj3YHrEsAZzH49/CKVoVTmdrNeS0QKqaDFIdrhqOl/DBggKvuvY3gf996xL2ZuqGYecS8j1MFKXbaIUNGYOQRHikLswV/DIhcbVqTvm3o7XlrCOpTIlU1zcFEE2qm88s2rRDEk1QSapdYtLQmQn5Qv4THxPDu+PrRq79jDKmDDJz5wMrnNNyu50OSd+TYvnwy3RWhzFUziKLbOvBLUeVC6/oKfQiKNYiW1BQwZUDHGkOWB02HQ== X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB2057;31:pesqL6AK6VLB5MP3XL67C2/n3kYEmEGonVyLEOtbJb+vPqyPiGHooQhXosRuYb9xgy4UkejjUzNNH5exrTn/IdBQsNOBZ8DpmhcurDjvPSjOv2F1pmP114Oh1lZ/pFiZT30892DfsQiWPmYCla3ungX87Y4rzc2wAug6SKJ5VTmlia3/hnTXsc8RTUir4xM7n3lgA1XESVRbaAnawRBGQMVJLWRSkzzQOHY3O6ZvDkJbyVQ2FZGGieoPkBtrQdG2hlQw3uoy8cTbGUxhOw138g==;20:wvTJqJnROcfKfCAb+bC4chX/dBI/C5nTyMdrqHCZLP5gTViBCStMoQTiABhR34HPB4g8I5VJ9V3yyM0jU91P3eV7jEiXqvjxUcAr8S6PaKup/13GaVsPtzo6/hwcZLSFT1Ba3P68wHb2NVdnrQdnJv3vFF0kw9NG+h8I9AN489ZzK9ciYFElzVqI0/NnpwKWZhqg3NBHrXATqRSCAMgE8U7bvdpbBkRgH7CdxMiyjhMr0a4O40AnYb9s6VXzKZuEcWSWerzn2P1uD3DCTyoOocXdtVzOUu8Y0XbxUvLa4LAetlsZ3UGEf+sT5uggL7uT+D9nIw/8KUE3HOptbxQryAPCbimp1Hg4po3LT9dGUehfDbusIJZVv7+5iIV0J9VGRdXJWhR3L58K8Z3zNHabHwePGBJeSw12ukU+2UhTZ4Y= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123558025)(20161123564025)(20161123555025)(20161123562025)(20161123560025)(6072148);SRVR:HE1PR0801MB2057;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0801MB2057; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB2057;4:68kAWgDOLX+InLoaMtGdt+E7YOaztTQBXd6Kqzpf+fhOFC4i+lxThVNe3HujhEtZ/QS7NGGw0CbhEDtLCajx7tsDswvHtXkxuW7Hixp8MJV97bAHsDGyWx58Gu5g4w1vcz5K4x3vzttd2j9H6jmxJFF724HgvhETogXQXDfL+JNsKxO4rLfQezYlYSexNhqt5NeC3SUkjSJeFPgKx7Id2lQXZ6eaaUD7/qiRVgtnrnzU1TIUC19T4bFn47GErhi7znlGSo++DSReMSRK4ITOyXFc6oEGe89NOUIkEIBXA6yLkR/d9cY2sYBDzOqYrmmoR9T059V7k1RvhHqYzoFWvpc+79XlIt3r7PPhuHktZ32W38qLu9It085X4xC/UbqaH7zSFhMAboSCPzqQel+8WFcauV+lfZfzHP6AJJjIX2dXdEOP86JdcyVOZFWd89CRqeu/j7DsaBq2EnmuoXy2ts9FNR77C4B2zGjW46FWXBtIYlxrvN7vyx1sNDe6Byor2jOfp08e1gZcy4IzbGBS1d8h6eUX7SFRveqSjNhyGdw+ZYDykpEWKZRS5oYk8ViN1eG4weDLC1pd9CN2VGNY218NfeEcjho6XNs4nsdRRfw= X-Forefront-PRVS: 0235CBE7D0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(39450400003)(377454003)(24454002)(2950100002)(50466002)(54906002)(64126003)(189998001)(6486002)(77096006)(33646002)(54356999)(2906002)(66066001)(92566002)(7736002)(25786008)(4326008)(7416002)(6666003)(4001350100001)(76176999)(50986999)(8676002)(305945005)(229853002)(230700001)(38730400002)(83506001)(47776003)(6246003)(65956001)(23746002)(81166006)(31696002)(5660300001)(53546006)(36756003)(86362001)(31686004)(6116002)(53936002)(42186005)(3846002)(65806001);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0801MB2057;H:[172.16.25.12];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;HE1PR0801MB2057;23:56xEwN4KRgw9YP+LA4xETMPpcockOdZJYlm?= =?Windows-1252?Q?zTyVUextdAZI9DdO8Zx/1eSqH2J5WKbOr7rZc+5v1TR4uYIRSXwRnm9g?= =?Windows-1252?Q?kzyFZrTV9PGyHEIxO4OunD2z12zBCArr4/R89qXr++BJ+un18XM1it9t?= =?Windows-1252?Q?47ij+ztnuFcgXdBPHAjV1TTH0aKCou6ZKGcn+FBdW07we4iWMQCSmAeq?= =?Windows-1252?Q?oXDU1g9YcwgVyZ4M5RV2WXR1mlUuA2/dgPmG/Dz9ErBlm2AnUIC6gReB?= =?Windows-1252?Q?rWxdyL64Nrsi80myfHczoaj6aXxvmOpWbbXWkI852QPC0PkWXMDZiVgD?= =?Windows-1252?Q?17tE0K25fRI+xAvHNe4ptETjtjpycWExLOa18B/UADCzlkvbfi/MFnYz?= =?Windows-1252?Q?WiUOFX52QS/VaiMcGzE4NVyoOf35GZO2ud96uH1cchPr4eOWZGT4Jbq5?= =?Windows-1252?Q?QkjuacvwFoyWrw36DYc6VfvjnkigqZjSjPDZUd+afLgGuafTI+g/4Q0M?= =?Windows-1252?Q?lbERBEe6aQ4JeofmD+Y38BgE5BTwFM4r1iqq+8QRLka8kPHWqLYfl3QE?= =?Windows-1252?Q?w7RGe2O4zEtRMgyNP5H8D+IvT4OipRQjiEv3IxTFchJBNUzMpgP5toEz?= =?Windows-1252?Q?GIhkioliTvmN8Z60QfXwR4TlLtFOSzxyCM8u+0ncAIDZVoqEtwswUEpT?= =?Windows-1252?Q?hLwbzgRqn2CwlAytXqGnHODAR5PB2xgO2GL0fI6cCp5mzDby+NsAB7a6?= =?Windows-1252?Q?B9/t+uO9cq3fjPK+yPeWfA31GqXrv1dxAu5m2hUwVHoc2841dzZ3qFnA?= =?Windows-1252?Q?UI0erk9mdl9Rr/yfXeJdqruCfZynmlBlg18O3OOf4SrWE7S7NkP/CtuV?= =?Windows-1252?Q?1BJJxpE6EzQqptBI+bD0tn/oNN9or7UUS3nXDfUjyGQ9kxWp2Y2CThIe?= =?Windows-1252?Q?i0Iwd+d9gOqDz/RCtj7QTnwdLWZd+TQXXMLcmuZoOyeNHPaERh59dbET?= =?Windows-1252?Q?ec6SpEtvP6VBb6kMFMYZM4MlT+BO72hIt4gBDxsZSCbX6CzptTQCIBuv?= =?Windows-1252?Q?yGFEuT5+0bd3dl14yXAz3sI2rGyoYxsMB+bUdMlr6IARklQS6qJ9DXCG?= =?Windows-1252?Q?y++fRzuRD24RVeLwtMLLeFsUcc7DNPrz8gMReRXFcvDevOGB6FuYDg3I?= =?Windows-1252?Q?fE5XWyB+6iYiCLKMGsgVT+3Isz/ivLvmKLpua2xnq99/dLbLZWw7ZoST?= =?Windows-1252?Q?fLTi2uJePlI8WIfU5VwWTnmbk2tR+KVbHcicrcsiIQESG68hB/ALzq3i?= =?Windows-1252?Q?G9QsJ?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB2057;6:3N0M6dhzXZpr7oW835Tqme2leMlpBAvf4C1+gdX8nBAoUOFQ+icqgp+UpPMACiAzyq+Z/FrLejgeLHLwi8FRMBayaaaAZaNd5w1O9yD1QcVLB0Fj8OQfCbl50wcwE1zMecWbvj3AT63q1O20Io+odqxE5LadGLBf961wnH/XBcu8dYvE9624IF45zOWeQEl99HpHUJOHjXwP7Zh4RFrIbvhl9vAQ7HhPsnanFRNXeZo+s7oPKiPZTWSvl97CLbG2V4GZstpIuLfEZY69JE/wOs6AZk4OvS17VmJk3isRTyu+I6Cz0GHCFfgvGHXR6Swf9rlyb8+lzQtFTvkVxGY5zixiYDxd7ozyfGzGXWiJBb1xkml967nOKjdM+e4w4kpFZUuB7BwtUrBf6HKgXdpNAg==;5:Ov9iQ/yUFQshyVQHoxW661fJdvUIRqhTpH3o9cHruCDvz+DeVK9C6kpHF+sVyT9NN3SHE8Lm56VXYNA4fLRcRmP49WnuWpwGuwtbLawBxg74avKNDnOHMC6ugjpncYHzaXdgrd2QJZL5O2ua0P41pw==;24:3ixt0tS/hyzYpHCUGsbnAGsTAJExHJHgnYORch9pfmgGCKOz2L6lRHsBUCc3YnPMfxijvnntchVKqVHuPlrx67s/GD0NU9UAb+55a45v11M= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB2057;7:gtntR2zwh0OEJkfhwOspthKt4f3XR1/4/3nxJS6M/xWBpEWdkq7AEd5V4zNF1Y8oRt3BpWA1oKKtpmEoJWXWob7F0M1sZjumCYOtvgA3oXUhOlj1kDW2gcjdJpBXyikssPUnROzDnDoj3ILoAgQ09RYfYjNoX7KzTCC9CAAA2V+1zq2IkWGZUTi5RXGYH+BV5/MlQJKIUAoJSpIIQcOdgGv7aw0c6MpOfuoF/OeTRBeCV+tEBGBmCd9rp2ReXZKsD5sTXNTD5DpyEDIAbD2DCgOv9Px96KcZauKm4uf4HmHpTuwf5/gmzToIq6raPS28BR0iqFt7MdOyRIc8TVV9TQ==;20:IejG1U16ig5tXDml/r7YTxIl/6eQXtfHg+wwPzidDnFZUme6MhHdtZki/k66LHZf/+Q/lUmKQbinbhOC6ZhkouCq1COmY9h+wE+XAxZUuHjBBdlwnFcrRXImTRaiu+nt2kCDPlQBF49oQx7EnLPtJ/VgzpSX1u7q2nyrMPsuNY0= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2017 13:49:14.0752 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB2057 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1899 Lines: 48 On 03/02/2017 07:38 PM, Arnd Bergmann wrote: > When CONFIG_KASAN is set, we can run into some code that uses incredible > amounts of kernel stack: > > drivers/staging/dgnc/dgnc_neo.c:1056:1: error: the frame size of 11112 bytes is larger than 2048 bytes [-Werror=frame-larger-than=] > drivers/media/i2c/cx25840/cx25840-core.c:4960:1: error: the frame size of 94000 bytes is larger than 2048 bytes [-Werror=frame-larger-than=] > drivers/media/dvb-frontends/stv090x.c:3430:1: error: the frame size of 5312 bytes is larger than 3072 bytes [-Werror=frame-larger-than=] > > This happens when a sanitizer uses stack memory each time an inline function > gets called. This introduces a new annotation for those functions to make > them either 'inline' or 'noinline' dependning on the CONFIG_KASAN symbol. > > Signed-off-by: Arnd Bergmann > --- > include/linux/compiler.h | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/include/linux/compiler.h b/include/linux/compiler.h > index f8110051188f..56b90897a459 100644 > --- a/include/linux/compiler.h > +++ b/include/linux/compiler.h > @@ -416,6 +416,17 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s > */ > #define noinline_for_stack noinline > > +/* > + * CONFIG_KASAN can lead to extreme stack usage with certain patterns when > + * one function gets inlined many times and each instance requires a stack > + * ckeck. > + */ > +#ifdef CONFIG_KASAN > +#define noinline_for_kasan noinline __maybe_unused noinline_iff_kasan might be a better name. noinline_for_kasan gives the impression that we always noinline function for the sake of kasan, while noinline_iff_kasan clearly indicates that function is noinline only if kasan is used. > +#else > +#define noinline_for_kasan inline > +#endif > + > #ifndef __always_inline > #define __always_inline inline > #endif >