linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Hillf Danton <hdanton@sina.com>
To: Roman Gushchin <roman.gushchin@linux.dev>
Cc: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
	Dave Chinner <dchinner@redhat.com>,
	linux-kernel@vger.kernel.org, Michal Hocko <mhocko@kernel.org>
Subject: Re: [PATCH rfc 1/5] mm: introduce sysfs interface for debugging kernel shrinker
Date: Sat, 16 Apr 2022 09:35:31 +0800	[thread overview]
Message-ID: <20220416013531.1582-1-hdanton@sina.com> (raw)
In-Reply-To: <20220416002756.4087977-2-roman.gushchin@linux.dev>

On Fri, 15 Apr 2022 17:27:52 -0700 Roman Gushchin wrote:
> This commit introduces the /sys/kernel/shrinker sysfs interface
> which provides an ability to observe the state and interact with
> individual kernel memory shrinkers.
> 
> Because the feature is oriented on kernel developers and adds some
> memory overhead (which shouldn't be large unless there is a huge
> amount of registered shrinkers), it's guarded by a config option
> (disabled by default).
> 
> To simplify the code, kobjects are not embedded into shrinkers
> objects, but are created, linked and unlinked dynamically.
> 
> This commit introduces basic "count" and "scan" interfaces.
> Basic usage:
>   $ cat count                   : get the number of objects
>   $ echo "500" > scan           : try to reclaim 500 objects
>   $ cat scan                    : get the number of objects reclaimed

What is nice in design is the window opened for scanning individual shrinker
without bothering wakeup of kswapd, thus this is good work from the drawing
board.

> +
> +static ssize_t scan_store(struct shrinker_kobj *skobj,
> +			  struct shrinker_attribute *attr,
> +			  const char *buf, size_t size)
> +{
> +	unsigned long nr, total = 0, nr_to_scan = 0, freed = 0;
> +	unsigned long *count_per_node = NULL;
> +	struct shrinker *shrinker;
> +	ssize_t ret = size;
> +	int nid;
> +
> +	if (kstrtoul(buf, 10, &nr_to_scan))
> +		return -EINVAL;
> +
> +	down_read(&shrinker_rwsem);

Nit, use down_read_killable instead to allow the CAP_SYS_ADMIN guy to
change mind on cmdline.

Hillf


  reply	other threads:[~2022-04-16  1:35 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-16  0:27 [PATCH rfc 0/5] mm: introduce shrinker sysfs interface Roman Gushchin
2022-04-16  0:27 ` [PATCH rfc 1/5] mm: introduce sysfs interface for debugging kernel shrinker Roman Gushchin
2022-04-16  1:35   ` Hillf Danton [this message]
2022-04-16  0:27 ` [PATCH rfc 2/5] mm: memcontrol: introduce mem_cgroup_ino() and mem_cgroup_get_from_ino() Roman Gushchin
2022-04-16  0:27 ` [PATCH rfc 3/5] mm: introduce memcg interfaces for shrinker sysfs Roman Gushchin
2022-04-16  0:27 ` [PATCH rfc 4/5] mm: introduce numa " Roman Gushchin
2022-04-16  0:27 ` [PATCH rfc 5/5] mm: provide shrinkers with names Roman Gushchin
2022-04-18  9:27 ` [PATCH rfc 0/5] mm: introduce shrinker sysfs interface Mike Rapoport
2022-04-18 17:27   ` Roman Gushchin
2022-04-19  6:33     ` Mike Rapoport
2022-04-19 17:58       ` Roman Gushchin
2022-04-19  4:27 ` Andrew Morton
2022-04-19 17:52   ` Roman Gushchin
2022-04-19 18:25     ` Andrew Morton
2022-04-19 18:43       ` Roman Gushchin
2022-04-19 18:33     ` Greg KH
2022-04-19 18:20 ` Kent Overstreet
2022-04-19 18:58   ` Roman Gushchin
2022-04-19 19:46     ` Kent Overstreet
2022-04-19 18:36 ` Kent Overstreet
2022-04-19 18:50   ` Roman Gushchin
2022-04-19 21:10     ` Kent Overstreet
2022-04-20 22:24 ` Yang Shi
2022-04-20 23:23   ` Roman Gushchin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220416013531.1582-1-hdanton@sina.com \
    --to=hdanton@sina.com \
    --cc=akpm@linux-foundation.org \
    --cc=dchinner@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    --cc=roman.gushchin@linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox