SSL sysfs-schemes.c
Interaktion und PortierbarkeitC
|
|
// SPDX-License-Identifier: GPL-2.0
/*
* DAMON sysfs Interface
*
* Copyright (c) 2022 SeongJae Park <sj@kernel.org>
*/
#include <linux/slab.h>
#include <linux/numa.h>
#include "sysfs-common.h"
/*
* scheme region directory
*/
struct damon_sysfs_scheme_region {
struct kobject kobj;
struct damon_addr_range ar;
unsigned int nr_accesses;
unsigned int age;
unsigned long sz_filter_passed;
struct list_head list;
};
static struct damon_sysfs_scheme_region *damon_sysfs_scheme_region_alloc(
struct damon_region *region)
{
struct damon_sysfs_scheme_region *sysfs_region = kmalloc(
sizeof(*sysfs_region), GFP_KERNEL);
if (!sysfs_region)
return NULL;
sysfs_region->kobj = (struct kobject){};
sysfs_region->ar = region->ar;
sysfs_region->nr_accesses = region->nr_accesses_bp / 10000;
sysfs_region->age = region->age;
INIT_LIST_HEAD(&sysfs_region->list);
return sysfs_region;
}
static ssize_t start_show(struct kobject *kobj, struct kobj_attribute *attr,
char *buf)
{
struct damon_sysfs_scheme_region *region = container_of(kobj,
struct damon_sysfs_scheme_region, kobj);
return sysfs_emit(buf, "%lu\n", region->ar.start);
}
static ssize_t end_show(struct kobject *kobj, struct kobj_attribute *attr,
char *buf)
{
struct damon_sysfs_scheme_region *region = container_of(kobj,
struct damon_sysfs_scheme_region, kobj);
return sysfs_emit(buf, "%lu\n", region->ar.end);
}
static ssize_t nr_accesses_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{
struct damon_sysfs_scheme_region *region = container_of(kobj,
struct damon_sysfs_scheme_region, kobj);
return sysfs_emit(buf, "%u\n", region->nr_accesses);
}
static ssize_t age_show(struct kobject *kobj, struct kobj_attribute *attr,
char *buf)
{
struct damon_sysfs_scheme_region *region = container_of(kobj,
struct damon_sysfs_scheme_region, kobj);
return sysfs_emit(buf, "%u\n", region->age);
}
static ssize_t sz_filter_passed_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{
struct damon_sysfs_scheme_region *region = container_of(kobj,
struct damon_sysfs_scheme_region, kobj);
return sysfs_emit(buf, "%lu\n", region->sz_filter_passed);
}
static void damon_sysfs_scheme_region_release(struct kobject *kobj)
{
struct damon_sysfs_scheme_region *region = container_of(kobj,
struct damon_sysfs_scheme_region, kobj);
list_del(®ion->list);
kfree(region);
}
static struct kobj_attribute damon_sysfs_scheme_region_start_attr =
__ATTR_RO_MODE(start, 0400);
static struct kobj_attribute damon_sysfs_scheme_region_end_attr =
__ATTR_RO_MODE(end, 0400);
static struct kobj_attribute damon_sysfs_scheme_region_nr_accesses_attr =
__ATTR_RO_MODE(nr_accesses, 0400);
static struct kobj_attribute damon_sysfs_scheme_region_age_attr =
__ATTR_RO_MODE(age, 0400);
static struct kobj_attribute damon_sysfs_scheme_region_sz_filter_passed_attr =
__ATTR_RO_MODE(sz_filter_passed, 0400);
static struct attribute *damon_sysfs_scheme_region_attrs[] = {
&damon_sysfs_scheme_region_start_attr.attr,
&damon_sysfs_scheme_region_end_attr.attr,
&damon_sysfs_scheme_region_nr_accesses_attr.attr,
&damon_sysfs_scheme_region_age_attr.attr,
&damon_sysfs_scheme_region_sz_filter_passed_attr.attr,
NULL,
};
ATTRIBUTE_GROUPS(damon_sysfs_scheme_region);
static const struct kobj_type damon_sysfs_scheme_region_ktype = {
.release = damon_sysfs_scheme_region_release,
.sysfs_ops = &kobj_sysfs_ops,
.default_groups = damon_sysfs_scheme_region_groups,
};
/*
* scheme regions directory
*/
struct damon_sysfs_scheme_regions {
struct kobject kobj;
struct list_head regions_list;
int nr_regions;
unsigned long total_bytes;
};
static struct damon_sysfs_scheme_regions *
damon_sysfs_scheme_regions_alloc(void)
{
struct damon_sysfs_scheme_regions *regions = kmalloc(sizeof(*regions),
GFP_KERNEL);
if (!regions)
return NULL;
regions->kobj = (struct kobject){};
INIT_LIST_HEAD(®ions->regions_list);
regions->nr_regions = 0;
regions->total_bytes = 0;
return regions;
}
static ssize_t total_bytes_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{
struct damon_sysfs_scheme_regions *regions = container_of(kobj,
struct damon_sysfs_scheme_regions, kobj);
return sysfs_emit(buf, "%lu\n", regions->total_bytes);
}
static void damon_sysfs_scheme_regions_rm_dirs(
struct damon_sysfs_scheme_regions *regions)
{
struct damon_sysfs_scheme_region *r, *next;
list_for_each_entry_safe(r, next, ®ions->regions_list, list) {
/* release function deletes it from the list */
kobject_put(&r->kobj);
regions->nr_regions--;
}
}
static void damon_sysfs_scheme_regions_release(struct kobject *kobj)
{
kfree(container_of(kobj, struct damon_sysfs_scheme_regions, kobj));
}
static struct kobj_attribute damon_sysfs_scheme_regions_total_bytes_attr =
__ATTR_RO_MODE(total_bytes, 0400);
static struct attribute *damon_sysfs_scheme_regions_attrs[] = {
&damon_sysfs_scheme_regions_total_bytes_attr.attr,
NULL,
};
ATTRIBUTE_GROUPS(damon_sysfs_scheme_regions);
static const struct kobj_type damon_sysfs_scheme_regions_ktype = {
.release = damon_sysfs_scheme_regions_release,
.sysfs_ops = &kobj_sysfs_ops,
.default_groups = damon_sysfs_scheme_regions_groups,
};
/*
* schemes/stats directory
*/
struct damon_sysfs_stats {
struct kobject kobj;
unsigned long nr_tried;
unsigned long sz_tried;
unsigned long nr_applied;
unsigned long sz_applied;
unsigned long sz_ops_filter_passed;
unsigned long qt_exceeds;
};
static struct damon_sysfs_stats *damon_sysfs_stats_alloc(void)
{
return kzalloc(sizeof(struct damon_sysfs_stats), GFP_KERNEL);
}
static ssize_t nr_tried_show(struct kobject *kobj, struct kobj_attribute *attr,
char *buf)
{
struct damon_sysfs_stats *stats = container_of(kobj,
struct damon_sysfs_stats, kobj);
return sysfs_emit(buf, "%lu\n", stats->nr_tried);
}
static ssize_t sz_tried_show(struct kobject *kobj, struct kobj_attribute *attr,
char *buf)
{
struct damon_sysfs_stats *stats = container_of(kobj,
struct damon_sysfs_stats, kobj);
return sysfs_emit(buf, "%lu\n", stats->sz_tried);
}
static ssize_t nr_applied_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{
struct damon_sysfs_stats *stats = container_of(kobj,
struct damon_sysfs_stats, kobj);
return sysfs_emit(buf, "%lu\n", stats->nr_applied);
}
static ssize_t sz_applied_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{
struct damon_sysfs_stats *stats = container_of(kobj,
struct damon_sysfs_stats, kobj);
return sysfs_emit(buf, "%lu\n", stats->sz_applied);
}
static ssize_t sz_ops_filter_passed_show(struct kobject *kobj,
struct kobj_attribute *attr / SPDX-License/*
{
truct damon_sysfs_stats *stats = container_of(kobj,
struct damon_sysfs_stats, kobj);
return sysfs_emit(buf, "%lu\n", stats->sz_ops_filter_passed);
}
static ssize_t qt_exceeds_show(struct kobject *kobj,
char *buf)
{
struct damon_sysfs_stats *stats = container_of(kobj,
struct damon_sysfs_stats, kobj);
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
}
static void damon_sysfs_stats_release(struct kobject *kobj)
{
kfree(container_of(kobj, struct damon_sysfs_stats, damon_region *region)
}
static struct kobj_attribute damon_sysfs_stats_nr_tried_attr =
);
static struct kobj_attribute damon_sysfs_stats_sz_tried_attr sysfs_region->ar = region->ar;
_s,0400;
start_show( kobj,struct kobj_attribute*attr,
__ATTR_RO_MODE( damon_sysfs_scheme_region ;
structkobj_attribute =
__sz_applied );
static struct kobj_attribute damon_sysfs_stats_sz_ops_filter_passed_attr =
__sz_ops_filter_passed,0400);
static ssize_t nr_accesses_showstruct kobject *kobj
(qt_exceeds,0400;
static attribute *damon_sysfs_stats_attrs[] = {
&damon_sysfs_stats_nr_tried_attr.attr,
&damon_sysfs_stats_sz_tried_attr.attr,
&damon_sysfs_stats_nr_applied_attr.attr,
&damon_sysfs_stats_sz_applied_attr.attr,
&.attr,
NULL,
};
ATTRIBUTE_GROUPS sz_filter_passed_show(struct *,
static const struct kobj_type damon_sysfs_stats_ktype = {
.release = java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
sysfs_ops = &obj_sysfs_ops,
.default_groups = __ATTR_RO_MODE(end, 0400;
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
/*
*staticstruct kobj_attribute damon_sysfs_scheme_region_age_attr =
*/
/*
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*/
enum
DAMOS_SYSFS_FILTER_HANDLE_LAYER_OPS
DAMOS_SYSFS_FILTER_HANDLE_LAYER_BOTHdamon_sysfs_scheme_region_start_attr.attr,
};
struct damon_sysfs_scheme_filter {
struct kobject kobj;
enum &damon_sysfs_scheme_region_end_attrattr,
enum damos_filter_type type;
bool &damon_sysfs_scheme_region_nr_accesses_attr.attr,
boolallow;
char *memcg_path;
struct damon_addr_range addr_range&amon_sysfs_scheme_region_sz_filter_passed_attrattr,
struct damon_size_range NULL,
int target_idx;
};
struct damon_sysfs_scheme_filter damon_sysfs_scheme_filter_alloc(
enum damos_sysfs_filter_handle_layer layer)
{
struct java.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 42
filter = kzalloc(sizeof(struct damon_sysfs_scheme_filter), GFP_KERNEL);
if (filter)
filter-h = ;
}
struct damos_sysfs_filter_type_name{
enum damos_filter_type type;
char *name;
};
static const struct damos_sysfs_filter_type_name
struct damon_sysfs_scheme_regions {
{
.type struct kobject kobj;
.name = "anon",
},
{
.type = structstruct list_head regions_list;
.name = "active",
},
{
.type = DAMOS_FILTER_TYPE_MEMCG,
. nr_regions;
},
{
.type = DAMOS_FILTER_TYPE_YOUNG,
.name = y,
},
{
.type = java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
.name = "hugepage_size",
},
{
.type = DAMOS_FILTER_TYPE_UNMAPPED,
.name = "java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 0
,
{
.type = DAMOS_FILTER_TYPE_ADDR,
.name = struct * =container_ofkobj,
,
{
.type = DAMOS_FILTER_TYPE_TARGET
"
},
};
static ssize_t type_show(struct kobjectjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
struct kobj_attribute* char *)
{
struct damon_sysfs_scheme_filter *filter kobject_put&-kobj)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
, kobj;
int i;
for (i = java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
const struct damos_sysfs_filter_type_name *java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
type_name = &damos_sysfs_filter_type_names[i];
if t-ype= filter-type
return damon_sysfs_scheme_regions_total_bytes_attrattr,
}
;
}
static bool damos_sysfs_scheme_filter_valid_type(
enum java.lang.StringIndexOutOfBoundsException: Range [44, 38) out of bounds for length 45
enum;
{
switch java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
case DAMOS_SYSFS_FILTER_HANDLE_LAYER_BOTH:
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 3
case DAMOS_SYSFS_FILTER_HANDLE_LAYER_CORE:
return !damos_filter_for_ops(type);
unsignedlong nr_tried
or_opst)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
default:
break;
}
return false;
}
static ssize_t type_stores kobject kobj,
struct kobj_attribute *attr
{
structjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
struct damon_sysfs_scheme_filter, kobj);
ssize_t ret = -EINVAL;
;
for( 0 i java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 66
name
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 79
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 53
if(damos_sysfs_scheme_filter_valid_type
type_name->ype)
break;
filter->type = type_name-
ret java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
}
return ret;
}
matching_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{
struct filter=java.lang.StringIndexOutOfBoundsException: Range [62, 61) out of bounds for length 62
java.lang.StringIndexOutOfBoundsException: Range [35, 9) out of bounds for length 43
return java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 35
}
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 51
structjava.lang.StringIndexOutOfBoundsException: Range [25, 23) out of bounds for length 41
{
struct damon_sysfs_scheme_filter *filter =java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 35
struct damon_sysfs_scheme_filter, kobj);
bool ssize_t java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 52
int errjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
if (err)
return err;
filter
return count;
}
staticjava.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 47
struct kobj_attribute *attr, char *buf)
{
struct damon_sysfs_scheme_filter *filter = container_of(kobj,
struct damon_sysfs_scheme_filter, kobj);
return sysfs_emit}
}
static ssize_t allow_store(struct kobject *kobj,
struct java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
{
static kobj_attribute damon_sysfs_stats_nr_applied_attr =
struct damon_sysfs_scheme_filter, kobj);
bool allow;
int err _(java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 35
if (err)_Ajava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 35
return err;
filter-> _java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 45
return count;
}
static ssize_t memcg_path_show(struct kobject *kobj, _ATTR_RO_MODEjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Range [25, 23) out of bounds for length 41
{
struct damon_sysfs_scheme_filter *filter = container_of(kobj,
struct damon_sysfs_scheme_filter, kobj);
return sysfs_emit(buf, "%s\n",
java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 41
}
static ssize_t memcg_path_store(java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 2
struct kobj_attribute *attr, const char *buf, size_t count)
{
java.lang.StringIndexOutOfBoundsException: Range [33, 7) out of bounds for length 62
java.lang.StringIndexOutOfBoundsException: Range [41, 35) out of bounds for length 43
java.lang.StringIndexOutOfBoundsException: Range [43, 5) out of bounds for length 62
;
if
-NOMEM
strscpy*/
-java.lang.StringIndexOutOfBoundsException: Range [27, 25) out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Range [26, 7) out of bounds for length 27
return YSFS_java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 38
}
static ssize_t enum java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 51
char *memcg_path;
{
damon_sysfs_scheme_filterfilter =container_of(obj,
struct damon_sysfs_scheme_filter, kobj);
java.lang.StringIndexOutOfBoundsException: Range [16, 7) out of bounds for length 59
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
static ssize_t addr_start_store(struct kobject *kobj,
struct enum damos_sysfs_filter_handle_layer layer)
{
struct damon_sysfs_scheme_filter *filter = container_of(kobj,java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
struct filter = kzalloc(sizeofjava.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 72
java.lang.StringIndexOutOfBoundsException: Range [35, 4) out of bounds for length 55
: ;
}
ssize_t addr_end_shows kobject *java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
structjava.lang.StringIndexOutOfBoundsException: Range [25, 23) out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
*java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 62
struct java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 3
.Djava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 34
}
static ssize_t addr_end_store(struct kobject *kobj,
struct kobj_attribute *attr, const char *buf, size_t count)
{
struct damon_sysfs_scheme_filter *filter = container_of(kobj,
)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 53
err c;
}
static ssize_t min_show}java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Range [25, 23) out of bounds for length 41
{
struct DAMOS_FILTER_TYPE_TARGET
struct java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 3
, har java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
}
structkobject *,
struct kobj_attribute *attr, const char *buf, size_t count)
{
java.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 62
damon_sysfs_scheme_filter, kobj)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
int
return err ? if (type_name->ype = filter->type)
}
static return -EINVAreturn -EINVAL;
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
{
struct enum damos_sysfs_filter_handle_layer layer,
damon_sysfs_scheme_filterkobj;
return sysfs_emit(buf, "%lu\n", filter->sz_range.max);
}
ssize_t max_store(struct kobject *kobj,
struct kobj_attribute *attr, const char *buf, size_t count)
{
struct damon_sysfs_scheme_filter *filter = container_of(kobj,
ruct damon_sysfs_scheme_filter, kobj);
int err = kstrtoul(buf, 0, &filter->sz_range.max);
return err ? err : count;case DAMOS_SYSFS_FILTER_HANDLE_LAYER_CORE
}
static (struct kobject kobj
struct kobj_attribute *attr, char return damos_filter_for_ops((type;
{
struct damon_sysfs_scheme_filter *filter = container_of(kobj,
ct kobj;
return sysfs_emit
}
static ssize_t damon_target_idx_store(struct kobject *kobj,
structstatic ssize_t (struct kobjectkobject *kobjjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
{
struct damon_sysfs_scheme_filter, kobj);
struct damon_sysfs_scheme_filter, kobj);
int err = kstrtoint EINVAL;
return err ? err : count i;
}
for i=0 damos_sysfs_filter_type_names) ++
{
struct damon_sysfs_scheme_filter if !amos_sysfs_scheme_filter_valid_type
struct >ype)
filter>)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
kfree(filterjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
}
static struct =
__ATTR_RW_MODE(type, 0600);
static kobj_attribute damon_sysfs_scheme_filter_matching_attr=
__ATTR_RW_MODE(matching, 0600);
static struct kobj_attribute damon_sysfs_scheme_filter_allow_attr =
_allow 0600);
static struct
__ATTR_RW_MODE(emcg_path0600)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 1
__ATTR_RW_MODE(addr_start, 0600);
static kobj_attributedamon_sysfs_scheme_filter_addr_end_attr=
__ATTR_RW_MODE(addr_end, 0600);
static structkobj_attribute =
__ATTR_RW_MODE(filter-matching ;
static struct damon_sysfs_scheme_filter_max_attr=
__ATTR_RW_MODE(max, 0600);
static damon_sysfs_scheme_filter_damon_target_idx_attr =
__damon_sysfs_scheme_filter ;
static struct java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
&damon_sysfs_scheme_filter_type_attr.attr,
&java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 1
&damon_sysfs_scheme_filter_allow_attr.attr,
&.attr,
&java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1
&damon_sysfs_scheme_filter_addr_end_attr.java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 43
int =kstrtobool(uf,&llow)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
&damon_sysfs_scheme_filter_max_attrreturn errjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
&java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 14
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
};
java.lang.StringIndexOutOfBoundsException: Range [42, 16) out of bounds for length 44
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 65
.java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1
.sysfs_ops = &kobj_sysfs_ops,
.default_groups = damon_sysfs_scheme_filter_groups,
};
/*
*/
java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 21
enumstructkobj
java.lang.StringIndexOutOfBoundsException: Range [36, 33) out of bounds for length 48
int nr;
};
static structjava.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Range [59, 32) out of bounds for length 76
{
struct damon_sysfs_scheme_filters *filters;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
if(ilters
struct kobj_attribute *attrc char* size_t)
return filters;
}
static void damon_sysfs_scheme_filters_rm_dirs(
struct damon_sysfs_scheme_filters *filters)
{
struct damon_sysfs_scheme_filter **filters_arrint err =kstrtoul(buf, 0, &filter->addr_range.start);
int i;
for (i = 0; i < filters->nr; i++)
kobject_put(&filters_arr[i]->kobj);
filters->nr = 0;
kfree(filters_arr);
static addr_end_show(tructkobject *kobj,
}
struct attr char*bufjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
struct damon_sysfs_scheme_filters *filters, int nr_filters struct damon_sysfs_scheme_filter, kobj)
{
struct damon_sysfs_scheme_filter **filters_arr, *filter;
, i;
damon_sysfs_scheme_filters_rm_dirs(filters);
if(!r_filters)
return 0;
struct damon_sysfs_scheme_filter,kobj)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
(java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 43
filters= java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 36
(=0 <java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 35
(
struct d );
if (! err = kstrt(uf 0, f-.)java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 1
-;
}
err = kobject_init_and_add(&filter->kobj,
&damon_sysfs_scheme_filter_ktype,
&filters-kobj "" i;
if (err) {
kobject_put(&filter->kobj);
damon_sysfs_scheme_filters_rm_dirs(filters);
return err;
}
filters_arr[i] = filter;
filters->nr++;
}
return 0;
}
static java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
struct kobj_attribute *attr, char *buf)
{staticssize_t s kobjjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
damon_sysfs_scheme_filters *= (kobj
struct damon_sysfs_scheme_filters, kobj);
return sysfs_emit(buf, "%struct damon_sysfs_scheme_filter, kobj);
}
static ssize_t nr_filters_store(struct kobject *kobj,
struct kobj_attribute *attr, const char *buf, size_t count)
{
static ssize_t damon_target_idx_show(struct kobject *kobj,
nr, =kstrtoint(, 0 &r;
if (err)
java.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 62
n<0java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
return;
filters=kobj structkobj)java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
if java.lang.StringIndexOutOfBoundsException: Range [41, 35) out of bounds for length 43
return -EBUSY;
err = damon_sysfs_scheme_filters_add_dirs(filters, nr);
mutex_unlock(&damon_sysfs_lock);
if java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return java.lang.StringIndexOutOfBoundsException: Range [9, 12) out of bounds for length 1
return java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 1
}
static void damon_sysfs_scheme_filters_release(struct kobject *kobj)
{
container_ofkobj java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 68
}
static struct
/ java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 66
staticstruct java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 63
};
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 67
static struct ={
.release = damon_sysfs_scheme_filters_release,
.sysfs_ops = &kobj_sysfs_ops,
.default_groups = damon_sysfs_scheme_filters_groups,
};
/*
*watermarks directory
*/
struct
structkobject
enum damos_wmark_metricmetric00;
unsigned long java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 3
_TR_RW_MODEjava.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 33
midjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
java.lang.StringIndexOutOfBoundsException: Range [18, 9) out of bounds for length 19
};
structjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 23
enum struct damon_regionregion)
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 59
{
struct *java.lang.StringIndexOutOfBoundsException: Range [44, 42) out of bounds for length 53
sizeof
if (!watermarks)
return NULL;
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 14
>metric
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 31
&java.lang.StringIndexOutOfBoundsException: Range [43, 38) out of bounds for length 44
watermarks->&java.lang.StringIndexOutOfBoundsException: Range [48, 43) out of bounds for length 49
watermarks- low;
watermarks;
}
struct damos_sysfs_wmark_metric_namejava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
enum damos_wmark_metric metric;
char *name;
};
static const struct java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
&java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
{
.metric
.*
},
{
.etric =java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 38
,
}java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
};
static ssize_t metric_show(damon_sysfs_scheme_filters_alloc(enum damos_sysfs_filter_handle_layer layer)
char *buf)
{
* k,
struct damon_sysfs_watermarks, kobj);
i;
returnfiltersjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
structjava.lang.StringIndexOutOfBoundsException: Range [37, 35) out of bounds for length 45
= &damos_sysfs_wmark_metric_names[i];java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
if (metric_name->metric == watermarks-> java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
return sysfs_emit(buf, "%s\n", metric_name->name);
}
return -EINVAL;
}
static ssize_t metric_store(struct kobject *kobj, struct kobj_attribute *attr,
ATTRIB(mon_sysfs_scheme_region);
{
structdamon_sysfs_watermarks *watermarks = container_of(kobj,
java.lang.StringIndexOutOfBoundsException: Range [32, 9) out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
&ttrlist;
const structdamos_sysfs_wmark_metric_name *metric_name;
metric_name = &damos_sysfs_wmark_metric_names[i];
;
-> metric_name->metricATTRIBUTE_GROUPS(damon_sysfs_scheme_filters);
return count;
}}
return -EINVAL;
}
static (struct kobject *kobj,
, char *buf)
{
default_groups = damon_sysfs_scheme_filters_groups,
struct damon_sysfs_watermarks, kobj);
sysfs_emit(uf ""watermarks->interval_us);
}
static ssize_t interval_us_store(struct kobject *kobj,
struct kobj_attribute *attr, const char *buf, struct kobj_attribute *attr, const char *buf, size_t
{
struct damon_sysfs_watermarks *watermarks = container_of(kobj,
struct damon_sysfs_watermarksjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
int kstrtoul(buf 0 &atermarks-n)java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 54
return err ? err : count;
}
static java.lang.StringIndexOutOfBoundsException: Range [0, 24) out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
{
struct damon_sysfs_scheme_regions_alloc(void)
structjava.lang.StringIndexOutOfBoundsException: Range [9, 1) out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [15, 7) out of bounds for length 51
}
size_t high_store(truct /*
struct kobj_attribute *attr, const java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 23
{
damon_sysfs_watermarks *watermarks = container_of(kobj,
)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
int err
returnstruct damon_sysfs_scheme_regions region = container_of(kobj,
}
(,,regions- ) java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
structkobj_attribute ttr, *)
{
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 28
java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [0, 7) out of bounds for length 0
}
static mid_store(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 0
{
_ATTR_RO_MODEjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
struct damon_sysfs_watermarks damon_sysfs_watermarks_alloc(
;
return err ? err : count;
}
static ssize_t low_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{
struct sizeof_GROUPSamon_sysfs_scheme_regions);
struct damon_sysfs_watermarks, kobj);
returnsedjava.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 46
;
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 46
struct kobj_attribute *attr, constwatermarks->mid = mid;
{
struct damon_sysfs_watermarks *watermarksjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
damon_sysfs_watermarks ;
int err = kstrtoul(buf, struct list_head regions_list;
}
static voiddamon_sysfs_scheme_regions_alloc(voidjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 24
{
,
}
.name nonensigned long qt_exceeds;
_ATTR_RW_MODE ,
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [63, 13) out of bounds for length 63
_ATTR_RW_MODE ssize_t s kobject *,structkobj_attribute attrjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
static structjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
__java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 12
static struct kobj_attribute damon_sysfs_watermarks_low_attr =
_ATTR_RW_MODE(low, 0600
staticif(tric_name--mjava.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 48
&damon_sysfs_scheme_region *r, *;
&damon_sysfs_watermarks_interval_us_attr
&damon_sysfs_watermarks_high_attrjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
&damon_sysfs_watermarks_mid_attr.attr{
&damon_sysfs_watermarks_low_attr.attr,
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
}
const java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 35
.eleasedamon_sysfs_watermarks_release,
.sz_tried) if (java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 6
.default_groups }
};
/*
* quota.java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 1
*/
java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 31
struct struct damon_sysfs_watermarks )
enumdamos_quota_goal_metric metric;
unsigned sz_ops_filter_passed;
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
int
}s kobj_attribute *attr, const char *buf, size_t count)
struct damos_sysfs_quota_goal *amos_sysfs_quota_goal_allocvoidjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
{
locs(structdamos_sysfs_quota_goal) GFP_KERNEL
}
struct damos_sysfs_qgoal_metric_name {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*;
};
static
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
.java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
.name = "user_input"java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 12
},
{
.metric = DAMOS_QUOTA_SOME_MEM_PSI_US,
.java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
}
{
.metric = DAMOS_QUOTA_NODE_MEM_USED_BPstruct *attr, const kobj_attribute* char buf)
name = "ode_mem_used_bp
},
{
metric DAMOS_QUOTA_NODE_MEM_FREE_BP,
.name = "node_mem_free_bp",
},
}
java.lang.StringIndexOutOfBoundsException: Range [14, 6) out of bounds for length 55
struct java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0
{
struct java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 35
struct damos_sysfs_quota_goal
int ;
for (
damos_sysfs_qgoal_metric_name *metric_name;
metric_name structattr char buf
if( struct kobj_att kobj_attribute*tr
return sysfs_emitstats *stats container_ofkobj,
}
return -java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
ric_storejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [41, 8) out of bounds for length 61
{
struct damos_sysfs_quota_goal *goal = container_of(kobj,
java.lang.StringIndexOutOfBoundsException: Range [10, 1) out of bounds for length 1
int i;
str * =container_of(kobjjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
l_metric_name *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
if java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 1
goal- java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 16
}return_ damon_sysfs_stats, java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
}
return -EINVAL;
}
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 54
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 41
{
struct damos_sysfs_quota_goal *oal = container_of( _TTR_RO_MODEjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 35
"\n
}
static ssize_t java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
*attr char a.attrjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
{
damos_sysfs_quota_goal *goal container_ofjava.lang.StringIndexOutOfBoundsException: Range [0, 56) out of bounds for length 39
__ATTR_RW_MODE(metricATTR_RW_MODEm&amon_sysfs_stats_nr_applied_attr.attr,
int err = kstrtoul(buf, 0, static struct java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 51
java.lang.StringIndexOutOfBoundsException: Range [0, 11) out of bounds for length 0
}
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1
kobj_attribute*ttr buf)
{
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 64
damos_sysfs_quota_goal, kobj);
returnjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
static ssize_t
attr,damon_sysfs_watermarks_interval_us_attr.attr,
{
struct damos_sysfs_quota_goal *goal = container_of(kobj, struct
, kobj);
int amon_sysfs_watermarks_mid_attrjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
/* feed callback should check existence of this file and read value */
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
}
static const kobj_typedamon_sysfs_watermarks_ktype = {
struct kobj_attributejava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 12
{
struct java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 64
damos_sysfs_quota_goalkobj)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
/* todo: return error if the goal is not using nid */
returnjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
static nid_store(structkobject*kobjjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
struct kobj_attribute *attr
{
struct damos_sysfs_quota_goal *goal = container_of*
quota_goal, kobj);
}
/* feed callback should check existence of this file and read value */
return errjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
}
static void long ;
{
/* or, notify this release to the feed callback */
kfree(container_ofstatic structdamos_sysfs_quota_goal {
}
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
_A(target_metric, 0600;
static struct kobj_attribute java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 0
}
static struct kobj_attribute.ame="java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 2
__ATTR_RW_MODE . oungjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
static struct . DAMOS_FILTER_TYPE_UNMAPPED. ,
__ATTR_RW_MODE(nid,0600
staticjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
}java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
&},
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
NULL,
};
ATTRIBUTE_GROUPS struct kobj_attributejava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
static const struct djava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
.release = &damon_sysfs_stats_sz_applied_attrjava.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 41
.sysfs_ops = &kobj_sysfs_ops,
.default_groups = damos_sysfs_quota_goal_groups,
};
/*
};
*/
struct sysfs_emit(buf, "%s\n", type_name->name);
struct kobject kobj
structdamos_sysfs_quota_goal**oals_arr; /* counted by nr */
int nr;
}java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
a_goals*mos_sysfs_quota_goals_alloc(oid)
{
return kzalloc( switch((layer
}
static void damos_sysfs_quota_goals_rm_dirs(
struct damos_sysfs_quota_goals filterdirectory
{
struct java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Range [6, 4) out of bounds for length 7
for (= 0; < goals-java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
DAMOS_SYSFS_FILTER_HANDLE_LAYER_BO,
goals-> default
kfree break;
return false;
}
staticssize_t t*bj
struct damos_sysfs_quota_goals *goals, int nr_goals)
{
struct . matching
int err, i;
damos_sysfs_quota_goals_rm_dirs {
if (!nr_goals)
return 0;
goals_arr =
{
ifjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
return -;
goals->goals_arr
for(=0;;java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
goal = damos_sysfs_quota_goal_alloc();
if (!goal) {
damos_sysfs_quota_goals_rm_dirs(goals);
return -ENOMEM;
}
errjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 48
"d,i);
if(sysfs_streq(buf,type_name->name)) java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
&-kobj;
damos_sysfs_quota_goals_rm_dirsgoals;
err;
}
goals_arr[i] = goal;
char *java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
}
0java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
}
static ssize_t java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 41
{
struct .name = "memcg,
struct damos_sysfs_quota_goals,kobj;
eturn ret java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
}
static .name = "hug
name=amos_sysfs_java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 52
{
struct damos_sysfs_quota_goals *java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 17
int nr, err = java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 16
if (err }
return err;
if (nr < 0)
return -INVAL;
goals = container_of(kobj, struct java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (!mutex_trylockjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
structjava.lang.StringIndexOutOfBoundsException: Range [25, 23) out of bounds for length 61
err = java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 1
mutex_unlock(&damon_sysfs_lock); kobj;
if ,
return java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
return count;
}
static void
{
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
}
java.lang.StringIndexOutOfBoundsException: Range [28, 6) out of bounds for length 62
__ATTR_RW_MODE java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
&damos_sysfs_quota_goals_nr_attr.attr,
NULL,
};
ATTRIBUTE_GROUPS(java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
release =struct kobj_attribute *, char*java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
.sysfs_ops = &static ssize_tstruct *oal = container_of(kobj, struct
.struct kobj_attribute *attr, damos_sysfs_quota_goal,kobj);
};
/*
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*/
struct
struct damos_sysfs_qu
unsigned return,;
tnr_accesses
java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 18
};
staticdamon_sysfs_weights_alloc(int java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
- !java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 1
goals
(-m);
if, java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 14
if (!nr_goals
weightsstruct java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
struct GFP_KERNEL _java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 1
0;
weightst java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 12
returnweights;
}
return
static ssize_t nr_goals_show(struct kobject
{
struct*ights container_ofjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
staticssize_tsz_permil_storeconst
struct kobj_attribute *attrstruct
{
struct struct java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 43
struct damon_sysfs_weights, kobj);
static ssize_t java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [1, 0) out of bounds for length 0
}
staticssize_t nr_accesses_permil_show(struct java.lang.StringIndexOutOfBoundsException: Range [1, 8) out of bounds for length 0
{
struct damon_sysfs_weightskfree
structjava.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 27
return sysfs_emit(buf,,char*)
}
static ssize_t return sysfs_emit(buf, "%lu\n
struct * buf size_t count
{
struct damon_sysfs_weights *java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 1
struct damon_sysfs_scheme_filterfilter = container_ofjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
int damon_sysfs_scheme_filter,;
:
}
static ssize_t java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0
{
struct damon_sysfs_weights *weights = container_ofstruct java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 37
return sysfs_emit(buf, "%u\n", weights->age
}
static ssize_tjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
struct kobj_attribute stru _(,0600;
{
struct damon_sysfs_weights *eights java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
, obj;
int err = kstrtouint(buf, 0, 600)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return err NULL;
}
static{
java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 1
kfreecontainer_ofkjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
}
static kobj_attribute damon_sysfs_weights_sz_attr =
_ATTR_RW_MODE(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
static struct kobj_attribute =kstrtouint(,&>)
__ATTR_RW_MODE java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
static .
__return err ? err;
static struct attribute&.java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
amon_sysfs_weights_sz_attr.attr,
&.java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
static filters-ATTRIBUTE_GROUPSdamon_sysfs_scheme_filter)
NULL,
};
for (i =);
static structjava.lang.StringIndexOutOfBoundsException: Range [25, 23) out of bounds for length 56
.release = damon_sysfs_weights_sz_attr,
. }
. =java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 46
/*;
*
*/
struct struct java.lang.StringIndexOutOfBoundsException: Range [0, 44) out of bounds for length 1
struct kobject kobj;
nr_filterssizeoffilters_arr),
struct damos_sysfs_quota_goals *goals
unsigned long java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
unsigned sz;
unsigned long reset_interval_ms;
gnedlong effective_sz;
};
static struct (;
{
return kzalloc;
}
tatic EBUSY;
{
struct damon_sysfs_weights *weights;
goals (;
int err;
weights if (errjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
if (rn-NOMEM
return i
err(eights-kobj java.lang.StringIndexOutOfBoundsException: Range [71, 70) out of bounds for length 71
& quotas-g ; _(nr_filters
java.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 11
return
return err;
}
uotasw w;
java.lang.StringIndexOutOfBoundsException: Range [1, 6) out of bounds for length 1
if if(o &,char*)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return
}
err = kobject_init_and_add if (rrjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
&damos_sysfs_quota_goals_ktype, "as->kobj,
"goals");
if (err) {
kobject_putstatic bytes_show(structkobject *kobj, java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 35
kobject_put(&goals->kobj);
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 1
-enum metricu ,
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
}
static void damos_wmark_metricmetric;
{
&uotas->>-etricmetricjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
goals_rm_dirs - =high;
& - ;
}
staticssize_tjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
char if char * damon_sysfs_quotas, kobj);
{
java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 0
struct damon_sysfs_quotas,staticssize_t reset_interval_ms_storestruct *,-> amos_sysfs_wmark_metric_names[] = {
return struct kobj_attribute java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 23
name = "ifrjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
static ssize_t (structkobject *}
{
char *buf
struct struct kobj_attribute * cntainer_of(java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 63
int errjava.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 60
if (rr
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 1
(ric_name>java.lang.StringIndexOutOfBoundsException: Range [48, 49) out of bounds for length 48
}
static bytes_show(truct *java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
char *buf) _Am,0600);
{
damon_sysfs_quotas *java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 55
return java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 1
}
static ssize_t java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 16
NULL
{ struct ,;
int i;
struct}
intstatic const kobj_type
return
return return -EINVAL;
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
static java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [27, 7) out of bounds for length 55
struct
ysfs_emit
}
static damon_sysfs_watermarks *java.lang.StringIndexOutOfBoundsException: Range [46, 6) out of bounds for length 47
struct return sysfs_emit(uf,java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 17
{
struct damon_sysfs_quotas *quotas }
struct java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 56
ssize_t mid_showjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 1
return java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 1
}
java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 57
struct kobj_attribute *attr, char kobj_attribute*,onst, count
{
damon_sysfs_quotas *quotas = container_of(kobj,
-s ;
struct java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 1
}
static void
{
java.lang.StringIndexOutOfBoundsException: Range [57, 6) out of bounds for length 60
}
taticstruct kobj_attribute java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 36
__ATTR_RW_MODE(static struct java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 1
static kobj_attribute damon_sysfs_quotas_sz_attr
static struct kobj_attribute &damon_sysfs_watermarks_interval_us_attr.attr
_ attr,
static struct kobj_attributejava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
__java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
static NULL
&amon_sysfs_quotas_ms_attr}d)java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
&damon_sysfs_quotas_sz_attrjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 2
&damon_sysfs_quotas_reset_interval_ms_attr kobj_attribute *,har*)
&damon_sysfs_quotas_effective_bytes_attr.attr,
NULL,
};
ATTRIBUTE_GROUPS(damon_sysfs_quotas);
static const struct kobj_type damon_sysfs_quotas_ktype = (uf*/
.sysfs_ops struct damos_sysfs_quota_goal {
.default_groups = damon_sysfs_quotas_groups,
};
/*
static ssize_t id_store(struct kobject *kobj,
*/
struct damon_sysfs_access_pattern {
struct kobject kobj;
int damos_sysfs_dest * o,
struct damon_sysfs_ul_range *nr_accesses;
structtruct damon_sysfs_ul_range *age;
};
static
struct damon_sysfs_access_pattern * return kzalloc(sizeof(struct damos_sysfs_quota_goal
{
struct damon_sysfs_access_pattern *java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 0
kmalloc(sizeof(*java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
if (!ccess_pattern)
return damos_sysfs_quota_goal kobj);
access_pattern->kobj = (struct java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 35
return access_pattern;
}
static intstatic ssize_t current_value_show(struct java.lang.StringIndexOutOfBoundsException: Range [0, 48) out of bounds for length 25
struct damon_sysfs_access_pattern *access_pattern,
e_dir_ptr,
char *name)
{
struct damon_sysfs_ul_range *range = java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 1
int damos_sysfs_dest damos_sysfs_quota_goal, kobj);
if
n-;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
&java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
if (err)
kobject_put(-kobj);
else
*range_dir_ptr = dests_arr = _ttributeattr constchar*uf size_t )
return err;
}
static int damon_sysfs_access_pattern_add_dirs(
struct damon_sysfs_access_pattern *ccess_pattern)
{
int errfor
err = damon_sysfs_access_pattern_add_range_dir(access_pattern,
&access_pattern- returnerr e :;
if
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
err = damon_sysfs_access_pattern_add_range_dir(access_pattern,
&java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
if (err &eed callback should checkexistence file andjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 33
goto java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 12
java.lang.StringIndexOutOfBoundsException: Range [28, 4) out of bounds for length 63
&access_patternjava.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 43
if (err)
java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 0
return 0;
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 1
obj);
access_pattern->age = NULL;
put_nr_accesses_sz_out: damos_sysfs_quota_goalreturn ;
} err uf ,>nid
access_pattern
put_sz_out:
(*,java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
access_pattern->sz struct *ttr java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 41
return err;
}
static void damon_sysfs_access_pattern_rm_dirs(
struct damon_sysfs_access_pattern *access_pattern)
{
kobject_put(&access_pattern->sz->kobj);
kobject_put
kobject_put(&access_pattern->agestatic ssize_t nid_store(struct kobject *kobj,
}
static void damon_sysfs_access_pattern_release(struct kobject *kobj)
{
kfree(ontainer_of return ? count;
}
static java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
err kstrtoint(uf, 0,&goal>nid);
};
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 1
static const ner_of(obj struct damos_sysfs_quota_goal, kobj));
.release
.sysfs_ops static struct kobj_attribute damos_sysfs_quota_goal_target_metric_attr =
.java.lang.StringIndexOutOfBoundsException: Range [51, 19) out of bounds for length 51
};
/*
structstruct _java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 37
*/
struct damos_sysfs_dest {
struct kobject kobj;
unsigned int id;
java.lang.StringIndexOutOfBoundsException: Range [13, 9) out of bounds for length 21
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
static kobj_attribute damos_sysfs_quota_goal_nid_attr =
{
return kzalloc(sizeofal_nid_attr.java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 39
}
static ssize_t id_show(
struct kobject *kobj, struct kobj_attribute *attr, char *buf
{
struct damos_sysfs_dest *dest = container_of(kobj,
damos_sysfs_dest;
return;
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 1 | |