Message ID | 20250304192041.4048741-1-daeho43@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [f2fs-dev] f2fs: subtract current_reserved_blocks from total | expand |
On 3/5/25 03:20, Daeho Jeong wrote: > From: Daeho Jeong <daehojeong@google.com> > > current_reserved_blocks is not allowed to utilize. For some zoned > storage devices, vendors will provide extra space which was used for > device level GC than specs and we will use this space for filesystem > level GC. This extra space should not be shown to users, otherwise, > users will see not standardized size number like 530GB, not 512GB. Hi Daeho, However, if there are other users e.g. oem or vendor want to use reserved_blocks and current_reserved_blocks sysfs interface to reserve space, then, total size will be less than 512GB? What do you think of adding a new variable to indicate reserved space for zoned storage case only? Thanks, > > Signed-off-by: Daeho Jeong <daehojeong@google.com> > --- > fs/f2fs/super.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c > index 19b67828ae32..c346dcc2518a 100644 > --- a/fs/f2fs/super.c > +++ b/fs/f2fs/super.c > @@ -1833,10 +1833,9 @@ static int f2fs_statfs(struct dentry *dentry, struct kstatfs *buf) > buf->f_type = F2FS_SUPER_MAGIC; > buf->f_bsize = sbi->blocksize; > > - buf->f_blocks = total_count - start_count; > - > spin_lock(&sbi->stat_lock); > > + buf->f_blocks = total_count - start_count - sbi->current_reserved_blocks; > user_block_count = sbi->user_block_count; > total_valid_node_count = valid_node_count(sbi); > avail_node_count = sbi->total_node_count - F2FS_RESERVED_NODE_NUM;
On 03/05, Chao Yu wrote: > On 3/5/25 03:20, Daeho Jeong wrote: > > From: Daeho Jeong <daehojeong@google.com> > > > > current_reserved_blocks is not allowed to utilize. For some zoned > > storage devices, vendors will provide extra space which was used for > > device level GC than specs and we will use this space for filesystem > > level GC. This extra space should not be shown to users, otherwise, > > users will see not standardized size number like 530GB, not 512GB. > > Hi Daeho, > > However, if there are other users e.g. oem or vendor want to use > reserved_blocks and current_reserved_blocks sysfs interface to > reserve space, then, total size will be less than 512GB? > > What do you think of adding a new variable to indicate reserved > space for zoned storage case only? Or, adding a sysfs entry like "carve_out" to determine this? > > Thanks, > > > > > Signed-off-by: Daeho Jeong <daehojeong@google.com> > > --- > > fs/f2fs/super.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c > > index 19b67828ae32..c346dcc2518a 100644 > > --- a/fs/f2fs/super.c > > +++ b/fs/f2fs/super.c > > @@ -1833,10 +1833,9 @@ static int f2fs_statfs(struct dentry *dentry, struct kstatfs *buf) > > buf->f_type = F2FS_SUPER_MAGIC; > > buf->f_bsize = sbi->blocksize; > > > > - buf->f_blocks = total_count - start_count; > > - > > spin_lock(&sbi->stat_lock); > > > > + buf->f_blocks = total_count - start_count - sbi->current_reserved_blocks; > > user_block_count = sbi->user_block_count; > > total_valid_node_count = valid_node_count(sbi); > > avail_node_count = sbi->total_node_count - F2FS_RESERVED_NODE_NUM; >
On Wed, Mar 5, 2025 at 6:35 AM Jaegeuk Kim <jaegeuk@kernel.org> wrote: > > On 03/05, Chao Yu wrote: > > On 3/5/25 03:20, Daeho Jeong wrote: > > > From: Daeho Jeong <daehojeong@google.com> > > > > > > current_reserved_blocks is not allowed to utilize. For some zoned > > > storage devices, vendors will provide extra space which was used for > > > device level GC than specs and we will use this space for filesystem > > > level GC. This extra space should not be shown to users, otherwise, > > > users will see not standardized size number like 530GB, not 512GB. > > > > Hi Daeho, > > > > However, if there are other users e.g. oem or vendor want to use > > reserved_blocks and current_reserved_blocks sysfs interface to > > reserve space, then, total size will be less than 512GB? > > > > What do you think of adding a new variable to indicate reserved > > space for zoned storage case only? > > Or, adding a sysfs entry like "carve_out" to determine this? Good points. Thanks, guys. > > > > > Thanks, > > > > > > > > Signed-off-by: Daeho Jeong <daehojeong@google.com> > > > --- > > > fs/f2fs/super.c | 3 +-- > > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > > > diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c > > > index 19b67828ae32..c346dcc2518a 100644 > > > --- a/fs/f2fs/super.c > > > +++ b/fs/f2fs/super.c > > > @@ -1833,10 +1833,9 @@ static int f2fs_statfs(struct dentry *dentry, struct kstatfs *buf) > > > buf->f_type = F2FS_SUPER_MAGIC; > > > buf->f_bsize = sbi->blocksize; > > > > > > - buf->f_blocks = total_count - start_count; > > > - > > > spin_lock(&sbi->stat_lock); > > > > > > + buf->f_blocks = total_count - start_count - sbi->current_reserved_blocks; > > > user_block_count = sbi->user_block_count; > > > total_valid_node_count = valid_node_count(sbi); > > > avail_node_count = sbi->total_node_count - F2FS_RESERVED_NODE_NUM; > >
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index 19b67828ae32..c346dcc2518a 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -1833,10 +1833,9 @@ static int f2fs_statfs(struct dentry *dentry, struct kstatfs *buf) buf->f_type = F2FS_SUPER_MAGIC; buf->f_bsize = sbi->blocksize; - buf->f_blocks = total_count - start_count; - spin_lock(&sbi->stat_lock); + buf->f_blocks = total_count - start_count - sbi->current_reserved_blocks; user_block_count = sbi->user_block_count; total_valid_node_count = valid_node_count(sbi); avail_node_count = sbi->total_node_count - F2FS_RESERVED_NODE_NUM;