ユーザー空間では、echo noop > /sys/block/sda/queue/scheduler
.
カーネルモジュール内で同じことを行うには?
私は次のようなものを期待しています(疑似コード):
struct dentry* e = sysfs_get_root();
vfs_path_lookup(e, ????, "block/sda/queue/scheduler", ???);
????;
struct something* q = ????;
????->store(q, "noop", 1);
/* some cleanup */
それを適切に実装する方法は?
私のカーネル モジュールは SysRQ ハンドラを登録するだけで、その SysRQ がトリガーされたときに io スケジューラを設定する必要があります (不適切な io スケジューラが原因で、その時点でユーザー空間プログラムがハングする可能性があります)。