All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhao Lei <zhaolei@cn.fujitsu.com>
To: "'Boaz Harrosh'" <boaz@plexistor.com>,
	"'Christoph Hellwig'" <hch@lst.de>
Cc: <linux-fsdevel@vger.kernel.org>, "'Jan Kara'" <jack@suse.cz>,
	"'Jens Axboe'" <axboe@fb.com>,
	"'LKML'" <linux-kernel@vger.kernel.org>
Subject: RE: Regression caused by using node_to_bdi()
Date: Mon, 13 Apr 2015 18:22:51 +0800	[thread overview]
Message-ID: <030a01d075d3$cc1ebc60$645c3520$@cn.fujitsu.com> (raw)
In-Reply-To: 

Hi, Boaz

> -----Original Message-----
> From: Zhao Lei [mailto:zhaolei@cn.fujitsu.com]
> Sent: Monday, April 13, 2015 3:00 PM
> To: 'Boaz Harrosh'; 'Christoph Hellwig'
> Cc: 'linux-fsdevel@vger.kernel.org'; 'Jan Kara'; 'Jens Axboe'; 'LKML'
> Subject: RE: Regression caused by using node_to_bdi()
> 
> Hi, Boaz
> 
> > -----Original Message-----
> > From: Boaz Harrosh [mailto:boaz@plexistor.com]
> > Sent: Sunday, April 12, 2015 10:39 PM
> > To: Boaz Harrosh; Zhao Lei; 'Christoph Hellwig'
> > Cc: linux-fsdevel@vger.kernel.org; 'Jan Kara'; 'Jens Axboe'; 'LKML'
> > Subject: Re: Regression caused by using node_to_bdi()
> >
> > On 04/12/2015 02:33 PM, Boaz Harrosh wrote:
> > > On 04/10/2015 02:25 PM, Zhao Lei wrote:
> > >> Hi, Christoph Hellwig
> > >>
> > <>
> > >>
> > >> Is there some way to speed up it(inline, or some access some
> > >> variant in struct directly, ...)?
> > >>
> > >
> > > Christoph hi
> > >
> > > Both node_to_bdi() and sb_is_blkdev_sb()  (and I_BDEV() &&
> > > blk_get_backing_dev_info()) Are an exported function calls.
> > >
> > > Can we not make blockdev_superblock->s_bdi == NULL, and then
> > > optimize-out the call to sb_is_blkdev_sb() to only that case.
> > > Something like:
> > >
> > > ---
> > >
> > > diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index
> > > 32a8bbd..e0375e1 100644
> > > --- a/fs/fs-writeback.c
> > > +++ b/fs/fs-writeback.c
> > > @@ -78,7 +78,7 @@ int writeback_in_progress(struct backing_dev_info
> > > *bdi)  }  EXPORT_SYMBOL(writeback_in_progress);
> > >
> > > -struct backing_dev_info *inode_to_bdi(struct inode *inode)
> > > +struct backing_dev_info *__inode_to_bdi(struct inode *inode)
> > >  {
> > >  	struct super_block *sb;
> > >
> > > @@ -92,7 +92,7 @@ struct backing_dev_info *inode_to_bdi(struct inode
> > > *inode)  #endif
> > >  	return sb->s_bdi;
> > >  }
> > > -EXPORT_SYMBOL_GPL(inode_to_bdi);
> > > +EXPORT_SYMBOL_GPL(__inode_to_bdi);
> > >
> > >  static inline struct inode *wb_inode(struct list_head *head)  {
> > > diff --git a/include/linux/backing-dev.h
> > > b/include/linux/backing-dev.h index aff923a..7d172f5 100644
> > > --- a/include/linux/backing-dev.h
> > > +++ b/include/linux/backing-dev.h
> > > @@ -107,7 +107,16 @@ struct backing_dev_info {  #endif  };
> > >
> > > -struct backing_dev_info *inode_to_bdi(struct inode *inode);
> > > +struct backing_dev_info *__inode_to_bdi(struct inode *inode);
> > > +
> > > +static inline
> > > +struct backing_dev_info *inode_to_bdi(struct inode *inode) {
> > > +	if (!inode || !inode->i_sb)
> > > +		return __inode_to_bdi(inode);
> > > +
> > > +	return inode->i_sb->s_bdi;
> > > +}
> > >
> >
> > This patch actually boots. Lei could you please test to see if it
> > fixes your slowness?
> >
> The good news is this patch passed compile and 10-time tests.
> The bad news is it have more performance down(strange)...
> 
> v3.19-rc1              : io_speed: valcnt=10 avg=214.688
> range=[211.460,216.190] diff=  2.24% stdev=1.417 cv=0.66%
> v4.0-rc1               : io_speed: valcnt=10 avg=204.917
> range=[203.370,205.890] diff=  1.24% stdev=0.663 cv=0.32%
> v4.0-rc1_00001_82ad06  : io_speed: valcnt=10 avg=189.337
> range=[186.280,192.060] diff=  3.10% stdev=2.305 cv=1.22% *<- this patch
> 
> I applied this patch on top of v4.0-rc1.
> 
A new bad news:
This patch make filesystem unstable.

My env entered to following command line in booting after
apply this patch to v4.0-rc1:

Welcome to emergency mode! After logging in, type "journalctl -xb: to view
System logs, ...
Give root password for maintenance
(or press Control-D to continue)

I confirmed this error message for more than 3 times.
(and confirmed no-problem without this patch)

In previous performance test(which get result in my last mail), I hadn't 
pay attention to that message, and just type Ctrl-D and begin test.

Thanks
Zhaolei

> > Thanks
> > Boaz
> >
> > >  int __must_check bdi_init(struct backing_dev_info *bdi);  void
> > > bdi_destroy(struct backing_dev_info *bdi);
> > >




  parent reply	other threads:[~2015-04-13 10:23 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-10 11:25 Regression caused by using node_to_bdi() Zhao Lei
2015-04-12 11:33 ` Boaz Harrosh
2015-04-12 14:39   ` Boaz Harrosh
2015-04-13  1:20     ` Zhao Lei
2015-04-13  7:00     ` Zhao Lei
2015-04-13 10:22     ` Zhao Lei [this message]
2015-04-13 12:31       ` Boaz Harrosh
2015-04-14 12:14         ` Zhao Lei
2015-04-13 12:21   ` Jan Kara
2015-04-13 12:44     ` Boaz Harrosh
2015-04-13 17:32 ` 'Christoph Hellwig'
2015-04-14 12:27   ` Zhao Lei
     [not found] <003f01d057c6$eb48c3e0$c1da4ba0$@cn.fujitsu.com>
     [not found] ` <20150308102916.GD3743@quack.suse.cz>
     [not found]   ` <20150308153423.GA24154@lst.de>
2015-04-01  9:56     ` Zhao Lei
  -- strict thread matches above, loose matches on Subject: below --
2015-03-06  4:37 Zhao Lei

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='030a01d075d3$cc1ebc60$645c3520$@cn.fujitsu.com' \
    --to=zhaolei@cn.fujitsu.com \
    --cc=axboe@fb.com \
    --cc=boaz@plexistor.com \
    --cc=hch@lst.de \
    --cc=jack@suse.cz \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.