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 B039BC54EE9 for ; Mon, 5 Sep 2022 12:42:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C017D8D0094; Mon, 5 Sep 2022 08:42:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B8A7C8D0076; Mon, 5 Sep 2022 08:42:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A03BF8D0094; Mon, 5 Sep 2022 08:42:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 8947C8D0076 for ; Mon, 5 Sep 2022 08:42:44 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 55CBE1218D9 for ; Mon, 5 Sep 2022 12:42:44 +0000 (UTC) X-FDA: 79877995848.27.D7126DF Received: from gnuweeb.org (gnuweeb.org [51.81.211.47]) by imf23.hostedemail.com (Postfix) with ESMTP id DE4CB140073 for ; Mon, 5 Sep 2022 12:42:43 +0000 (UTC) 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 ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=gnuweeb.org header.s=default header.b=b13HLyky; spf=pass (imf23.hostedemail.com: domain of ammarfaizi2@gnuweeb.org designates 51.81.211.47 as permitted sender) smtp.mailfrom=ammarfaizi2@gnuweeb.org; dmarc=pass (policy=none) header.from=gnuweeb.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1662381764; a=rsa-sha256; cv=none; b=xUvJp1p23no2QtwZGih1wz7tgJgY8a2aCMbmN5+qzFYkqJG7M9se/hB/+CRH2/12I8l/G8 ThHsWIzTGMqaSQkBXhAksZ7rgr3qC1mGt/AIy84PVLV9gUmgECfWOpXxhA1eFRfrdYTFDm JDZpqXEAV7Z7MbHVDK1+fvoixWoeDYw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1662381764; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=n/AVjIDpxZzfzjSr4SyDHor8UjNpL+UNsJYwulizhBY=; b=TtYWFG7Zf9tiTr5bZs1YIq15QDhxCyE6pORC2KAN73StJCBFj3J2gHrccEl4hEP5RSLpOj Fau6f6z9S49YX9ctP0uzta8aiIBqDd0BrqDrkj38MN6rO61uGYUfXgJCQs0dqZSUSTVrqd rHEWPy56sWU1K+UCmGemQiWvior48zM= X-Rspamd-Server: rspam02 X-Rspam-User: Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=gnuweeb.org header.s=default header.b=b13HLyky; spf=pass (imf23.hostedemail.com: domain of ammarfaizi2@gnuweeb.org designates 51.81.211.47 as permitted sender) smtp.mailfrom=ammarfaizi2@gnuweeb.org; dmarc=pass (policy=none) header.from=gnuweeb.org X-Stat-Signature: pzb1rc7wo1atufuow3br3hk3id9mi6nd X-Rspamd-Queue-Id: DE4CB140073 X-HE-Tag: 1662381763-924718 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 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