From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751297AbeAWJYu (ORCPT ); Tue, 23 Jan 2018 04:24:50 -0500 Received: from mail-ve1eur01on0139.outbound.protection.outlook.com ([104.47.1.139]:29772 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751154AbeAWJYq (ORCPT ); Tue, 23 Jan 2018 04:24:46 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; Subject: Re: [PATCH v2] kasan: don't emit builtin calls when sanitization is off To: Andrey Konovalov , Masahiro Yamada , Michal Marek , Alexander Potapenko , Dmitry Vyukov , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com Cc: Kostya Serebryany , Evgeniy Stepanov , Nick Desaulniers , Stephen Hines , Pirama Arumuga Nainar , Manoj Gupta , Greg Hackmann , Andrew Morton References: <8ffecfffe04088c52c42b92739c2bd8a0bcb3f5e.1516384594.git.andreyknvl@google.com> From: Andrey Ryabinin Message-ID: <15410102-0647-10e3-beeb-9e4debede735@virtuozzo.com> Date: Tue, 23 Jan 2018 12:24:54 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <8ffecfffe04088c52c42b92739c2bd8a0bcb3f5e.1516384594.git.andreyknvl@google.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: DB6PR07CA0009.eurprd07.prod.outlook.com (2603:10a6:6:2d::19) To HE1PR08MB2825.eurprd08.prod.outlook.com (2603:10a6:7:2e::24) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7805056b-ac05-48db-ef40-08d5624321f9 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(4534145)(7168020)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020);SRVR:HE1PR08MB2825; X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB2825;3:blIgwvQ2Iir3odRufnWZ1FMKU+eVqj3VXdwcRRezLs1AnmFuM4q2KDzVpYFRkv4OWVFCnD2zIBiKJ+o8qLAX8t1cLj5wm5ugcJgLGGFlI5Je1sAOUBoChAAgN1zYl1OdwgsWVpBaAk31OKM9sRjtzFYnz2433ooZ5pYJCpSp40gV4ViTnVIZzD67fpCRhxAAp1rg6PHN+Xo+L5z7NmfKIxuGNkmKwc9JP5+W88lAiKq+MO7DSUt2LXsJE0OBVwvp;25:pUGWAKwaD+FAiX+VRqw4vQ9w56j1ZOoVZCel3LQuWnUM+OhQ1c+Wyag6CUE3XhK3/QMmL5Q6WsS2d/DdLY2WDZVVQe+iPs8ATA9TR/2e5QtrmXBhEhINcKjHzD/brCV8XETnsMkBtNthops5p+NHtoZpw96U81ZFd8dymbWbFlYkmvRUiYx78FCDNbdCB1YYkxHFn1CB2vipAFZTe62PeWj85Lwaik5XNqyM/XPavBt4WfSPYTMGrPhW21uyrjzZUGSPmfPqCjQplxsKD2IKwNHXMpIs2asjIINZbfU0SobLMNOjqm7EWmOUu4w1EUhWV6wykjzZa9CdwYB4oCz93A==;31:97TE4x+2+UX5Sxr+Esxv56qEB7tlTDjH26QB8u52EiU3RdqJVkLyZIyI1+QyMpT9S09GZZu8zPDhARWb1lPIw2MY3MgsM4QyCj2/UlKKQuKyDU161iCdvqrbgauoxWp3pjG4Dr6T6/B6t2aoNxL3+SoY/8/blqv0Jp109mY8lUmrtqJHuaKr6ftJcBs83EHdenrLmH+W3mh0TigIIJeHw/ojvFBra7algP0xH2hoeFw= X-MS-TrafficTypeDiagnostic: HE1PR08MB2825: X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB2825;20:OVM8y6hzgvL9YlpTNjNmqkkXmr+qcDa+232YBL2XXOumpyYuArto58Ejf/h5tI+SMt0b0OqcGC+3+9AE7HdtK9zS4rQ05oSNxnqdb4IHuHmT9DBAbqJ5YtgX5wGnq7QElbJV847ELcj0SikSPh5c8P5MY18nSjU+B+zOCqMOBNhYq9mFMpN/OWGQI+QRgUzWcndbdPlQn4xlXFOduugxfMZb5gw0rCBCydlcTDjQq8WliK9mhOiHVU2cOvHMRcZCOu0nooKd0pF8hDsubj5Re9x1TYbAhm4hI19A9G5xe7+X/cvoNy9lDa0De7WLVtTP/Q5AMQmnLcg041PsnF3mqGK3qEWfWIMu+ymJBoB00QtYRyraWARuxnmEpolZa6cmU/98hNLfFnQiGCjfRGeLkvtFoxRS5wW61Ua5iMJ9f+s=;4:VAesj00jlpEj1BzjY4+z3smKcW72UTENU6dqw/ZipG5IPlFXAXqfSVVX1h46vE9LMXX0Z2TCP1sszV7HBhmdmx6KdsO8OUTNhmT+ZkrssO6Qg2ipztivsY+g6WJiewL316MpQ9X2qYDp1uTP274GGlmtovcxOqOmVVL+/XM0NYqqiBxLW/U9RNj2OY3xqcgCUcROZstLtHqHwU4DP1wVi7/znZx8HmAdBRkcdY8OstwKK9YrIp9oKemByM69nKlT3Yc4g3tsr6j/Ig57CUSrK35ctr0JywK0FzaB9CzNWY/n5lpJLgjiGIp9P/Sz+Zp08LZoib7+ONPp7/vVXQ2HBsmYLpjep53Docz1U4IWmWc= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(190756311086443)(20558992708506); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040501)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(3231023)(2400081)(944501161)(6041288)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:HE1PR08MB2825;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:HE1PR08MB2825; X-Forefront-PRVS: 05610E64EE X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6049001)(396003)(39380400002)(346002)(376002)(39840400004)(366004)(189003)(199004)(68736007)(83506002)(64126003)(54906003)(81166006)(6486002)(8936002)(55236004)(65826007)(7416002)(76176011)(53546011)(81156014)(478600001)(8676002)(2486003)(86362001)(52116002)(16526018)(53936002)(26005)(6246003)(36756003)(77096007)(31686004)(23676004)(305945005)(106356001)(47776003)(2906002)(229853002)(2950100002)(16576012)(4326008)(65956001)(52146003)(65806001)(66066001)(105586002)(3846002)(6666003)(6116002)(316002)(5660300001)(110136005)(31696002)(97736004)(7736002)(50466002)(58126008)(230700001)(386003)(25786009);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR08MB2825;H:[172.16.25.12];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtIRTFQUjA4TUIyODI1OzIzOlk3eSsrN0cxS0VOQ0pESlNmeEJuSU1VR1Rt?= =?utf-8?B?Z2dLWnVjbEZOektabVZXUitnelg1SVp1V3hSdTk4WDZMeTJtaFlFeXZudUY5?= =?utf-8?B?N2VjOHAreWoyZXM1ZGo5Wm9lbnROQ3FPQWRQM1Y1ZEJaanR1SkZKYXRNaWFL?= =?utf-8?B?dXVyc1l6VVVoWE9IcVRCQ3Yvd0QvN2kzVTNMNE9qWnNkdHhEM0pNSGtpQ3gy?= =?utf-8?B?R3lWTUthalM0dm9SdlRsVkwxUVlna3NsMmVCdG5rMXBWaEU3bWhlNlA1WUV1?= =?utf-8?B?SU5JQ0N5TnRFdGY0VDYzckFZdkw3Ni9aQ1hkN2wvMUJTTkpEM3cyY3RydUQw?= =?utf-8?B?SU9Bd0U0dkNqcjNFN1dMTXc5MEhseTF6SEk2dzZRZHlWYVpjc3JDSjQxUGxE?= =?utf-8?B?ci9VLy81YXNQQi9EMVMwbnBLdWtRa1RPYk5vWkdRSFdhcUJYRis5OWR5UWtW?= =?utf-8?B?b3A4cmRmR0JJVDFZSVRBTWFqVDJpL0FHSUd1c21ZUk54OW4yUlIzKzVIQW9T?= =?utf-8?B?Q3FPN3BNOTRuUjVzY2gyVVpEU09vS3U4OFZIbHc1eUIvQ1ZhZm5TZkJHZ2ZU?= =?utf-8?B?Y0RMRGFBdXUyYVQyeFBJNGE1dE9mNEdkN0dIdzY2MTVpTjBwQUQweEJjdG95?= =?utf-8?B?THp0c1lhSTF2cnhEZTZIOHhSR3ZtSDY2TTFkYXEyYk1sVXJGS3U3OElkb0s5?= =?utf-8?B?MCtuQlRyNFo5ZnhUaEIyR2Z2WDgvU0Fabis0NXFVOVhvTXdBWkVYekNla0ov?= =?utf-8?B?RTR6dElOcWpycnhuR09Mb0pFQmUyVko5OTFoNDBkY1ZuQkpITURSWEp1R0Ja?= =?utf-8?B?RHZYUTgyT0ROT3RVN0RqZlF4V0xWSkJNMXlhOW5JYXorcEpPSEdhaHZRd0hr?= =?utf-8?B?b2N1b0MzOEMvbEhPMWVCVnMxYWJBVTFvcjBISFljZWEvditBSXRtOWRjUkZi?= =?utf-8?B?MkthWUU3UCthTS9EdlZlbjZ3UTFWMUhEL0tvL0o2bDFyczFVMUs4cTBUWGJU?= =?utf-8?B?TG9MZmVqeGlHVzVQam4rT1MrUXJyNCtZTUY0RXB6WmtrYWdOWHNIV0RIMUNR?= =?utf-8?B?NlFoMDVrTUhHQWUwc1BiQnlJVGY1cUtNcXZkaEZlVU5YVHBTK3pQUG16SmZz?= =?utf-8?B?elRTREVHRmxENWpxZU1KelJld3Voa20rM05LWjBsV2d6NTNZMlVCbUNxcDk3?= =?utf-8?B?VDB2OGp0R3BBS0k1QVJJeTB4ZjBTTy9TNGFWNXdZVGRhUnlyWW9yenQwcGVO?= =?utf-8?B?MkVDdVpET1N4U1VzdWdxZlVKdmN6bUVBSzhCYVd0U3dENXl6QjVJZkcxcTB4?= =?utf-8?B?Sjl3aWk5M1FtSXhXc3RPV3VuZDBPdFd3S21vd2NnS0x0Y0Vxb1c1UHQrVEda?= =?utf-8?B?aEl2WVhZK3piY3p4R1NLR2VWN1BpWlNmUGEyQUY0K2NhdzVlU3JOdjZFSWNw?= =?utf-8?B?RktmQWNEZ1NWM3hZa2J4ZEwvS1hZMllNV092M0RTNTRubW9UYkVJUVBISkdn?= =?utf-8?B?Y1dFNjROZmRuRWNyZDdPTXRWZW1Zb1JnSEwwdFJUMVV6N28xZlZFR1N0UDJE?= =?utf-8?B?TnlwTURKNDdqRUhwckJ4K2RXeGk5dU9jRHl6S0lUa2cxczJwS2c5S2lsMDFR?= =?utf-8?B?WWZvZ0l2RW1QQ3BYNDRlcVNBUkl5a3RJSmYrZ3hSc0Y4RHhtejJTMnhYVG1v?= =?utf-8?B?bTUvbUVwNUFNUEkwYmlmMGh4YmJDVTMxVi9lcmVSTWRRWlhwR1V1SkdrMW9r?= =?utf-8?B?SFhXQjhENkNxKzlNQUdwZkhaWHlwVWpoZGo5VHBadDh1OFdvZWZDODh2RDEr?= =?utf-8?B?WCtxRkJDam5Na2NHTEpiV0lnQkJoQTYvdDFLU2hFQjFXRGVzbGl6K2dTaGJB?= =?utf-8?Q?ld9YQFOMnAEpajYwj7hJpouYFJopW1oM?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB2825;6:WFoiYfi0Ygl2WEKmCnbC+35CrPVaeUdQEFjzq26sqZr4P1o++HWoqen81czRUVCHrzw2Q7CVel7IrKPoXzb8wLbHf2xVQoSw61jaZS150xZcoJojm/7FAfBQ9IkZdkqbsklrKwbEgC5nLzRPG/Zlr1zNbYxObsNeQ4jVOtwQAe2z879T+quNnW9PKw6j7WQ6jCOTpCzVjQpkVDpjbYizD+BvzRzar4snzZ2J3R8nbh7IJO1ryUbZwQScVf0z8w6xGQtv59lgHpRSPLpfPhiw/Ts3a5+sbyy5T+K7BB1ORendv+JoXrYhHs8DJI+qvvDYTvU2W1pnqqjNlKQpbmlVXleBa4BUdwA6+KweNp7xsRM=;5:YhJqepPlVSJ3ysZlt6pqjjDFAI9GowAfc98XV9lb952sHtvfq0QhABf6O+ix+VenEOxtFsNKuzMT1/V0Btz/SW8lNalS+O6SoXVFU4LHjUwnHrVHntGwBSib5XupJm2FMxsmS7S1A574w70dT3PYcpCvvbOF8RYZYgTdkKh1LCM=;24:pgg3brf8j9RI0NI2MFJ02HT7tJv3OdcnqUU6bVlQSiNbs+lMBg53x1F7N3q4eaZN1COUz1K7qUOKKxdf51G/VuGdmsPEcvqZnwcCVBEx1Hk=;7:SHdoaUwil+tXgJ18NT8UL0DZudDoFDmV2FgD/cPAIuJsXXE5xh7vRKE/Be4Z/5xeogl50F+JefDYgZ6WmYAB/X/8HurK35cSrzUbXDq1dAGx4aUOEWn1R3Wcw/mVU8CTNel01e5RU8gvwG5ZRh8K8KdFs3WymzSpICI1KNquwbPOgc6oabErji1iUVXOkc+jP/KloeRRFKvk6P4KdtczQSLz3elMFFCwUWteP4bPV2X72JFq6GAguo+QGzKoZabt SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB2825;20:JgACrXHeSwngafe8fdCnFDe2MJ63eXH/VnAo8yWTRJb5LJNUwLMRQDo/5C3a4ePUt8fy1qo76ltPMYgGrlp3k/LBiXx8EcW6BT66+zV4kLIemsScNfa4Q6WqQ86/zVZgSgMbezuRY2xiicvolAs3lsF5SNXhgFnb51CElHJeupQ= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jan 2018 09:24:39.4526 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7805056b-ac05-48db-ef40-08d5624321f9 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR08MB2825 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/19/2018 08:58 PM, Andrey Konovalov wrote: > With KASAN enabled the kernel has two different memset() functions, one > with KASAN checks (memset) and one without (__memset). KASAN uses some > macro tricks to use the proper version where required. For example memset() > calls in mm/slub.c are without KASAN checks, since they operate on poisoned > slab object metadata. > > The issue is that clang emits memset() calls even when there is no memset() > in the source code. They get linked with improper memset() implementation > and the kernel fails to boot due to a huge amount of KASAN reports during > early boot stages. > So how did you observe this? Why am I not seeing this problem? > The solution is to add -fno-builtin flag for files with KASAN_SANITIZE := n > marker. > I'm not sure I understand how is this solves the problem. And what clang does instead of memset()? Does it inlines memset()? But according to GCC's man (clang's man is very vague about this) -fno-builtin should do exactly the opposite - prevent inlining builtin functions and always generate a function call.