From patchwork Tue Jul 13 12:33:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SeongJae Park X-Patchwork-Id: 12373859 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1B995C11F67 for ; Tue, 13 Jul 2021 12:34:34 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id D23DC61006 for ; Tue, 13 Jul 2021 12:34:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D23DC61006 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 000026B009E; Tue, 13 Jul 2021 08:34:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F189D6B009F; Tue, 13 Jul 2021 08:34:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D6C5C6B00A0; Tue, 13 Jul 2021 08:34:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0105.hostedemail.com [216.40.44.105]) by kanga.kvack.org (Postfix) with ESMTP id B6B346B009E for ; Tue, 13 Jul 2021 08:34:33 -0400 (EDT) Received: from smtpin30.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id AB3AB269D1 for ; Tue, 13 Jul 2021 12:34:32 +0000 (UTC) X-FDA: 78357507984.30.91D3AFE Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by imf21.hostedemail.com (Postfix) with ESMTP id 6B555D005AAE for ; Tue, 13 Jul 2021 12:34:32 +0000 (UTC) Received: by mail-qt1-f172.google.com with SMTP id w26so9625311qto.9 for ; Tue, 13 Jul 2021 05:34:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=CAWyn55jAy6QBa0v4wXy3wf41ZbR52B5jAw9LOUZo/A=; b=cFLUlhaUOiTXGEgpOnuV1D0JZLj6MH6cHinbGi/Gp3GPxpCAAuVaoEEBwMax5wpzli fELR3QtP2yWgOcxhG1tdyQf1bzlqlzPdPCfr+RoWC+Qvs0lYa48dCEJLuQAodN1YgssK 7/UnnCMdLJ8yLt7Nmir9nshX8oNZS1qJeCA4kOAHPdgeucVIQE1tIa7NCVLLOPY8xC5/ yImbX0iQYI+f1glE/aue71QBof4G1GUG9oCmDVbZogzOccfv1Q39XHLptwQRPnLrRQWJ 8u9WMOy9Ecu8ggLZpHBtQ4upUYCARt3GjQ39S+kS/dkSP3Jj/CjcgbSXIObFeAhOBtdn SOMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=CAWyn55jAy6QBa0v4wXy3wf41ZbR52B5jAw9LOUZo/A=; b=E59yWMW2r3Rp+eDETK6Q6nniMM2biRGj1dcEtzIve7NrHsWUZaGWd5+Kr4zEaujFrQ 6r/+ZdsEvjwsX/wq08auuwbAgVsT+J21pvWYqh74t1R13q/5gesu2/78veGBPrj8xo3c umq9d2VRc5qhhBAiKDHoO73fg8sJm0rn6f1bT8TA//zYwERHWa+SqBtL+luq+p4+19x5 C0dcVsAMPrY+gARTHitGLTT5p1bp0NBs2wf3pz7bKMP+pFRTcHT5n+Et3cSmk0hBj1fG sZy4xYMNRRXGGH89eHZfPSGFcX+6mkqd/XCw7tS5y9FPo1p0NnrSOE7x7O7yQAW7UrMj w5hg== X-Gm-Message-State: AOAM531rFsRoYMNN/z+tPVZekkWkWBbkYkpiyvwrEUQuOmywtxwtOjIu 7QhoGagNnRPZQa18izIdt3A= X-Google-Smtp-Source: ABdhPJwdssHK/Qhn87+nRgBiH9d2OsAsOlF/tUgVpCxcITnqHbqDyVAhGOkzaqBQGhxlbjCC1GT24Q== X-Received: by 2002:ac8:6d0:: with SMTP id j16mr3841743qth.331.1626179671875; Tue, 13 Jul 2021 05:34:31 -0700 (PDT) Received: from localhost.localdomain (ec2-35-169-212-159.compute-1.amazonaws.com. [35.169.212.159]) by smtp.gmail.com with ESMTPSA id k14sm6849327qtm.18.2021.07.13.05.34.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jul 2021 05:34:31 -0700 (PDT) From: SeongJae Park To: akpm@linux-foundation.org Cc: SeongJae Park , Jonathan.Cameron@Huawei.com, acme@kernel.org, alexander.shishkin@linux.intel.com, amit@kernel.org, benh@kernel.crashing.org, brendanhiggins@google.com, corbet@lwn.net, david@redhat.com, dwmw@amazon.com, elver@google.com, fan.du@intel.com, foersleo@amazon.de, greg@kroah.com, gthelen@google.com, guoju.fgj@alibaba-inc.com, jgowans@amazon.com, mgorman@suse.de, mheyne@amazon.de, minchan@kernel.org, mingo@redhat.com, namhyung@kernel.org, peterz@infradead.org, riel@surriel.com, rientjes@google.com, rostedt@goodmis.org, rppt@kernel.org, shakeelb@google.com, shuah@kernel.org, sieberf@amazon.com, sj38.park@gmail.com, snu@zelle79.org, vbabka@suse.cz, vdavydov.dev@gmail.com, zgf574564920@gmail.com, linux-damon@amazon.com, linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v33 08/13] mm/damon/dbgfs: Export kdamond pid to the user space Date: Tue, 13 Jul 2021 12:33:51 +0000 Message-Id: <20210713123356.6924-9-sj38.park@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210713123356.6924-1-sj38.park@gmail.com> References: <20210713123356.6924-1-sj38.park@gmail.com> Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=cFLUlhaU; spf=pass (imf21.hostedemail.com: domain of sj38park@gmail.com designates 209.85.160.172 as permitted sender) smtp.mailfrom=sj38park@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-Rspamd-Server: rspam05 X-Stat-Signature: 71kctbaac1id48hbup1xouuffizj6fht X-Rspamd-Queue-Id: 6B555D005AAE X-HE-Tag: 1626179672-508578 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: From: SeongJae Park For CPU usage accounting, knowing pid of the monitoring thread could be helpful. For example, users could use cpuaccount cgroups with the pid. This commit therefore exports the pid of currently running monitoring thread to the user space via 'kdamond_pid' file in the debugfs directory. Signed-off-by: SeongJae Park Reviewed-by: Fernand Sieber --- mm/damon/dbgfs.c | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/mm/damon/dbgfs.c b/mm/damon/dbgfs.c index 322f624710d7..bd9bc6ede40e 100644 --- a/mm/damon/dbgfs.c +++ b/mm/damon/dbgfs.c @@ -237,6 +237,32 @@ static ssize_t dbgfs_target_ids_write(struct file *file, return ret; } +static ssize_t dbgfs_kdamond_pid_read(struct file *file, + char __user *buf, size_t count, loff_t *ppos) +{ + struct damon_ctx *ctx = file->private_data; + char *kbuf; + ssize_t len; + + kbuf = kmalloc(count, GFP_KERNEL); + if (!kbuf) + return -ENOMEM; + + mutex_lock(&ctx->kdamond_lock); + if (ctx->kdamond) + len = scnprintf(kbuf, count, "%d\n", ctx->kdamond->pid); + else + len = scnprintf(kbuf, count, "none\n"); + mutex_unlock(&ctx->kdamond_lock); + if (!len) + goto out; + len = simple_read_from_buffer(buf, count, ppos, kbuf, len); + +out: + kfree(kbuf); + return len; +} + static int damon_dbgfs_open(struct inode *inode, struct file *file) { file->private_data = inode->i_private; @@ -256,10 +282,17 @@ static const struct file_operations target_ids_fops = { .write = dbgfs_target_ids_write, }; +static const struct file_operations kdamond_pid_fops = { + .open = damon_dbgfs_open, + .read = dbgfs_kdamond_pid_read, +}; + static void dbgfs_fill_ctx_dir(struct dentry *dir, struct damon_ctx *ctx) { - const char * const file_names[] = {"attrs", "target_ids"}; - const struct file_operations *fops[] = {&attrs_fops, &target_ids_fops}; + const char * const file_names[] = {"attrs", "target_ids", + "kdamond_pid"}; + const struct file_operations *fops[] = {&attrs_fops, &target_ids_fops, + &kdamond_pid_fops}; int i; for (i = 0; i < ARRAY_SIZE(file_names); i++)