sched: switch sched_features to seqfile
PATCH 1/1 sched: switch sched_features to seqfile
So handling of sched_features read is simplified.
Signed-off-by Li Zefan <[email protected]>
--- kernel/sched.c | 52 ++++++++++++++++------------------------------------ 1 files changed, 16 insertions(+), 36 deletions(-)
kernel/sched.c +16 -36
@@ -703,45 +703,18 @@ static __read_mostly char *sched_feat_names[] = {#undef SCHED_FEAT -static int sched_feat_open (struct inode *inode,struct file *filp) +static int sched_feat_show (struct seq_file *m,void *v) { - filp->private_data = inode->i_private; -return 0 ; -} - -static ssize_t -sched_feat_read (struct file *filp,char __user *ubuf, -size_t cnt,loff_t *ppos) -{ -char *buf; -int r =0 ; -int len =0 ;int i;for (i =0 ; sched_feat_names[i]; i++) { - len +=strlen (sched_feat_names[i]); - len +=4 ; +if (!(sysctl_sched_features & (1UL << i))) +seq_puts (m,"NO_" ); +seq_printf (m,"%s " , sched_feat_names[i]); } +seq_puts (m,"\n" ); - buf =kmalloc (len +2 ,GFP_KERNEL ); -if (!buf) -return -ENOMEM ; - -for (i =0 ; sched_feat_names[i]; i++) { -if (sysctl_sched_features & (1UL << i)) - r +=sprintf (buf + r,"%s " , sched_feat_names[i]); -else - r +=sprintf (buf + r,"NO_%s " , sched_feat_names[i]); - } - - r +=sprintf (buf + r,"\n" ); -WARN_ON (r >= len +2 ); - - r =simple_read_from_buffer (ubuf, cnt, ppos, buf, r); - -kfree (buf); - -return r; +return 0 ; } static ssize_t
@@ -786,10 +759,17 @@ sched_feat_write(struct file *filp, const char __user *ubuf,return cnt; } +static int sched_feat_open (struct inode *inode,struct file *filp) +{ +return single_open (filp, sched_feat_show,NULL ); +} +static struct file_operations sched_feat_fops = { - .open = sched_feat_open, - .read = sched_feat_read, - .write = sched_feat_write, + .open = sched_feat_open, + .write = sched_feat_write, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, };static __init int sched_init_debug (void )
Signature · 1 line
1.5.4.rc3
Quoted 6 lines · Li Zefan
So handling of
sched_featuresread is simplified.Signed-off-by Li Zefan <[email protected]>--- kernel/sched.c | 52 ++++++++++++++++------------------------------------ 1 files changed, 16 insertions(+), 36 deletions(-)
nice cleanup! Applied to tip/sched/core, thanks,
Ingo