* [f2fs-dev] [PATCH] mkfs.f2fs: should give section-aligned reserved segments
@ 2024-02-24 1:14 Jaegeuk Kim
2024-02-24 2:00 ` [f2fs-dev] [PATCH v2] " Jaegeuk Kim
0 siblings, 1 reply; 3+ messages in thread
From: Jaegeuk Kim @ 2024-02-24 1:14 UTC (permalink / raw)
To: linux-f2fs-devel; +Cc: Jaegeuk Kim
The reserved segments should be aligned to the section boundary.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
---
include/f2fs_fs.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/f2fs_fs.h b/include/f2fs_fs.h
index 9056e02acd29..2e93503cada9 100644
--- a/include/f2fs_fs.h
+++ b/include/f2fs_fs.h
@@ -1771,7 +1771,8 @@ static inline double get_reserved(struct f2fs_super_block *sb, double ovp)
else
reserved = (100 / ovp + 1 + NR_CURSEG_TYPE) * segs_per_sec;
- return reserved;
+ /* Let's keep the section alignment */
+ return round_up(reserved, segs_per_sec);
}
static inline double get_best_overprovision(struct f2fs_super_block *sb)
--
2.44.0.rc0.258.g7320e95886-goog
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [f2fs-dev] [PATCH v2] mkfs.f2fs: should give section-aligned reserved segments
2024-02-24 1:14 [f2fs-dev] [PATCH] mkfs.f2fs: should give section-aligned reserved segments Jaegeuk Kim
@ 2024-02-24 2:00 ` Jaegeuk Kim
2024-03-08 16:44 ` Daeho Jeong
0 siblings, 1 reply; 3+ messages in thread
From: Jaegeuk Kim @ 2024-02-24 2:00 UTC (permalink / raw)
To: linux-f2fs-devel
The reserved segments should be aligned to the section boundary.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
---
v2:
- fix bug
include/f2fs_fs.h | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/include/f2fs_fs.h b/include/f2fs_fs.h
index 9056e02acd29..fc56396fa358 100644
--- a/include/f2fs_fs.h
+++ b/include/f2fs_fs.h
@@ -1760,25 +1760,27 @@ extern uint32_t f2fs_get_usable_segments(struct f2fs_super_block *sb);
#define ZONE_ALIGN(blks) SIZE_ALIGN(blks, c.blks_per_seg * \
c.segs_per_zone)
-static inline double get_reserved(struct f2fs_super_block *sb, double ovp)
+static inline uint32_t get_reserved(struct f2fs_super_block *sb, double ovp)
{
- double reserved;
uint32_t usable_main_segs = f2fs_get_usable_segments(sb);
uint32_t segs_per_sec = round_up(usable_main_segs, get_sb(section_count));
+ uint32_t reserved;
if (c.conf_reserved_sections)
reserved = c.conf_reserved_sections * segs_per_sec;
else
reserved = (100 / ovp + 1 + NR_CURSEG_TYPE) * segs_per_sec;
- return reserved;
+ /* Let's keep the section alignment */
+ return round_up(reserved, segs_per_sec) * segs_per_sec;
}
static inline double get_best_overprovision(struct f2fs_super_block *sb)
{
- double reserved, ovp, candidate, end, diff, space;
+ double ovp, candidate, end, diff, space;
double max_ovp = 0, max_space = 0;
uint32_t usable_main_segs = f2fs_get_usable_segments(sb);
+ uint32_t reserved;
if (get_sb(segment_count_main) < 256) {
candidate = 10;
@@ -1795,7 +1797,7 @@ static inline double get_best_overprovision(struct f2fs_super_block *sb)
ovp = (usable_main_segs - reserved) * candidate / 100;
if (ovp < 0)
continue;
- space = usable_main_segs - max(reserved, ovp) -
+ space = usable_main_segs - max((double)reserved, ovp) -
2 * get_sb(segs_per_sec);
if (max_space < space) {
max_space = space;
--
2.44.0.rc0.258.g7320e95886-goog
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [f2fs-dev] [PATCH v2] mkfs.f2fs: should give section-aligned reserved segments
2024-02-24 2:00 ` [f2fs-dev] [PATCH v2] " Jaegeuk Kim
@ 2024-03-08 16:44 ` Daeho Jeong
0 siblings, 0 replies; 3+ messages in thread
From: Daeho Jeong @ 2024-03-08 16:44 UTC (permalink / raw)
To: Jaegeuk Kim; +Cc: linux-f2fs-devel
Reviewed-by: Daeho Jeong <daehojeong@google.com>
On Fri, Feb 23, 2024 at 6:02 PM Jaegeuk Kim <jaegeuk@kernel.org> wrote:
>
> The reserved segments should be aligned to the section boundary.
>
> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> ---
>
> v2:
> - fix bug
>
> include/f2fs_fs.h | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/include/f2fs_fs.h b/include/f2fs_fs.h
> index 9056e02acd29..fc56396fa358 100644
> --- a/include/f2fs_fs.h
> +++ b/include/f2fs_fs.h
> @@ -1760,25 +1760,27 @@ extern uint32_t f2fs_get_usable_segments(struct f2fs_super_block *sb);
> #define ZONE_ALIGN(blks) SIZE_ALIGN(blks, c.blks_per_seg * \
> c.segs_per_zone)
>
> -static inline double get_reserved(struct f2fs_super_block *sb, double ovp)
> +static inline uint32_t get_reserved(struct f2fs_super_block *sb, double ovp)
> {
> - double reserved;
> uint32_t usable_main_segs = f2fs_get_usable_segments(sb);
> uint32_t segs_per_sec = round_up(usable_main_segs, get_sb(section_count));
> + uint32_t reserved;
>
> if (c.conf_reserved_sections)
> reserved = c.conf_reserved_sections * segs_per_sec;
> else
> reserved = (100 / ovp + 1 + NR_CURSEG_TYPE) * segs_per_sec;
>
> - return reserved;
> + /* Let's keep the section alignment */
> + return round_up(reserved, segs_per_sec) * segs_per_sec;
> }
>
> static inline double get_best_overprovision(struct f2fs_super_block *sb)
> {
> - double reserved, ovp, candidate, end, diff, space;
> + double ovp, candidate, end, diff, space;
> double max_ovp = 0, max_space = 0;
> uint32_t usable_main_segs = f2fs_get_usable_segments(sb);
> + uint32_t reserved;
>
> if (get_sb(segment_count_main) < 256) {
> candidate = 10;
> @@ -1795,7 +1797,7 @@ static inline double get_best_overprovision(struct f2fs_super_block *sb)
> ovp = (usable_main_segs - reserved) * candidate / 100;
> if (ovp < 0)
> continue;
> - space = usable_main_segs - max(reserved, ovp) -
> + space = usable_main_segs - max((double)reserved, ovp) -
> 2 * get_sb(segs_per_sec);
> if (max_space < space) {
> max_space = space;
> --
> 2.44.0.rc0.258.g7320e95886-goog
>
>
>
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-03-08 16:45 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-24 1:14 [f2fs-dev] [PATCH] mkfs.f2fs: should give section-aligned reserved segments Jaegeuk Kim
2024-02-24 2:00 ` [f2fs-dev] [PATCH v2] " Jaegeuk Kim
2024-03-08 16:44 ` Daeho Jeong
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.