From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754212AbbLKIOk (ORCPT ); Fri, 11 Dec 2015 03:14:40 -0500 Received: from mail-wm0-f42.google.com ([74.125.82.42]:36720 "EHLO mail-wm0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753215AbbLKIOi (ORCPT ); Fri, 11 Dec 2015 03:14:38 -0500 Date: Fri, 11 Dec 2015 09:14:34 +0100 From: Ingo Molnar To: Alexei Starovoitov Cc: Peter Zijlstra , Dmitry Vyukov , syzkaller , Ingo Molnar , Arnaldo Carvalho de Melo , LKML , Kostya Serebryany , Alexander Potapenko , Eric Dumazet , Sasha Levin Subject: Re: use-after-free in __perf_install_in_context Message-ID: <20151211081433.GB21600@gmail.com> References: <20151208175433.GA75053@ast-mbp.thefacebook.com> <20151208180528.GA77166@ast-mbp.thefacebook.com> <20151208195623.GA92501@ast-mbp.thefacebook.com> <20151210035434.GA11217@ast-mbp.thefacebook.com> <20151210090251.GV6356@twins.programming.kicks-ass.net> <20151210170305.GA28459@ast-mbp.thefacebook.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151210170305.GA28459@ast-mbp.thefacebook.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Alexei Starovoitov wrote: > On Thu, Dec 10, 2015 at 10:02:51AM +0100, Peter Zijlstra wrote: > > On Wed, Dec 09, 2015 at 07:54:35PM -0800, Alexei Starovoitov wrote: > > > Freeing memory is a requirement regardless. > > > Even when kernel running with kasan, there must be a way to stop > > > stack collection and free that memory. > > > You cannot treat kernel as your test program or 'device under test'. > > > > Relax, that is exactly what lockdep does. It cannot dynamically allocate > > things because allocators use lock etc.. > > > > Its fine to build up state for debug bits, esp. if its bounded, like the > > number of unique callchains. > > except the code in question is doing unbounded alloc_pages() Yes, but the trick is to still have a bound sized debug pool - which runs out of entries gracefully. Which in practice is plenty enough for most types of testing, and is a lot more robust than any dynamic scheme. Thanks, Ingo