From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1B37EC433EF for ; Mon, 28 Feb 2022 19:10:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 502788D0002; Mon, 28 Feb 2022 14:10:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4B2048D0001; Mon, 28 Feb 2022 14:10:21 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 379048D0002; Mon, 28 Feb 2022 14:10:21 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.25]) by kanga.kvack.org (Postfix) with ESMTP id 256FB8D0001 for ; Mon, 28 Feb 2022 14:10:21 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay11.hostedemail.com (Postfix) with ESMTP id E32C381817 for ; Mon, 28 Feb 2022 19:10:20 +0000 (UTC) X-FDA: 79193129400.03.4D1B992 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by imf31.hostedemail.com (Postfix) with ESMTP id 42B9920008 for ; Mon, 28 Feb 2022 19:10:20 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id ECEF02199B; Mon, 28 Feb 2022 19:10:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1646075418; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DCyZs1aAreyI+M1npN1wJP9oBMspfKyr+BXRhzaFXdI=; b=wpWSDB35o/2o0nljZ0C2oL9zhpb5PHrc4e8F33sb7/SbdMW734D0Am3VXHjVoZIl8HUoy4 STkQ5eaPB+G+1CvyzhWWjEFXKhnhim/Me9vV0l/ZQnVmQWbLlUnzo33Tbp5gJOBcBQXOgs KgYtQeOIo8AMGn85gT04h+KGGHl6ZW0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1646075418; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DCyZs1aAreyI+M1npN1wJP9oBMspfKyr+BXRhzaFXdI=; b=9kTtRx5RYWt2nkoQJxrVyJpK3wP3mCqe8MEw3b0Qv4lVBm2eZh1W96bXDxHZML/bwGsVT1 3md69atfTOaFP0Aw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id B1F0713C8E; Mon, 28 Feb 2022 19:10:18 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id cIfcKhoeHWJfVgAAMHmgww (envelope-from ); Mon, 28 Feb 2022 19:10:18 +0000 Message-ID: Date: Mon, 28 Feb 2022 20:10:18 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Content-Language: en-US To: Hyeonggon Yoo <42.hyeyoo@gmail.com> Cc: David Rientjes , Christoph Lameter , Joonsoo Kim , Pekka Enberg , Roman Gushchin , Andrew Morton , linux-mm@kvack.org, patches@lists.linux.dev, linux-kernel@vger.kernel.org, Oliver Glitta , Faiyaz Mohammed , Jonathan Corbet , Randy Dunlap , Marco Elver , Karolina Drobnik , Mike Rapoport References: <20220225180318.20594-1-vbabka@suse.cz> From: Vlastimil Babka Subject: Re: [PATCH 0/5] SLUB debugfs improvements based on stackdepot In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 42B9920008 X-Stat-Signature: hsjjpweh7h7nb3k7j8ggiscngboifbgo Authentication-Results: imf31.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=wpWSDB35; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=9kTtRx5R; spf=pass (imf31.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.28 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none X-Rspam-User: X-HE-Tag: 1646075420-495540 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 2/26/22 08:19, Hyeonggon Yoo wrote: > On Fri, Feb 25, 2022 at 07:03:13PM +0100, Vlastimil Babka wrote: >> Hi, >> >> this series combines and revives patches from Oliver's last year >> bachelor thesis (where I was the advisor) that make SLUB's debugfs >> files alloc_traces and free_traces more useful. >> The resubmission was blocked on stackdepot changes that are now merged, >> as explained in patch 2. >> > > Hello. I just started review/testing this series. > > it crashed on my system (arm64) Hmm, interesting. On x86_64 this works for me and stackdepot is allocated from memblock. arm64 must have memblock freeing happen earlier or something. (CCing memblock experts) > I ran with boot parameter slub_debug=U, and without KASAN. > So CONFIG_STACKDEPOT_ALWAYS_INIT=n. > > void * __init memblock_alloc_try_nid( > phys_addr_t size, phys_addr_t align, > phys_addr_t min_addr, phys_addr_t max_addr, > int nid) > { > void *ptr; > > memblock_dbg("%s: %llu bytes align=0x%llx nid=%d from=%pa max_addr=%pa %pS\n", > __func__, (u64)size, (u64)align, nid, &min_addr, > &max_addr, (void *)_RET_IP_); > ptr = memblock_alloc_internal(size, align, > min_addr, max_addr, nid, false); > if (ptr) > memset(ptr, 0, size); <--- Crash Here > > return ptr; > } > > It crashed during create_boot_cache() -> stack_depot_init() -> > memblock_alloc(). > > I think That's because, in kmem_cache_init(), both slab and memblock is not > available. (AFAIU memblock is not available after mem_init() because of > memblock_free_all(), right?) Hm yes I see, even in x86_64 version mem_init() calls memblock_free_all(). But then, I would expect stack_depot_init() to detect that memblock_alloc() returns NULL, we print ""Stack Depot hash table allocation failed, disabling" and disable it. Instead it seems memblock_alloc() returns something that's already potentially used by somebody else? Sounds like a bug? > Thanks! > > /* > * Set up kernel memory allocators > */ > static void __init mm_init(void) > { > /* > * page_ext requires contiguous pages, > * bigger than MAX_ORDER unless SPARSEMEM. > */ > page_ext_init_flatmem(); > init_mem_debugging_and_hardening(); > kfence_alloc_pool(); > report_meminit(); > stack_depot_early_init(); > mem_init(); > mem_init_print_info(); > kmem_cache_init(); > /* > * page_owner must be initialized after buddy is ready, and also after > * slab is ready so that stack_depot_init() works properly > */) > >> Patch 1 is a new preparatory cleanup. >> >> Patch 2 originally submitted here [1], was merged to mainline but >> reverted for stackdepot related issues as explained in the patch. >> >> Patches 3-5 originally submitted as RFC here [2]. In this submission I >> have omitted the new file 'all_objects' (patch 3/3 in [2]) as it might >> be considered too intrusive so I will postpone it for later. The docs >> patch is adjusted accordingly. >> >> Also available in git, based on v5.17-rc1: >> https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/linux.git/log/?h=slub-stackdepot-v1 >> >> I'd like to ask for some review before I add this to the slab tree. >> >> [1] https://lore.kernel.org/all/20210414163434.4376-1-glittao@gmail.com/ >> [2] https://lore.kernel.org/all/20210521121127.24653-1-glittao@gmail.com/ >> >> Oliver Glitta (4): >> mm/slub: use stackdepot to save stack trace in objects >> mm/slub: aggregate and print stack traces in debugfs files >> mm/slub: sort debugfs output by frequency of stack traces >> slab, documentation: add description of debugfs files for SLUB caches >> >> Vlastimil Babka (1): >> mm/slub: move struct track init out of set_track() >> >> Documentation/vm/slub.rst | 61 +++++++++++++++ >> init/Kconfig | 1 + >> mm/slub.c | 152 +++++++++++++++++++++++++------------- >> 3 files changed, 162 insertions(+), 52 deletions(-) >> >> -- >> 2.35.1 >> >> >