From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com ([209.132.183.28]:47785 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932271AbcASR7P (ORCPT ); Tue, 19 Jan 2016 12:59:15 -0500 From: Brian Foster To: linux-fsdevel@vger.kernel.org Cc: dchinner@redhat.com, jbacik@fb.com, jack@suse.cz Subject: [PATCH v6 0/2] improve sync efficiency with sb inode wb list Date: Tue, 19 Jan 2016 12:59:11 -0500 Message-Id: <1453226353-61481-1-git-send-email-bfoster@redhat.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Hi all, This is version 6 of the sync efficiency fix. Changes from v5 are noted below. The primary changes are to use rcu locking in wait_sb_inodes() rather than the s_inode_list_lock hack and to clean up the i_wb_list maintenance a bit, based on Jan Kara's feedback to v5. Note that I folded the rcu locking change into the original rather than as a separate patch since it seemed like the more correct approach and most of my testing since v5 is based on that code. This survives some xfstests testing on XFS and ext4 as well as some elongated (several day) fsstress testing on XFS without any explosions. Thoughts, reviews, flames appreciated. Brian v6: - Use rcu locking instead of s_inode_list_lock spinlock in wait_sb_inodes(). - Refactor wait_sb_inodes() to keep inode on wb list. - Drop remaining, unnecessary lazy list removal bits and relocate inode list check to clear_inode(). - Fix up some comments, etc. v5: http://marc.info/?l=linux-fsdevel&m=145262374402798&w=2 - Converted from per-bdi list to per-sb list. Also marked as RFC and dropped testing/review tags. - Updated to use new irq-safe lock for wb list. - Dropped lazy list removal. Inodes are removed when the mapping is cleared of the writeback tag. - Tweaked wait_sb_inodes() to remove deferred iput(), other cleanups. - Added wb list tracepoint patch. v4: http://marc.info/?l=linux-fsdevel&m=143511628828000&w=2 Brian Foster (1): wb: inode writeback list tracking tracepoints Dave Chinner (1): sb: add a new writeback list for sync fs/fs-writeback.c | 111 ++++++++++++++++++++++++++++++--------- fs/inode.c | 2 + fs/super.c | 2 + include/linux/fs.h | 4 ++ include/linux/writeback.h | 3 ++ include/trace/events/writeback.h | 22 ++++++-- mm/page-writeback.c | 18 +++++++ 7 files changed, 133 insertions(+), 29 deletions(-) -- 2.4.3