public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Qu Wenruo <quwenruo@cn.fujitsu.com>
To: Wang Shilong <wangshilong1991@gmail.com>, Chris Mason <clm@fb.com>
Cc: <adam900710@gmail.com>, linux-btrfs <linux-btrfs@vger.kernel.org>
Subject: Re: [GIT PULL] Qgroup rework with other Fujitsu fix.
Date: Wed, 24 Jun 2015 14:54:46 +0800	[thread overview]
Message-ID: <558A5436.6080907@cn.fujitsu.com> (raw)
In-Reply-To: <557681C6.7050608@gmail.com>



Wang Shilong wrote on 2015/06/09 14:03 +0800:
> Hi Qu,
>
>> Hi Chris,
>>
>> Please pull the 19 patchset from my branch for_chris_4.2.
>> We have tested it in a week.
>>
>> Although it is originally based on 4.1-rc5, not the integration branch.
>> Quick tests shows no new bugs, although we will rerun the full test,
>> I'll send the patchset first for your reviewing:
>>
>> https://github.com/adam900710/linux.git for_chris_4.2
>>
>> This contains the following patches.
>>
>> 1. Qgroup rework (first 18 commits)
>> These commits rework the qgroup framework.
>> Now, quota won't need to do per-delayed-ref accounting.
>> But only need to record dirty delayed-ref, and account quota at transaction time.
>
> Can you share perfomaces results with/without patches with quota enabled.
> Especially, if there are thounds of snapshots, how much performaces down or up
> with these patches applied.
Our test is done but the test result doesn't show much improvement nor 
regression on our multi subvolume test.

Since there is not such indicated performance test for multi snapshot 
case, we use the following script body to generate such environment.
---
btrfs subvolume create $MNT/orig_subv
for i in `seq 1 50`; do
	$FSSTRESS -s $i -n 500 -w -d $MNT/orig_subv
	btrfs subvolume snapshot $MNT/orig_subv $MNT/snap_$i
done
---

And then do sysbench in snap_25.

The result can be get from the following URL:
https://drive.google.com/file/d/0BxpkL3ehzX3pVElpTjAtTE52Rm8/view?usp=sharing

The above result maybe not accurate since we don't have enough time to 
run them several times, and we reuse the data from our internal 4.0-rc1 
result.
So the changes from 4.0-rc1 to the integration branch may also have some 
impact.
But should gives a overall view on performance change, which is on par 
with previous kernel.

Although I'm pretty sure for muliti snapshot case number of calling 
btrfs_find_all_roots() can be greatly reduced with the patchset, but it 
seems that's not the hotspot....

So this patchset is better considered as a bug fix. :(

Thanks,
Qu
>
> Regards,
> Wang Shilong
>
>>
>> The good thing is, at transaction time, we have no other interruption or
>> concurrency, account can be quite accurate and only need to account once
>> for every dirty extent.(especially faster for shared extents)
>>
>> And clearer codes and logic. Codes changes from 1K to 0.5K, even a lot
>> of comments are added.
>>
>> With the patchset, btrfs can pass all qgroup test in fstests.
>> No longer minus number now.
>>
>> The only problem left is, we need a new mechanism to account subvolume deletion. But this is the long-existing problem, I'd prefer to address
>> it in next merge windows if we have a pretty method to solve it.
>>
>> Or maybe a small patch to mark qgroup inconsistent when delete subvolume with level higher than 0.
>>
>> 2. write-rm-loop fixes from Zhao Lei.
>> Other patches from Zhao Lei and Forrest Liu have already been merged
>> into mainline, but this is the one still unmerged.
>>
>> This patch fixes the last super rare problem we found in write-rm-loop
>> case.
>> And the patch will only modify the minor routine, so it won't affect the normal routine.
>>
>> Thanks,
>> Qu
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2015-06-24  6:54 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-08  3:06 [GIT PULL] Qgroup rework with other Fujitsu fix Qu Wenruo
2015-06-09  6:03 ` Wang Shilong
2015-06-09  7:09   ` Qu Wenruo
2015-06-24  6:54   ` Qu Wenruo [this message]
2015-06-09 14:10 ` Josef Bacik
     [not found]   ` <CAFy8SQW58c7DUUod7FaiNtY2MaoY6ZYt3jacG-RQHJZx+4so7A@mail.gmail.com>
2015-06-09 14:54     ` Josef Bacik
2015-06-10  0:33       ` Qu Wenruo
2015-06-10  0:33       ` Qu Wenruo
2015-06-10 20:45 ` Chris Mason

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=558A5436.6080907@cn.fujitsu.com \
    --to=quwenruo@cn.fujitsu.com \
    --cc=adam900710@gmail.com \
    --cc=clm@fb.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=wangshilong1991@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox