Btrfs: use a slab for ordered extents allocation
The ordered extent allocation is in the fast path of the IO, so use a slab to improve the speed of the allocation. "Size of the struct is 280, so this will fall into the size-512 bucket, giving 8 objects per page, while own slab will pack 14 objects into a page. Another benefit I see is to check for leaked objects when the module is removed (and the cache destroy takes place)." -- David Sterba Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
This commit is contained in:
parent
b9a8cc5bef
commit
6352b91da1
3 changed files with 31 additions and 3 deletions
|
@ -1620,10 +1620,14 @@ static int __init init_btrfs_fs(void)
|
|||
if (err)
|
||||
goto free_extent_io;
|
||||
|
||||
err = btrfs_delayed_inode_init();
|
||||
err = ordered_data_init();
|
||||
if (err)
|
||||
goto free_extent_map;
|
||||
|
||||
err = btrfs_delayed_inode_init();
|
||||
if (err)
|
||||
goto free_ordered_data;
|
||||
|
||||
err = btrfs_interface_init();
|
||||
if (err)
|
||||
goto free_delayed_inode;
|
||||
|
@ -1641,6 +1645,8 @@ unregister_ioctl:
|
|||
btrfs_interface_exit();
|
||||
free_delayed_inode:
|
||||
btrfs_delayed_inode_exit();
|
||||
free_ordered_data:
|
||||
ordered_data_exit();
|
||||
free_extent_map:
|
||||
extent_map_exit();
|
||||
free_extent_io:
|
||||
|
@ -1657,6 +1663,7 @@ static void __exit exit_btrfs_fs(void)
|
|||
{
|
||||
btrfs_destroy_cachep();
|
||||
btrfs_delayed_inode_exit();
|
||||
ordered_data_exit();
|
||||
extent_map_exit();
|
||||
extent_io_exit();
|
||||
btrfs_interface_exit();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue