Lines Matching refs:kdamond

2019 static int damon_sysfs_kdamond_add_dirs(struct damon_sysfs_kdamond *kdamond)  in damon_sysfs_kdamond_add_dirs()  argument
2029 &damon_sysfs_contexts_ktype, &kdamond->kobj, in damon_sysfs_kdamond_add_dirs()
2035 kdamond->contexts = contexts; in damon_sysfs_kdamond_add_dirs()
2040 static void damon_sysfs_kdamond_rm_dirs(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_kdamond_rm_dirs() argument
2042 damon_sysfs_contexts_rm_dirs(kdamond->contexts); in damon_sysfs_kdamond_rm_dirs()
2043 kobject_put(&kdamond->contexts->kobj); in damon_sysfs_kdamond_rm_dirs()
2051 running = ctx->kdamond != NULL; in damon_sysfs_ctx_running()
2098 struct damon_sysfs_kdamond *kdamond; member
2107 struct damon_sysfs_kdamond *kdamond = container_of(kobj, in state_show() local
2109 struct damon_ctx *ctx = kdamond->damon_ctx; in state_show()
2332 static int damon_sysfs_upd_schemes_stats(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_upd_schemes_stats() argument
2334 struct damon_ctx *ctx = kdamond->damon_ctx; in damon_sysfs_upd_schemes_stats()
2341 sysfs_schemes = kdamond->contexts->contexts_arr[0]->schemes; in damon_sysfs_upd_schemes_stats()
2356 struct damon_sysfs_kdamond *kdamond) in damon_sysfs_kdamond_running() argument
2358 return kdamond->damon_ctx && in damon_sysfs_kdamond_running()
2359 damon_sysfs_ctx_running(kdamond->damon_ctx); in damon_sysfs_kdamond_running()
2368 static int damon_sysfs_commit_input(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_commit_input() argument
2370 struct damon_ctx *ctx = kdamond->damon_ctx; in damon_sysfs_commit_input()
2374 if (!damon_sysfs_kdamond_running(kdamond)) in damon_sysfs_commit_input()
2377 if (kdamond->contexts->nr != 1) in damon_sysfs_commit_input()
2380 sys_ctx = kdamond->contexts->contexts_arr[0]; in damon_sysfs_commit_input()
2406 struct damon_sysfs_kdamond *kdamond; in damon_sysfs_cmd_request_callback() local
2412 kdamond = damon_sysfs_cmd_request.kdamond; in damon_sysfs_cmd_request_callback()
2413 if (!kdamond || kdamond->damon_ctx != c) in damon_sysfs_cmd_request_callback()
2417 err = damon_sysfs_upd_schemes_stats(kdamond); in damon_sysfs_cmd_request_callback()
2420 err = damon_sysfs_commit_input(kdamond); in damon_sysfs_cmd_request_callback()
2426 damon_sysfs_cmd_request.kdamond = NULL; in damon_sysfs_cmd_request_callback()
2464 static int damon_sysfs_turn_damon_on(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_turn_damon_on() argument
2469 if (kdamond->damon_ctx && in damon_sysfs_turn_damon_on()
2470 damon_sysfs_ctx_running(kdamond->damon_ctx)) in damon_sysfs_turn_damon_on()
2472 if (damon_sysfs_cmd_request.kdamond == kdamond) in damon_sysfs_turn_damon_on()
2475 if (kdamond->contexts->nr != 1) in damon_sysfs_turn_damon_on()
2478 if (kdamond->damon_ctx) in damon_sysfs_turn_damon_on()
2479 damon_destroy_ctx(kdamond->damon_ctx); in damon_sysfs_turn_damon_on()
2480 kdamond->damon_ctx = NULL; in damon_sysfs_turn_damon_on()
2482 ctx = damon_sysfs_build_ctx(kdamond->contexts->contexts_arr[0]); in damon_sysfs_turn_damon_on()
2490 kdamond->damon_ctx = ctx; in damon_sysfs_turn_damon_on()
2494 static int damon_sysfs_turn_damon_off(struct damon_sysfs_kdamond *kdamond) in damon_sysfs_turn_damon_off() argument
2496 if (!kdamond->damon_ctx) in damon_sysfs_turn_damon_off()
2498 return damon_stop(&kdamond->damon_ctx, 1); in damon_sysfs_turn_damon_off()
2520 struct damon_sysfs_kdamond *kdamond) in damon_sysfs_handle_cmd() argument
2527 return damon_sysfs_turn_damon_on(kdamond); in damon_sysfs_handle_cmd()
2529 return damon_sysfs_turn_damon_off(kdamond); in damon_sysfs_handle_cmd()
2535 if (damon_sysfs_cmd_request.kdamond) in damon_sysfs_handle_cmd()
2537 if (!damon_sysfs_kdamond_running(kdamond)) in damon_sysfs_handle_cmd()
2540 damon_sysfs_cmd_request.kdamond = kdamond; in damon_sysfs_handle_cmd()
2551 if (!damon_sysfs_cmd_request.kdamond) { in damon_sysfs_handle_cmd()
2554 } else if (!damon_sysfs_kdamond_running(kdamond)) { in damon_sysfs_handle_cmd()
2557 damon_sysfs_cmd_request.kdamond = NULL; in damon_sysfs_handle_cmd()
2568 struct damon_sysfs_kdamond *kdamond = container_of(kobj, in state_store() local
2577 ret = damon_sysfs_handle_cmd(cmd, kdamond); in state_store()
2590 struct damon_sysfs_kdamond *kdamond = container_of(kobj, in pid_show() local
2597 ctx = kdamond->damon_ctx; in pid_show()
2603 if (!ctx->kdamond) in pid_show()
2606 pid = ctx->kdamond->pid; in pid_show()
2615 struct damon_sysfs_kdamond *kdamond = container_of(kobj, in damon_sysfs_kdamond_release() local
2618 if (kdamond->damon_ctx) in damon_sysfs_kdamond_release()
2619 damon_destroy_ctx(kdamond->damon_ctx); in damon_sysfs_kdamond_release()
2620 kfree(kdamond); in damon_sysfs_kdamond_release()
2683 if (ctx->kdamond) in damon_sysfs_nr_running_ctxs()
2693 struct damon_sysfs_kdamond **kdamonds_arr, *kdamond; in damon_sysfs_kdamonds_add_dirs() local
2700 if (damon_sysfs_cmd_request.kdamond == in damon_sysfs_kdamonds_add_dirs()
2716 kdamond = damon_sysfs_kdamond_alloc(); in damon_sysfs_kdamonds_add_dirs()
2717 if (!kdamond) { in damon_sysfs_kdamonds_add_dirs()
2722 err = kobject_init_and_add(&kdamond->kobj, in damon_sysfs_kdamonds_add_dirs()
2728 err = damon_sysfs_kdamond_add_dirs(kdamond); in damon_sysfs_kdamonds_add_dirs()
2732 kdamonds_arr[i] = kdamond; in damon_sysfs_kdamonds_add_dirs()
2739 kobject_put(&kdamond->kobj); in damon_sysfs_kdamonds_add_dirs()