Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp3308123pxb; Mon, 18 Apr 2022 22:35:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzkJiiyxW/hwXlyPGIy1I0Yl03hcq9DMnvy2XPz6up2e6CIfa1onSwLFG/YItW3cZ8TygRA X-Received: by 2002:a65:6a4c:0:b0:39c:f169:b54a with SMTP id o12-20020a656a4c000000b0039cf169b54amr13011294pgu.384.1650346506450; Mon, 18 Apr 2022 22:35:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650346506; cv=none; d=google.com; s=arc-20160816; b=T+cztBbj8Us/EXU4CnPBVm764lmNMF6kAEV9s/yvUBDznGmi3CGmJIjIh4DChMZiwZ 7C8MkYEK1aXu2oIQ9NUEqmRCr7DxznUD7Qe38kUaldzhKBrdRp8Z5zjhLZEGOZz6Xqck Y8N4jOOa+qiMCyEAZ+p3pRM7Jf9VoXLuF4d9ydMe1qJBZuJECjw0Gv+oDsTEBoRMWk7Y RsdeweB0fr0kYKUWT3WkzvUilN3hsHZPC5AB02kpVMhXGgdhhe6f4di/+zhENtja2g3L 8I9ust285yv3niFA6Ddnj4rbyZtZ/F5H1wtK2Vu9RVKQ2Pk03L8GafVaT3ceuiCXkiPb jtKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:dkim-signature:date; bh=/Gp18eUoW03iuPGj3GLuowLyhOcAU8RggWp55xHDiug=; b=tIwuipDJXFB08kaVJC6YCzvO9pTQEmjC+hjV87QeuF0sUOtoWq8yYBFIDriWncsLkd w8AxLf2wQFRCbDR6OlDBSzxEbaEYcs8UQQaic5jGpuD5AGKBCC2hGafHPOn9BwQ+gJRL hmuzvmL8AZo3uYbcxxHedeHvaHPWqz9vrRy59wr0EweQCgOCeyNi78Qy5kRgPyjO+dxX 03j1RNWOvUu4o5xfkdjoMhGvn0Z/6i/C3BKkpuzM3psqBy7B/aHEGlQ+PKWyveDyjQ1v 30YPa89NnTzG8rSGqFUz9OkFzbejZWsKFwSmPgQpglUZW/R9fO22VjfxzZBWW0Q4Ib3i gjQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=YOzUkpmX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b1-20020a17090a800100b001bd14e01fcdsi1152370pjn.187.2022.04.18.22.34.51; Mon, 18 Apr 2022 22:35:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=YOzUkpmX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242699AbiDRRah (ORCPT + 99 others); Mon, 18 Apr 2022 13:30:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49488 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346825AbiDRRaa (ORCPT ); Mon, 18 Apr 2022 13:30:30 -0400 Received: from out1.migadu.com (out1.migadu.com [91.121.223.63]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0CC536416 for ; Mon, 18 Apr 2022 10:27:42 -0700 (PDT) Date: Mon, 18 Apr 2022 10:27:34 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1650302861; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=/Gp18eUoW03iuPGj3GLuowLyhOcAU8RggWp55xHDiug=; b=YOzUkpmXwDTK8OBKTvkVHeeh6b7M8TfcYAqpT4+k8uxZSRvkpWNPd8elMnjNOnEu8sybek jMTg6/6gOLCJ4jwFUQH8mO1SdLzlSVd0Jm7mPmTmxQw25N+e+Q+Mw2G3IDzdKktQmrWwCX GldI0fnvHg6eAaQAO9QGWaWfv70VUnk= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Roman Gushchin To: Mike Rapoport Cc: linux-mm@kvack.org, Andrew Morton , Dave Chinner , linux-kernel@vger.kernel.org, Johannes Weiner , Michal Hocko , Shakeel Butt , Yang Shi Subject: Re: [PATCH rfc 0/5] mm: introduce shrinker sysfs interface Message-ID: References: <20220416002756.4087977-1-roman.gushchin@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Migadu-Flow: FLOW_OUT X-Migadu-Auth-User: linux.dev X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Apr 18, 2022 at 12:27:36PM +0300, Mike Rapoport wrote: > On Fri, Apr 15, 2022 at 05:27:51PM -0700, Roman Gushchin wrote: > > There are 50+ different shrinkers in the kernel, many with their own bells and > > whistles. Under the memory pressure the kernel applies some pressure on each of > > them in the order of which they were created/registered in the system. Some > > of them can contain only few objects, some can be quite large. Some can be > > effective at reclaiming memory, some not. > > > > The only existing debugging mechanism is a couple of tracepoints in > > do_shrink_slab(): mm_shrink_slab_start and mm_shrink_slab_end. They aren't > > covering everything though: shrinkers which report 0 objects will never show up, > > there is no support for memcg-aware shrinkers. Shrinkers are identified by their > > scan function, which is not always enough (e.g. hard to guess which super > > block's shrinker it is having only "super_cache_scan"). They are a passive > > mechanism: there is no way to call into counting and scanning of an individual > > shrinker and profile it. > > > > To provide a better visibility and debug options for memory shrinkers > > this patchset introduces a /sys/kernel/shrinker interface, to some extent > > similar to /sys/kernel/slab. > > Wouldn't debugfs better fit the purpose of shrinker debugging? I think sysfs fits better, but not a very strong opinion. Even though the interface is likely not very useful for the general public, big cloud instances might wanna enable it to gather statistics (and it's certainly what we gonna do at Facebook) and to provide additional data when something is off. They might not have debugfs mounted. And it's really similar to /sys/kernel/slab. Are there any reasons why debugfs is preferable? Thanks!