Skip to content

Commit

Permalink
mm/damon/dbgfs: support quotas of schemes
Browse files Browse the repository at this point in the history
This makes the debugfs interface of DAMON support the scheme quotas by
chaning the format of the input for the schemes file.

Link: https://lkml.kernel.org/r/20211019150731.16699-6-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: Amit Shah <amit@kernel.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: David Hildenbrand <david@redhat.com>
Cc: David Rientjes <rientjes@google.com>
Cc: David Woodhouse <dwmw@amazon.com>
Cc: Greg Thelen <gthelen@google.com>
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Leonard Foerster <foersleo@amazon.de>
Cc: Marco Elver <elver@google.com>
Cc: Markus Boehme <markubo@amazon.de>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
sjp38 authored and torvalds committed Nov 6, 2021
1 parent 1cd2430 commit d7d0ec8
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions mm/damon/dbgfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -105,11 +105,14 @@ static ssize_t sprint_schemes(struct damon_ctx *c, char *buf, ssize_t len)

damon_for_each_scheme(s, c) {
rc = scnprintf(&buf[written], len - written,
"%lu %lu %u %u %u %u %d %lu %lu\n",
"%lu %lu %u %u %u %u %d %lu %lu %lu %lu %lu\n",
s->min_sz_region, s->max_sz_region,
s->min_nr_accesses, s->max_nr_accesses,
s->min_age_region, s->max_age_region,
s->action, s->stat_count, s->stat_sz);
s->action,
s->quota.ms, s->quota.sz,
s->quota.reset_interval,
s->stat_count, s->stat_sz);
if (!rc)
return -ENOMEM;

Expand Down Expand Up @@ -190,10 +193,11 @@ static struct damos **str_to_schemes(const char *str, ssize_t len,
while (pos < len && *nr_schemes < max_nr_schemes) {
struct damos_quota quota = {};

ret = sscanf(&str[pos], "%lu %lu %u %u %u %u %u%n",
ret = sscanf(&str[pos], "%lu %lu %u %u %u %u %u %lu %lu %lu%n",
&min_sz, &max_sz, &min_nr_a, &max_nr_a,
&min_age, &max_age, &action, &parsed);
if (ret != 7)
&min_age, &max_age, &action, &quota.ms,
&quota.sz, &quota.reset_interval, &parsed);
if (ret != 10)
break;
if (!damos_action_valid(action)) {
pr_err("wrong action %d\n", action);
Expand Down

0 comments on commit d7d0ec8

Please sign in to comment.