/linux/fs/btrfs/ |
H A D | subpage.h | diff fbca46eb46ecc4443137e58cf9802a888c9ca136 Thu Jan 13 06:22:09 CET 2022 Qu Wenruo <wqu@suse.com> btrfs: make nodesize >= PAGE_SIZE case to reuse the non-subpage routine
The reason why we only support 64K page size for subpage is, for 64K page size we can ensure no matter what the nodesize is, we can fit it into one page.
When other page size come, especially like 16K, the limitation is a bit limiting.
To remove such limitation, we allow nodesize >= PAGE_SIZE case to go the non-subpage routine. By this, we can allow 4K sectorsize on 16K page size.
Although this introduces another smaller limitation, the metadata can not cross page boundary, which is already met by most recent mkfs.
Another small improvement is, we can avoid the overhead for metadata if nodesize >= PAGE_SIZE. For 4K sector size and 64K page size/node size, or 4K sector size and 16K page size/node size, we don't need to allocate extra memory for the metadata pages.
Please note that, this patch will not yet enable other page size support yet.
Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
|
H A D | subpage.c | diff fbca46eb46ecc4443137e58cf9802a888c9ca136 Thu Jan 13 06:22:09 CET 2022 Qu Wenruo <wqu@suse.com> btrfs: make nodesize >= PAGE_SIZE case to reuse the non-subpage routine
The reason why we only support 64K page size for subpage is, for 64K page size we can ensure no matter what the nodesize is, we can fit it into one page.
When other page size come, especially like 16K, the limitation is a bit limiting.
To remove such limitation, we allow nodesize >= PAGE_SIZE case to go the non-subpage routine. By this, we can allow 4K sectorsize on 16K page size.
Although this introduces another smaller limitation, the metadata can not cross page boundary, which is already met by most recent mkfs.
Another small improvement is, we can avoid the overhead for metadata if nodesize >= PAGE_SIZE. For 4K sector size and 64K page size/node size, or 4K sector size and 16K page size/node size, we don't need to allocate extra memory for the metadata pages.
Please note that, this patch will not yet enable other page size support yet.
Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
|
H A D | extent_io.c | diff fbca46eb46ecc4443137e58cf9802a888c9ca136 Thu Jan 13 06:22:09 CET 2022 Qu Wenruo <wqu@suse.com> btrfs: make nodesize >= PAGE_SIZE case to reuse the non-subpage routine
The reason why we only support 64K page size for subpage is, for 64K page size we can ensure no matter what the nodesize is, we can fit it into one page.
When other page size come, especially like 16K, the limitation is a bit limiting.
To remove such limitation, we allow nodesize >= PAGE_SIZE case to go the non-subpage routine. By this, we can allow 4K sectorsize on 16K page size.
Although this introduces another smaller limitation, the metadata can not cross page boundary, which is already met by most recent mkfs.
Another small improvement is, we can avoid the overhead for metadata if nodesize >= PAGE_SIZE. For 4K sector size and 64K page size/node size, or 4K sector size and 16K page size/node size, we don't need to allocate extra memory for the metadata pages.
Please note that, this patch will not yet enable other page size support yet.
Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
|
H A D | disk-io.c | diff fbca46eb46ecc4443137e58cf9802a888c9ca136 Thu Jan 13 06:22:09 CET 2022 Qu Wenruo <wqu@suse.com> btrfs: make nodesize >= PAGE_SIZE case to reuse the non-subpage routine
The reason why we only support 64K page size for subpage is, for 64K page size we can ensure no matter what the nodesize is, we can fit it into one page.
When other page size come, especially like 16K, the limitation is a bit limiting.
To remove such limitation, we allow nodesize >= PAGE_SIZE case to go the non-subpage routine. By this, we can allow 4K sectorsize on 16K page size.
Although this introduces another smaller limitation, the metadata can not cross page boundary, which is already met by most recent mkfs.
Another small improvement is, we can avoid the overhead for metadata if nodesize >= PAGE_SIZE. For 4K sector size and 64K page size/node size, or 4K sector size and 16K page size/node size, we don't need to allocate extra memory for the metadata pages.
Please note that, this patch will not yet enable other page size support yet.
Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
|
H A D | inode.c | diff fbca46eb46ecc4443137e58cf9802a888c9ca136 Thu Jan 13 06:22:09 CET 2022 Qu Wenruo <wqu@suse.com> btrfs: make nodesize >= PAGE_SIZE case to reuse the non-subpage routine
The reason why we only support 64K page size for subpage is, for 64K page size we can ensure no matter what the nodesize is, we can fit it into one page.
When other page size come, especially like 16K, the limitation is a bit limiting.
To remove such limitation, we allow nodesize >= PAGE_SIZE case to go the non-subpage routine. By this, we can allow 4K sectorsize on 16K page size.
Although this introduces another smaller limitation, the metadata can not cross page boundary, which is already met by most recent mkfs.
Another small improvement is, we can avoid the overhead for metadata if nodesize >= PAGE_SIZE. For 4K sector size and 64K page size/node size, or 4K sector size and 16K page size/node size, we don't need to allocate extra memory for the metadata pages.
Please note that, this patch will not yet enable other page size support yet.
Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
|