Received: by 2002:a05:6358:bb9e:b0:b9:5105:a5b4 with SMTP id df30csp3055442rwb; Mon, 5 Sep 2022 05:57:43 -0700 (PDT) X-Google-Smtp-Source: AA6agR5EHyK44RKUDWVFWjTiUpXtKt5oTuL+7x9AO5N2jikSv/xmoq9zPajz7cId8UpPc/ij2C1Z X-Received: by 2002:a05:6a02:104:b0:430:93ec:776f with SMTP id bg4-20020a056a02010400b0043093ec776fmr15894431pgb.544.1662382663185; Mon, 05 Sep 2022 05:57:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662382663; cv=none; d=google.com; s=arc-20160816; b=l/QWI13Li3srF9/mGjftRZT/UV7CHaVaG7QAbJMRbnXSJ9HOLOcSqcnuenlNoJH2GG agc9C7v+Ek7YQAYXYRkCWS0kXlHz+sy7fsmzasgNkAkuAqOtTDMgE0tZ3oagRavDY/0Z 7N0buSuqulHK7MryuHwQ6c3J32Jec8b3l3jkUJKPcjXbF7SI0WZZGoaueHTmD68VPPSf n1+bHb11sNalRm6PECle7pM1W3o5D5ABpzVFKcI2s4395UQMzg5kyDg5FQ0rzKGtbPrE U4HwUpbFGw2pxWzCnTYXhotnaZrG0WVldCMQtlw6eve+oFeWOtrNQTwkikfdGou/QPfC +bHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=n/AVjIDpxZzfzjSr4SyDHor8UjNpL+UNsJYwulizhBY=; b=0tCKaHudTrNpwoVqxRpsj+PdlLntQjcScva+SnNrkGcm3kv19BNkxKEfiwBRUUdUjG auhST9kaLm0S5JQqVQhX0YeJP3POPP6GgDG8taU4OIri1tYjnyLxz3x1kKQQxiX8qL1E ShIUiKdT5x0e7gGpyXeVqw9ptOYAylW0RrpUn9kG3H8MUIYKdlZ0AwiI9ACOKxhnwCf1 NIV2sTOrzllZHJDa5FQugUnCN9zvge0NfbDtiwdFy0F/3sMh3w/XSdC9tsiaaDzz866i DK6Id+TEAay9S1mFS0olNcPOd1cdjgaNuXtyUw1uoV/ei/O3Z1b5lhRV3Ma5laYw8JeI UELA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gnuweeb.org header.s=default header.b=b13HLyky; 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=gnuweeb.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j17-20020a632311000000b0042c7a2d0196si10259728pgj.484.2022.09.05.05.57.29; Mon, 05 Sep 2022 05:57:43 -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=@gnuweeb.org header.s=default header.b=b13HLyky; 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=gnuweeb.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238164AbiIEMoz (ORCPT + 99 others); Mon, 5 Sep 2022 08:44:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36204 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238518AbiIEMnn (ORCPT ); Mon, 5 Sep 2022 08:43:43 -0400 Received: from gnuweeb.org (gnuweeb.org [51.81.211.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3BBB9A19A for ; Mon, 5 Sep 2022 05:42:43 -0700 (PDT) Received: from localhost.localdomain (unknown [182.2.42.181]) by gnuweeb.org (Postfix) with ESMTPSA id 4BCB5804FD; Mon, 5 Sep 2022 12:42:38 +0000 (UTC) X-GW-Data: lPqxHiMPbJw1wb7CM9QUryAGzr0yq5atzVDdxTR0iA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1662381762; bh=tMI6JjeFMjJlCrUo8LzWO0H7i2bRYzrR9qmlHatGSaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=b13HLykytDYMjniM7ng0VoqZBrssIWbb3Z0pfn5bMsAZqWbLrSE7TtasJwA+P8Vbn zurSCS7o6KJ4HRhKi7NNk9WTvYErzDr2rERd4OA+76xsxadORMm3UiDtnnL+YpreEb XcHzlEHfaW1hxfv3sDdltfu3N8sVsCpXZ+/QeiWJAOyd5U2yLUkDptGpjRRfmiC0GC IRUXVOmc6DR0uhb5xGZBkzcFBwlDBqrZiYTEVQXLcH++/niIqYvosTvQKfrR5Ng1KI k/sUAq4CR22tuNJQtbHwvUXAOCLAbdhj3JLsy2H2b56VuQ8+J8mQKqw3N11Dk6ELld FMsTCcUW3J+9w== From: Ammar Faizi To: Michal Hocko Cc: Ammar Faizi , Oscar Salvador , Andrew Morton , Linux Kernel Mailing List , Linux Memory Management Mailing List , Vlastimil Babka , Eric Dumazet , Waiman Long , Suren Baghdasaryan , Marco Elver , Andrey Konovalov , Alexander Potapenko Subject: Re: [PATCH v2 3/3] mm,page_owner: Filter out stacks by a threshold counter Date: Mon, 5 Sep 2022 19:42:34 +0700 Message-Id: <20220905124234.635349-1-ammarfaizi2@gnuweeb.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: <20220905031012.4450-1-osalvador@suse.de> <20220905031012.4450-4-osalvador@suse.de> <573c4049045a5ff342ff9998c69dfae7-ammarfaizi2@gnuweeb.org> <20220905115459.567583-1-ammarfaizi2@gnuweeb.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_SORBS_WEB,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no 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, 5 Sep 2022 14:02:09 +0200, Michal Hocko wrote: > On Mon 05-09-22 18:54:59, Ammar Faizi wrote: > > On Mon, 5 Sep 2022 13:31:02 +0200, Michal Hocko wrote: > [...] > > > > static ssize_t write_page_owner_threshold(struct file *file, const char __user *buf, > > > > size_t count, loff_t *pos) > > > > { > > > > char kbuf[21]; > > > > int ret; > > > > > > > > count = min_t(size_t, count, sizeof(kbuf)); > > > > if (copy_from_user(kbuf, buf, count)) > > > > return -EFAULT; > > > > > > > > kbuf[count - 1] = '\0'; > > > > ret = kstrtoul(kbuf, 10, &threshold); > > > > return ret ? ret : count; > > > > } > > > > > > Isn't there a proc_dointvec counterpart for debugfs? > > > > Ah, well. If that's much simpler, we should go with that. I am not > > familiar proc_dointvec() interface, so I couldn't say about it. > > Just to clarify. proc_dointvec is rather specific to proc/sysctl > interface. I was too lazy to look whether debugfs has something similar > available. Maybe writing to debugfs is not all that common but I would > expect a shared code to write a simple value would be there. I took a look, there is DEFINE_SIMPLE_ATTRIBUTE(). Ref: https://github.com/torvalds/linux/blob/v6.0-rc4/include/linux/fs.h#L3458-L3487 It looks much simpler to me. Untested, but it is something like this: ----------------- static int page_owner_threshold_get(void *data, u64 *val) { *val = threshold; return 0; } static int page_owner_threshold_set(void *data, u64 val) { threshold = val; return 0; } DEFINE_SIMPLE_ATTRIBUTE(proc_page_owner_threshold, &page_owner_threshold_get, &page_owner_threshold_set, "%lu"); ----------------- And then the init should be the same: debugfs_create_file("page_owner_threshold", 0600, NULL, NULL, &proc_page_owner_threshold); -- Ammar Faizi