Lines Matching refs:kdamond
950 static int damon_sysfs_kdamond_add_dirs(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_kdamond_add_dirs() argument
960 &damon_sysfs_contexts_ktype, &kdamond->kobj, in damon_sysfs_kdamond_add_dirs()
966 kdamond->contexts = contexts; in damon_sysfs_kdamond_add_dirs()
971 static void damon_sysfs_kdamond_rm_dirs(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_kdamond_rm_dirs() argument
973 damon_sysfs_contexts_rm_dirs(kdamond->contexts); in damon_sysfs_kdamond_rm_dirs()
974 kobject_put(&kdamond->contexts->kobj); in damon_sysfs_kdamond_rm_dirs()
982 running = ctx->kdamond != NULL; in damon_sysfs_ctx_running()
1041 struct damon_sysfs_kdamond *kdamond; member
1050 struct damon_sysfs_kdamond *kdamond = container_of(kobj, in state_show() local
1052 struct damon_ctx *ctx = kdamond->damon_ctx; in state_show()
1208 struct damon_sysfs_kdamond *kdamond; in damon_sysfs_before_terminate() local
1211 kdamond = damon_sysfs_cmd_request.kdamond; in damon_sysfs_before_terminate()
1212 if (kdamond && damon_sysfs_cmd_request.cmd == in damon_sysfs_before_terminate()
1214 ctx == kdamond->damon_ctx) { in damon_sysfs_before_terminate()
1239 static int damon_sysfs_upd_schemes_stats(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_upd_schemes_stats() argument
1241 struct damon_ctx *ctx = kdamond->damon_ctx; in damon_sysfs_upd_schemes_stats()
1246 kdamond->contexts->contexts_arr[0]->schemes, ctx); in damon_sysfs_upd_schemes_stats()
1251 struct damon_sysfs_kdamond *kdamond) in damon_sysfs_upd_schemes_regions_start() argument
1253 struct damon_ctx *ctx = kdamond->damon_ctx; in damon_sysfs_upd_schemes_regions_start()
1258 kdamond->contexts->contexts_arr[0]->schemes, ctx); in damon_sysfs_upd_schemes_regions_start()
1262 struct damon_sysfs_kdamond *kdamond) in damon_sysfs_upd_schemes_regions_stop() argument
1264 struct damon_ctx *ctx = kdamond->damon_ctx; in damon_sysfs_upd_schemes_regions_stop()
1272 struct damon_sysfs_kdamond *kdamond) in damon_sysfs_clear_schemes_regions() argument
1274 struct damon_ctx *ctx = kdamond->damon_ctx; in damon_sysfs_clear_schemes_regions()
1279 kdamond->contexts->contexts_arr[0]->schemes, ctx); in damon_sysfs_clear_schemes_regions()
1283 struct damon_sysfs_kdamond *kdamond) in damon_sysfs_kdamond_running() argument
1285 return kdamond->damon_ctx && in damon_sysfs_kdamond_running()
1286 damon_sysfs_ctx_running(kdamond->damon_ctx); in damon_sysfs_kdamond_running()
1312 static int damon_sysfs_commit_input(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_commit_input() argument
1314 if (!damon_sysfs_kdamond_running(kdamond)) in damon_sysfs_commit_input()
1317 if (kdamond->contexts->nr != 1) in damon_sysfs_commit_input()
1320 return damon_sysfs_apply_inputs(kdamond->damon_ctx, in damon_sysfs_commit_input()
1321 kdamond->contexts->contexts_arr[0]); in damon_sysfs_commit_input()
1333 struct damon_sysfs_kdamond *kdamond; in damon_sysfs_cmd_request_callback() local
1341 kdamond = damon_sysfs_cmd_request.kdamond; in damon_sysfs_cmd_request_callback()
1342 if (!kdamond || kdamond->damon_ctx != c) in damon_sysfs_cmd_request_callback()
1346 err = damon_sysfs_upd_schemes_stats(kdamond); in damon_sysfs_cmd_request_callback()
1349 err = damon_sysfs_commit_input(kdamond); in damon_sysfs_cmd_request_callback()
1353 err = damon_sysfs_upd_schemes_regions_start(kdamond); in damon_sysfs_cmd_request_callback()
1359 err = damon_sysfs_upd_schemes_regions_stop(kdamond); in damon_sysfs_cmd_request_callback()
1364 err = damon_sysfs_clear_schemes_regions(kdamond); in damon_sysfs_cmd_request_callback()
1370 damon_sysfs_cmd_request.kdamond = NULL; in damon_sysfs_cmd_request_callback()
1399 static int damon_sysfs_turn_damon_on(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_turn_damon_on() argument
1404 if (damon_sysfs_kdamond_running(kdamond)) in damon_sysfs_turn_damon_on()
1406 if (damon_sysfs_cmd_request.kdamond == kdamond) in damon_sysfs_turn_damon_on()
1409 if (kdamond->contexts->nr != 1) in damon_sysfs_turn_damon_on()
1412 if (kdamond->damon_ctx) in damon_sysfs_turn_damon_on()
1413 damon_destroy_ctx(kdamond->damon_ctx); in damon_sysfs_turn_damon_on()
1414 kdamond->damon_ctx = NULL; in damon_sysfs_turn_damon_on()
1416 ctx = damon_sysfs_build_ctx(kdamond->contexts->contexts_arr[0]); in damon_sysfs_turn_damon_on()
1424 kdamond->damon_ctx = ctx; in damon_sysfs_turn_damon_on()
1428 static int damon_sysfs_turn_damon_off(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_turn_damon_off() argument
1430 if (!kdamond->damon_ctx) in damon_sysfs_turn_damon_off()
1432 return damon_stop(&kdamond->damon_ctx, 1); in damon_sysfs_turn_damon_off()
1454 struct damon_sysfs_kdamond *kdamond) in damon_sysfs_handle_cmd() argument
1461 return damon_sysfs_turn_damon_on(kdamond); in damon_sysfs_handle_cmd()
1463 return damon_sysfs_turn_damon_off(kdamond); in damon_sysfs_handle_cmd()
1469 if (damon_sysfs_cmd_request.kdamond) in damon_sysfs_handle_cmd()
1471 if (!damon_sysfs_kdamond_running(kdamond)) in damon_sysfs_handle_cmd()
1474 damon_sysfs_cmd_request.kdamond = kdamond; in damon_sysfs_handle_cmd()
1485 if (!damon_sysfs_cmd_request.kdamond) { in damon_sysfs_handle_cmd()
1488 } else if (!damon_sysfs_kdamond_running(kdamond)) { in damon_sysfs_handle_cmd()
1491 damon_sysfs_cmd_request.kdamond = NULL; in damon_sysfs_handle_cmd()
1502 struct damon_sysfs_kdamond *kdamond = container_of(kobj, in state_store() local
1511 ret = damon_sysfs_handle_cmd(cmd, kdamond); in state_store()
1524 struct damon_sysfs_kdamond *kdamond = container_of(kobj, in pid_show() local
1531 ctx = kdamond->damon_ctx; in pid_show()
1536 if (ctx->kdamond) in pid_show()
1537 pid = ctx->kdamond->pid; in pid_show()
1546 struct damon_sysfs_kdamond *kdamond = container_of(kobj, in damon_sysfs_kdamond_release() local
1549 if (kdamond->damon_ctx) in damon_sysfs_kdamond_release()
1550 damon_destroy_ctx(kdamond->damon_ctx); in damon_sysfs_kdamond_release()
1551 kfree(kdamond); in damon_sysfs_kdamond_release()
1609 damon_sysfs_cmd_request.kdamond == kdamonds[i]) in damon_sysfs_kdamonds_busy()
1619 struct damon_sysfs_kdamond **kdamonds_arr, *kdamond; in damon_sysfs_kdamonds_add_dirs() local
1636 kdamond = damon_sysfs_kdamond_alloc(); in damon_sysfs_kdamonds_add_dirs()
1637 if (!kdamond) { in damon_sysfs_kdamonds_add_dirs()
1642 err = kobject_init_and_add(&kdamond->kobj, in damon_sysfs_kdamonds_add_dirs()
1648 err = damon_sysfs_kdamond_add_dirs(kdamond); in damon_sysfs_kdamonds_add_dirs()
1652 kdamonds_arr[i] = kdamond; in damon_sysfs_kdamonds_add_dirs()
1659 kobject_put(&kdamond->kobj); in damon_sysfs_kdamonds_add_dirs()