Commit cbc2a5fe authored by Liao Chen's avatar Liao Chen
Browse files

sched: migtate user interface from smart grid to sched bpf

hulk inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I918W0



--------------------------------

Migtating user interface from smart grid to sched bpf, which allows
users to set SCHED_GRID_QOS_TASK_LEVEL through:

	/proc/${pid}/task/${pid}/tag

interface. Although arbitrary integer value could be assigned to
<tag>, currnetly we clamp the value of SCHED_GRID_QOS_TASK_LEVEL
to 0-7, which maintains consistency.

Signed-off-by: default avatarLiao Chen <liaochen4@huawei.com>
parent 6f420dad
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -3784,6 +3784,20 @@ static ssize_t pid_tag_write(struct file *file, const char __user *buf,

	sched_settag(tsk, tag);

#ifdef CONFIG_QOS_SCHED_SMART_GRID
	if (smart_grid_enabled()) {
		tag = tag < SCHED_GRID_QOS_TASK_LEVEL_HIGHEST ?
			SCHED_GRID_QOS_TASK_LEVEL_HIGHEST : tag;
		tag = tag >= SCHED_GRID_QOS_TASK_LEVEL_MAX ?
			SCHED_GRID_QOS_TASK_LEVEL_DEFAULT : tag;

		if (tsk->grid_qos != NULL &&
		    tsk->grid_qos->stat.set_class_lvl != NULL)
			err = tsk->grid_qos->stat.set_class_lvl(&tsk->grid_qos->stat,
								(unsigned int)tag);
	}
#endif

out:
	put_task_struct(tsk);
	return err < 0 ? err : count;