linux-f2fs-devel.lists.sourceforge.net archive mirror
 help / color / mirror / Atom feed
From: Jaegeuk Kim <jaegeuk@kernel.org>
To: Chao Yu <chao2.yu@samsung.com>
Cc: 'Biao He' <hebiao6@huawei.com>, linux-f2fs-devel@lists.sourceforge.net
Subject: Re: [PATCH] f2fs: avoid hungtask problem caused by losing wake_up
Date: Thu, 25 Feb 2016 11:03:10 -0800	[thread overview]
Message-ID: <20160225190310.GB38418@jaegeuk.gateway> (raw)
In-Reply-To: <013101d16fb0$ceb54b10$6c1fe130$@samsung.com>

Hi all,

On Thu, Feb 25, 2016 at 05:41:26PM +0800, Chao Yu wrote:
> Hi Yunlei,
> 
> > -----Original Message-----
> > From: He YunLei [mailto:heyunlei@huawei.com]
> > Sent: Thursday, February 25, 2016 3:36 PM
> > To: Chao Yu; jaegeuk@kernel.org; linux-f2fs-devel@lists.sourceforge.net
> > Cc: bintian.wang@huawei.com; 'Biao He'
> > Subject: Re: [f2fs-dev] [PATCH] f2fs: avoid hungtask problem caused by losing wake_up
> > 
> > On 2016/2/24 11:46, Chao Yu wrote:
> > >>> > >
> > >>> > >But I doubt more that the reason we are stuck is there are remained pages
> > >>> > >cached in bio buffer without being submitted. To make sure, maybe in
> > >>> > >wait_on_all_pages_writeback we could add print info to see whether
> > >>> > >sbi->write_io[].bio is valid or not.
> > >>> > >
> > >> >We use tool dump f2fs_sb_info information and find that:
> > >> >
> > >> >	write_io[DATA].bio = 0;
> > >> >	write_io[NODE].bio = 0;
> > >> >	write_io[META].bio = 0;
> > >> >
> > >> >	nr_pages[F2FS_WRITEBACK] = 0;
> > >> >	nr_pages[F2FS_DIRTY_DENTS] = 0;
> > >> >	nr_pages[F2FS_DIRTY_NODES] = 13;
> > > Weird, dirty nodes count should be 0.
> > >
> > > Thanks
> > >
> > Hi Chao,
> > 
> > In our code,
> > 
> > 1524 static int f2fs_write_end(struct file *file,
> > 1525                         struct address_space *mapping,
> > 1526                         loff_t pos, unsigned len, unsigned copied,
> > 1527                         struct page *page, void *fsdata)
> > 1528 {
> > 1529         struct inode *inode = page->mapping->host;
> > 1530
> > 1531         trace_f2fs_write_end(inode, pos, len, copied);
> > 1532
> > 1533         set_page_dirty(page);
> > 1534
> > 1535         if (pos + copied > i_size_read(inode)) {
> > 1536                 i_size_write(inode, pos + copied);
> > 1537                 mark_inode_dirty(inode);
> > 1538                 update_inode_page(inode);
> > 1539         }
> > 1540
> > 1541         f2fs_put_page(page, 1);
> > 1542         return copied;
> > 1543 }
> > 
> > Here update_inode_page(inode) has been removed by Kim, maybe here could
> > result dirty node page is not zero.
> 
> As your hint, I found an issue in f2fs_write_inode which may be related to
> our problem. I wrote a patch for fixing.

I just remember out that this has no problem, since we only need to disallow
writing node pages during checkpoint.

IOW, write_inode or any other functions can update node pages during checkpoint,
and then f2fs will flush them after checkpoint.

Thanks,

> 
> Thanks,
> 
> > 
> > Thanks,
> > 
> > >> >	nr_pages[F2FS_DIRTY_META] = 0;
> > >> >	nr_pages[F2FS_INMEM_PAGES] = 0;
> > >> >
> > >> >So we believe that the block device is ok!
> > >> >
> > >> >Thanks,
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

  reply	other threads:[~2016-02-25 19:03 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-23  4:07 [PATCH] f2fs: avoid hungtask problem caused by losing wake_up Yunlei He
2016-02-23  5:44 ` Chao Yu
2016-02-23  7:02   ` He YunLei
2016-02-23  9:15     ` Chao Yu
2016-02-23 11:36       ` He YunLei
2016-02-24  3:46         ` Chao Yu
2016-02-24  7:32           ` He YunLei
2016-02-24  8:05             ` Chao Yu
2016-02-24  9:45               ` hebiao (G)
2016-02-25  9:32                 ` Chao Yu
2016-02-25  7:36           ` He YunLei
2016-02-25  9:41             ` Chao Yu
2016-02-25 19:03               ` Jaegeuk Kim [this message]
2016-02-26  1:15                 ` Chao Yu
2016-02-23  9:32     ` Shawn Lin
2016-02-23 11:45       ` He YunLei

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=20160225190310.GB38418@jaegeuk.gateway \
    --to=jaegeuk@kernel.org \
    --cc=chao2.yu@samsung.com \
    --cc=hebiao6@huawei.com \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).