Dans l'espace utilisateur je peux juste echo noop > /sys/block/sda/queue/scheduler
. Comment faire la même chose à l'intérieur d'un module noyau?Comment utiliser sysfs dans le module du noyau?
Je me attends quelque chose comme ça (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 */
Comment mettre en œuvre correctement?
Mon module noyau enregistre tout gestionnaire sysrq et doit configurer le planificateur io lorsque ce sysrq est déclenché (programmes de l'espace utilisateur peuvent être suspendus à ce moment-là à cause du mauvais io-scheduler)
NO. Quoi que vous fassiez, c'est certainement la mauvaise façon de le faire. – ephemient