Re: [PATCH] Btrfs: scrub: batch rebuild for raid56

2018-03-09 Thread David Sterba
On Wed, Mar 07, 2018 at 05:22:08PM +0200, Nikolay Borisov wrote: > > > On 7.03.2018 16:43, David Sterba wrote: > > On Tue, Mar 06, 2018 at 11:22:21AM -0700, Liu Bo wrote: > >> On Tue, Mar 06, 2018 at 11:47:47AM +0100, David Sterba wrote: > >>> On Fri, Mar 02, 2018 at 04:10:37PM -0700, Liu Bo

Re: [PATCH] Btrfs: scrub: batch rebuild for raid56

2018-03-07 Thread Nikolay Borisov
On 7.03.2018 16:43, David Sterba wrote: > On Tue, Mar 06, 2018 at 11:22:21AM -0700, Liu Bo wrote: >> On Tue, Mar 06, 2018 at 11:47:47AM +0100, David Sterba wrote: >>> On Fri, Mar 02, 2018 at 04:10:37PM -0700, Liu Bo wrote: In case of raid56, writes and rebuilds always take

Re: [PATCH] Btrfs: scrub: batch rebuild for raid56

2018-03-07 Thread David Sterba
On Tue, Mar 06, 2018 at 11:22:21AM -0700, Liu Bo wrote: > On Tue, Mar 06, 2018 at 11:47:47AM +0100, David Sterba wrote: > > On Fri, Mar 02, 2018 at 04:10:37PM -0700, Liu Bo wrote: > > > In case of raid56, writes and rebuilds always take BTRFS_STRIPE_LEN(64K) > > > as unit, however, scrub_extent()

Re: [PATCH] Btrfs: scrub: batch rebuild for raid56

2018-03-06 Thread Liu Bo
On Tue, Mar 06, 2018 at 11:47:47AM +0100, David Sterba wrote: > On Fri, Mar 02, 2018 at 04:10:37PM -0700, Liu Bo wrote: > > In case of raid56, writes and rebuilds always take BTRFS_STRIPE_LEN(64K) > > as unit, however, scrub_extent() sets blocksize as unit, so rebuild > > process may be triggered

Re: [PATCH] Btrfs: scrub: batch rebuild for raid56

2018-03-06 Thread David Sterba
On Fri, Mar 02, 2018 at 04:10:37PM -0700, Liu Bo wrote: > In case of raid56, writes and rebuilds always take BTRFS_STRIPE_LEN(64K) > as unit, however, scrub_extent() sets blocksize as unit, so rebuild > process may be triggered on every block on a same stripe. > > A typical example would be that

[PATCH] Btrfs: scrub: batch rebuild for raid56

2018-03-02 Thread Liu Bo
In case of raid56, writes and rebuilds always take BTRFS_STRIPE_LEN(64K) as unit, however, scrub_extent() sets blocksize as unit, so rebuild process may be triggered on every block on a same stripe. A typical example would be that when we're replacing a disappeared disk, all reads on the disks