lkml.org 
[lkml]   [2008]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/4] seq_file: don't call bitmap_scnprintf_len()
    On Sun, Oct 12, 2008 at 05:29:17PM +0800, Lai Jiangshan wrote:
    > "m->count + len < m->size" is true commonly, so bitmap_scnprintf()
    > is commonly called. this fix saves a call to bitmap_scnprintf_len().

    This saves a call if seq buffer is already full which is not a common
    situation, so you're optimising for rare situations and adding branch
    for common ones.

    > --- a/fs/seq_file.c
    > +++ b/fs/seq_file.c
    > @@ -452,17 +452,18 @@ int seq_dentry(struct seq_file *m, struct dentry *dentry, char *esc)
    >
    > int seq_bitmap(struct seq_file *m, unsigned long *bits, unsigned int nr_bits)
    > {
    > - size_t len = bitmap_scnprintf_len(nr_bits);
    > -
    > - if (m->count + len < m->size) {
    > - bitmap_scnprintf(m->buf + m->count, m->size - m->count,
    > - bits, nr_bits);
    > - m->count += len;
    > - return 0;
    > + if (m->count < m->size) {
    > + int len = bitmap_scnprintf(m->buf + m->count,
    > + m->size - m->count, bits, nr_bits);
    > + if (m->count + len < m->size) {
    > + m->count += len;
    > + return 0;
    > + }
    > }
    > m->count = m->size;
    > return -1;
    > }
    > +EXPORT_SYMBOL(seq_bitmap);

    Modular users, where are they?


    \
     
     \ /
      Last update: 2008-10-13 08:37    [W:2.644 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site