In Userspace kann ich nur echo noop > /sys/block/sda/queue/scheduler
.Wie sysfs im Kernelmodul zu verwenden?
Wie macht man dasselbe in einem Kernelmodul?
Ich erwarte, dass so etwas wie dieser (Pseudo-Code):
struct dentry* e = sysfs_get_root();
vfs_path_lookup(e, ????, "block/sda/queue/scheduler", ???);
????;
struct something* q = ????;
????->store(q, "noop", 1);
/* some cleanup */
Wie es richtig zu implementieren?
Mein Kernel-Modul registriert nur SysRQ Handler und sollte die io-Scheduler konfigurieren, wenn das SysRQ ausgelöst wird (User-Space-Programme können zu dieser Zeit wegen des schlechten io-Scheduler gehängt werden)
NR. Was auch immer Sie tun, dies ist mit ziemlicher Sicherheit der falsche Weg. – ephemient