Re: [PATCH 5/5] Btrfs: wake up inode cache waiters sooner to reduce waiting time

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 4.07.19 г. 18:25 ч., fdmanana@xxxxxxxxxx wrote:
> From: Filipe Manana <fdmanana@xxxxxxxx>
> 
> If we need to start an inode caching thread, because none currently exists
> on disk, we can wake up all waiters as soon as we mark the range starting
> at root's highest objectid + 1 and ending at BTRFS_LAST_FREE_OBJECTID as
> free, so that they don't need to wait for the caching thread to start and
> do some progress. We follow the same approach within the caching thread,
> since as soon as it finds a free range and marks it as free space in the
> cache, it wakes up all waiters. So improve this by adding such a wakeup
> call after marking that initial range as free space.
> 
> Fixes: a47d6b70e28040 ("Btrfs: setup free ino caching in a more asynchronous way")
> Signed-off-by: Filipe Manana <fdmanana@xxxxxxxx>

Reviewed-by: Nikolay Borisov <nborisov@xxxxxxxx>


> ---
>  fs/btrfs/inode-map.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/fs/btrfs/inode-map.c b/fs/btrfs/inode-map.c
> index 4820e05ea6bd..cb107d168019 100644
> --- a/fs/btrfs/inode-map.c
> +++ b/fs/btrfs/inode-map.c
> @@ -175,6 +175,7 @@ static void start_caching(struct btrfs_root *root)
>  	if (!ret && objectid <= BTRFS_LAST_FREE_OBJECTID) {
>  		__btrfs_add_free_space(fs_info, ctl, objectid,
>  				       BTRFS_LAST_FREE_OBJECTID - objectid + 1);
> +		wake_up(&root->ino_cache_wait);
>  	}
>  
>  	tsk = kthread_run(caching_kthread, root, "btrfs-ino-cache-%llu",
> 



[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux