From: Josef Bacik <jbacik@fb.com>
To: Qu Wenruo <quwenruo@cn.fujitsu.com>, <linux-btrfs@vger.kernel.org>
Subject: Re: [PATCH v4 00/18] Replace btrfs_workers with kernel workqueue based btrfs_workqueue
Date: Thu, 19 Dec 2013 10:27:22 -0500 [thread overview]
Message-ID: <52B3105A.5000102@fb.com> (raw)
In-Reply-To: <1387272719-11889-1-git-send-email-quwenruo@cn.fujitsu.com>
I got a panic with btrfs/012 in the worker stuff. I'm bisecting it down
to figure out which patch introduced it but I'm afraid it may just be
one of the "replace blah with btrfs_workqueue" patches and not be super
helpful. You may want to run it in a loop or something and see if you
can trigger it in the meantime and I'll respond whenever my bisect
finishes. Thanks,
Josef
On 12/17/2013 04:31 AM, Qu Wenruo wrote:
> Add a new btrfs_workqueue_struct which use kernel workqueue to implement
> most of the original btrfs_workers, to replace btrfs_workers.
>
> With this patchset, redundant workqueue codes are replaced with kernel
> workqueue infrastructure, which not only reduces the code size but also the
> effort to maintain it.
>
> The result from sysbench shows minor improvement on the following server:
> CPU: two-way Xeon X5660
> RAM: 4G
> HDD: SAS HDD, 150G total, 100G partition for btrfs test
>
> Test result on default mount option:
> https://docs.google.com/spreadsheet/ccc?key=0AhpkL3ehzX3pdENjajJTWFg5d1BWbExnYWFpMTJxeUE&usp=sharing
>
> Test result on "-o compress" mount option:
> https://docs.google.com/spreadsheet/ccc?key=0AhpkL3ehzX3pdHdTTEJ6OW96SXJFaDR5enB1SzMzc0E&usp=sharing
>
> Changelog:
> v1->v2:
> - Fix some workqueue flags.
> v2->v3:
> - Add the thresholding mechanism to simulate the old behavior
> - Convert all the btrfs_workers to btrfs_workrqueue_struct.
> - Fix some potential deadlock when executed in IRQ handler.
> v3->v4:
> - Change the ordered workqueue implement to fix the performance drop in 32K
> multi thread random write.
> - Change the high priority workqueue implement to get an independent high
> workqueue without starving problem.
> - Simplify the btrfs_alloc_workqueue parameters.
> - Coding style cleanup.
> - Remove the redundant "_struct" suffix.
>
> Qu Wenruo (18):
> btrfs: Cleanup the unused struct async_sched.
> btrfs: Added btrfs_workqueue_struct implemented ordered execution
> based on kernel workqueue
> btrfs: Add high priority workqueue support for btrfs_workqueue_struct
> btrfs: Add threshold workqueue based on kernel workqueue
> btrfs: Replace fs_info->workers with btrfs_workqueue.
> btrfs: Replace fs_info->delalloc_workers with btrfs_workqueue
> btrfs: Replace fs_info->submit_workers with btrfs_workqueue.
> btrfs: Replace fs_info->flush_workers with btrfs_workqueue.
> btrfs: Replace fs_info->endio_* workqueue with btrfs_workqueue.
> btrfs: Replace fs_info->rmw_workers workqueue with btrfs_workqueue.
> btrfs: Replace fs_info->cache_workers workqueue with btrfs_workqueue.
> btrfs: Replace fs_info->readahead_workers workqueue with
> btrfs_workqueue.
> btrfs: Replace fs_info->fixup_workers workqueue with btrfs_workqueue.
> btrfs: Replace fs_info->delayed_workers workqueue with
> btrfs_workqueue.
> btrfs: Replace fs_info->qgroup_rescan_worker workqueue with
> btrfs_workqueue.
> btrfs: Replace fs_info->scrub_* workqueue with btrfs_workqueue.
> btrfs: Cleanup the old btrfs_worker.
> btrfs: Cleanup the "_struct" suffix in btrfs_workequeue
>
> fs/btrfs/async-thread.c | 821 ++++++++++++-----------------------------------
> fs/btrfs/async-thread.h | 117 ++-----
> fs/btrfs/ctree.h | 39 ++-
> fs/btrfs/delayed-inode.c | 6 +-
> fs/btrfs/disk-io.c | 212 +++++-------
> fs/btrfs/extent-tree.c | 4 +-
> fs/btrfs/inode.c | 38 +--
> fs/btrfs/ordered-data.c | 11 +-
> fs/btrfs/qgroup.c | 15 +-
> fs/btrfs/raid56.c | 21 +-
> fs/btrfs/reada.c | 4 +-
> fs/btrfs/scrub.c | 70 ++--
> fs/btrfs/super.c | 36 +--
> fs/btrfs/volumes.c | 16 +-
> 14 files changed, 430 insertions(+), 980 deletions(-)
>
next prev parent reply other threads:[~2013-12-19 15:27 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-17 9:31 [PATCH v4 00/18] Replace btrfs_workers with kernel workqueue based btrfs_workqueue Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 01/18] btrfs: Cleanup the unused struct async_sched Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 02/18] btrfs: Added btrfs_workqueue_struct implemented ordered execution based on kernel workqueue Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 03/18] btrfs: Add high priority workqueue support for btrfs_workqueue_struct Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 04/18] btrfs: Add threshold workqueue based on kernel workqueue Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 05/18] btrfs: Replace fs_info->workers with btrfs_workqueue Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 06/18] btrfs: Replace fs_info->delalloc_workers " Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 07/18] btrfs: Replace fs_info->submit_workers " Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 08/18] btrfs: Replace fs_info->flush_workers " Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 09/18] btrfs: Replace fs_info->endio_* workqueue " Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 10/18] btrfs: Replace fs_info->rmw_workers " Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 11/18] btrfs: Replace fs_info->cache_workers " Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 12/18] btrfs: Replace fs_info->readahead_workers " Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 13/18] btrfs: Replace fs_info->fixup_workers " Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 14/18] btrfs: Replace fs_info->delayed_workers " Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 15/18] btrfs: Replace fs_info->qgroup_rescan_worker " Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 16/18] btrfs: Replace fs_info->scrub_* " Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 17/18] btrfs: Cleanup the old btrfs_worker Qu Wenruo
2013-12-17 9:31 ` [PATCH v4 18/18] btrfs: Cleanup the "_struct" suffix in btrfs_workequeue Qu Wenruo
2013-12-19 15:27 ` Josef Bacik [this message]
2013-12-20 0:37 ` [PATCH v4 00/18] Replace btrfs_workers with kernel workqueue based btrfs_workqueue Qu Wenruo
2013-12-20 3:08 ` Qu Wenruo
2013-12-20 13:30 ` Josef Bacik
2013-12-23 2:35 ` Qu Wenruo
2014-01-08 6:25 ` Qu Wenruo
2014-01-08 18:51 ` David Sterba
2014-01-09 1:35 ` Qu Wenruo
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=52B3105A.5000102@fb.com \
--to=jbacik@fb.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=quwenruo@cn.fujitsu.com \
/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.