Lines Matching refs:kdamond
2006 static int damon_sysfs_kdamond_add_dirs(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_kdamond_add_dirs() argument
2016 &damon_sysfs_contexts_ktype, &kdamond->kobj, in damon_sysfs_kdamond_add_dirs()
2022 kdamond->contexts = contexts; in damon_sysfs_kdamond_add_dirs()
2027 static void damon_sysfs_kdamond_rm_dirs(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_kdamond_rm_dirs() argument
2029 damon_sysfs_contexts_rm_dirs(kdamond->contexts); in damon_sysfs_kdamond_rm_dirs()
2030 kobject_put(&kdamond->contexts->kobj); in damon_sysfs_kdamond_rm_dirs()
2038 running = ctx->kdamond != NULL; in damon_sysfs_ctx_running()
2085 struct damon_sysfs_kdamond *kdamond; member
2094 struct damon_sysfs_kdamond *kdamond = container_of(kobj, in state_show() local
2096 struct damon_ctx *ctx = kdamond->damon_ctx; in state_show()
2371 static int damon_sysfs_upd_schemes_stats(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_upd_schemes_stats() argument
2373 struct damon_ctx *ctx = kdamond->damon_ctx; in damon_sysfs_upd_schemes_stats()
2380 sysfs_schemes = kdamond->contexts->contexts_arr[0]->schemes; in damon_sysfs_upd_schemes_stats()
2399 struct damon_sysfs_kdamond *kdamond) in damon_sysfs_kdamond_running() argument
2401 return kdamond->damon_ctx && in damon_sysfs_kdamond_running()
2402 damon_sysfs_ctx_running(kdamond->damon_ctx); in damon_sysfs_kdamond_running()
2428 static int damon_sysfs_commit_input(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_commit_input() argument
2430 if (!damon_sysfs_kdamond_running(kdamond)) in damon_sysfs_commit_input()
2433 if (kdamond->contexts->nr != 1) in damon_sysfs_commit_input()
2436 return damon_sysfs_apply_inputs(kdamond->damon_ctx, in damon_sysfs_commit_input()
2437 kdamond->contexts->contexts_arr[0]); in damon_sysfs_commit_input()
2449 struct damon_sysfs_kdamond *kdamond; in damon_sysfs_cmd_request_callback() local
2455 kdamond = damon_sysfs_cmd_request.kdamond; in damon_sysfs_cmd_request_callback()
2456 if (!kdamond || kdamond->damon_ctx != c) in damon_sysfs_cmd_request_callback()
2460 err = damon_sysfs_upd_schemes_stats(kdamond); in damon_sysfs_cmd_request_callback()
2463 err = damon_sysfs_commit_input(kdamond); in damon_sysfs_cmd_request_callback()
2469 damon_sysfs_cmd_request.kdamond = NULL; in damon_sysfs_cmd_request_callback()
2496 static int damon_sysfs_turn_damon_on(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_turn_damon_on() argument
2501 if (damon_sysfs_kdamond_running(kdamond)) in damon_sysfs_turn_damon_on()
2503 if (damon_sysfs_cmd_request.kdamond == kdamond) in damon_sysfs_turn_damon_on()
2506 if (kdamond->contexts->nr != 1) in damon_sysfs_turn_damon_on()
2509 if (kdamond->damon_ctx) in damon_sysfs_turn_damon_on()
2510 damon_destroy_ctx(kdamond->damon_ctx); in damon_sysfs_turn_damon_on()
2511 kdamond->damon_ctx = NULL; in damon_sysfs_turn_damon_on()
2513 ctx = damon_sysfs_build_ctx(kdamond->contexts->contexts_arr[0]); in damon_sysfs_turn_damon_on()
2521 kdamond->damon_ctx = ctx; in damon_sysfs_turn_damon_on()
2525 static int damon_sysfs_turn_damon_off(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_turn_damon_off() argument
2527 if (!kdamond->damon_ctx) in damon_sysfs_turn_damon_off()
2529 return damon_stop(&kdamond->damon_ctx, 1); in damon_sysfs_turn_damon_off()
2551 struct damon_sysfs_kdamond *kdamond) in damon_sysfs_handle_cmd() argument
2558 return damon_sysfs_turn_damon_on(kdamond); in damon_sysfs_handle_cmd()
2560 return damon_sysfs_turn_damon_off(kdamond); in damon_sysfs_handle_cmd()
2566 if (damon_sysfs_cmd_request.kdamond) in damon_sysfs_handle_cmd()
2568 if (!damon_sysfs_kdamond_running(kdamond)) in damon_sysfs_handle_cmd()
2571 damon_sysfs_cmd_request.kdamond = kdamond; in damon_sysfs_handle_cmd()
2582 if (!damon_sysfs_cmd_request.kdamond) { in damon_sysfs_handle_cmd()
2585 } else if (!damon_sysfs_kdamond_running(kdamond)) { in damon_sysfs_handle_cmd()
2588 damon_sysfs_cmd_request.kdamond = NULL; in damon_sysfs_handle_cmd()
2599 struct damon_sysfs_kdamond *kdamond = container_of(kobj, in state_store() local
2608 ret = damon_sysfs_handle_cmd(cmd, kdamond); in state_store()
2621 struct damon_sysfs_kdamond *kdamond = container_of(kobj, in pid_show() local
2628 ctx = kdamond->damon_ctx; in pid_show()
2633 if (ctx->kdamond) in pid_show()
2634 pid = ctx->kdamond->pid; in pid_show()
2643 struct damon_sysfs_kdamond *kdamond = container_of(kobj, in damon_sysfs_kdamond_release() local
2646 if (kdamond->damon_ctx) in damon_sysfs_kdamond_release()
2647 damon_destroy_ctx(kdamond->damon_ctx); in damon_sysfs_kdamond_release()
2648 kfree(kdamond); in damon_sysfs_kdamond_release()
2706 damon_sysfs_cmd_request.kdamond == kdamonds[i]) in damon_sysfs_kdamonds_busy()
2716 struct damon_sysfs_kdamond **kdamonds_arr, *kdamond; in damon_sysfs_kdamonds_add_dirs() local
2733 kdamond = damon_sysfs_kdamond_alloc(); in damon_sysfs_kdamonds_add_dirs()
2734 if (!kdamond) { in damon_sysfs_kdamonds_add_dirs()
2739 err = kobject_init_and_add(&kdamond->kobj, in damon_sysfs_kdamonds_add_dirs()
2745 err = damon_sysfs_kdamond_add_dirs(kdamond); in damon_sysfs_kdamonds_add_dirs()
2749 kdamonds_arr[i] = kdamond; in damon_sysfs_kdamonds_add_dirs()
2756 kobject_put(&kdamond->kobj); in damon_sysfs_kdamonds_add_dirs()