* [PATCH v3 0/2] statx.2: Add stx_atomic_write_unit_max_opt
@ 2025-06-19 15:44 John Garry
2025-06-19 15:44 ` [PATCH v3 1/2] statx.2: properly align stx_dio_read_offset_align John Garry
2025-06-19 15:44 ` [PATCH v3 2/2] statx.2: Add stx_atomic_write_unit_max_opt John Garry
0 siblings, 2 replies; 5+ messages in thread
From: John Garry @ 2025-06-19 15:44 UTC (permalink / raw)
To: alx; +Cc: linux-man, linux-fsdevel, hch, djwong, linux-xfs, John Garry
This adds the man page update for stx_atomic_write_unit_max_opt.
Differences to v2:
- properly align stx_dio_read_offset_align
- update formatting according to Alex's recommendations
John Garry (2):
statx.2: properly align stx_dio_read_offset_align
statx.2: Add stx_atomic_write_unit_max_opt
man/man2/statx.2 | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
--
2.31.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3 1/2] statx.2: properly align stx_dio_read_offset_align
2025-06-19 15:44 [PATCH v3 0/2] statx.2: Add stx_atomic_write_unit_max_opt John Garry
@ 2025-06-19 15:44 ` John Garry
2025-06-23 0:55 ` Alejandro Colomar
2025-06-19 15:44 ` [PATCH v3 2/2] statx.2: Add stx_atomic_write_unit_max_opt John Garry
1 sibling, 1 reply; 5+ messages in thread
From: John Garry @ 2025-06-19 15:44 UTC (permalink / raw)
To: alx; +Cc: linux-man, linux-fsdevel, hch, djwong, linux-xfs, John Garry
Align this member in struct statx with the members above it.
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
man/man2/statx.2 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/man/man2/statx.2 b/man/man2/statx.2
index ef7dbbcf9..273d80711 100644
--- a/man/man2/statx.2
+++ b/man/man2/statx.2
@@ -73,7 +73,7 @@ struct statx {
__u32 stx_atomic_write_segments_max;
\&
/* File offset alignment for direct I/O reads */
- __u32 stx_dio_read_offset_align;
+ __u32 stx_dio_read_offset_align;
};
.EE
.in
--
2.31.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 2/2] statx.2: Add stx_atomic_write_unit_max_opt
2025-06-19 15:44 [PATCH v3 0/2] statx.2: Add stx_atomic_write_unit_max_opt John Garry
2025-06-19 15:44 ` [PATCH v3 1/2] statx.2: properly align stx_dio_read_offset_align John Garry
@ 2025-06-19 15:44 ` John Garry
2025-06-23 0:59 ` Alejandro Colomar
1 sibling, 1 reply; 5+ messages in thread
From: John Garry @ 2025-06-19 15:44 UTC (permalink / raw)
To: alx; +Cc: linux-man, linux-fsdevel, hch, djwong, linux-xfs, John Garry
XFS supports atomic writes - or untorn writes - based on two different
methods:
- HW offload in the disk
- FS method based on out-of-place writes
The value reported in stx_atomic_write_unit_max will be the max size of the
FS-based method.
The max atomic write unit size of the FS-based atomic writes will
typically be much larger than what is capable from the HW offload. However,
FS-based atomic writes will also be typically much slower.
Advertise this HW offload size limit to the user in a new statx member,
stx_atomic_write_unit_max_opt.
We want STATX_WRITE_ATOMIC to get this new member in addition to the
already-existing members, so mention that a value of 0 in
stx_atomic_write_unit_max_opt means that stx_atomic_write_unit_max holds
this optimised limit.
Linux will zero unused statx members, so stx_atomic_write_unit_max_opt
will always hold 0 for older kernel versions which do not support
this FS-based atomic write method (for XFS).
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
man/man2/statx.2 | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/man/man2/statx.2 b/man/man2/statx.2
index 273d80711..07ac60b3c 100644
--- a/man/man2/statx.2
+++ b/man/man2/statx.2
@@ -74,6 +74,9 @@ struct statx {
\&
/* File offset alignment for direct I/O reads */
__u32 stx_dio_read_offset_align;
+\&
+ /* Direct I/O atomic write max opt limit */
+ __u32 stx_atomic_write_unit_max_opt;
};
.EE
.in
@@ -266,7 +269,8 @@ STATX_SUBVOL Want stx_subvol
(since Linux 6.10; support varies by filesystem)
STATX_WRITE_ATOMIC Want stx_atomic_write_unit_min,
stx_atomic_write_unit_max,
- and stx_atomic_write_segments_max.
+ stx_atomic_write_segments_max,
+ and stx_atomic_write_unit_max_opt.
(since Linux 6.11; support varies by filesystem)
STATX_DIO_READ_ALIGN Want stx_dio_read_offset_align.
(since Linux 6.14; support varies by filesystem)
@@ -514,6 +518,21 @@ is supported on block devices since Linux 6.11.
The support on regular files varies by filesystem;
it is supported by xfs and ext4 since Linux 6.13.
.TP
+.I stx_atomic_write_unit_max_opt
+The maximum size (in bytes) which is
+optimised for writes issued with torn-write protection.
+If non-zero,
+this value will not exceed the value in
+.I stx_atomic_write_unit_max
+and will not be less than the value in
+.IR stx_atomic_write_unit_min .
+A value of zero indicates that
+.I stx_atomic_write_unit_max
+is the optimised limit.
+Slower writes may be experienced when the size of the write exceeds
+.I stx_atomic_write_unit_max_opt
+(when non-zero).
+.TP
.I stx_atomic_write_segments_max
The maximum number of elements in an array of vectors
for a write with torn-write protection enabled.
--
2.31.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3 1/2] statx.2: properly align stx_dio_read_offset_align
2025-06-19 15:44 ` [PATCH v3 1/2] statx.2: properly align stx_dio_read_offset_align John Garry
@ 2025-06-23 0:55 ` Alejandro Colomar
0 siblings, 0 replies; 5+ messages in thread
From: Alejandro Colomar @ 2025-06-23 0:55 UTC (permalink / raw)
To: John Garry; +Cc: linux-man, linux-fsdevel, hch, djwong, linux-xfs
[-- Attachment #1: Type: text/plain, Size: 947 bytes --]
Hi John,
On Thu, Jun 19, 2025 at 03:44:54PM +0000, John Garry wrote:
> Align this member in struct statx with the members above it.
>
> Signed-off-by: John Garry <john.g.garry@oracle.com>
Thanks! I've applied the patch.
<https://www.alejandro-colomar.es/src/alx/linux/man-pages/man-pages.git/commit/?h=contrib&id=6006fe8bf74e400e060ff70f62ac03d911af13c5>
Have a lovely day!
Alex
> ---
> man/man2/statx.2 | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/man/man2/statx.2 b/man/man2/statx.2
> index ef7dbbcf9..273d80711 100644
> --- a/man/man2/statx.2
> +++ b/man/man2/statx.2
> @@ -73,7 +73,7 @@ struct statx {
> __u32 stx_atomic_write_segments_max;
> \&
> /* File offset alignment for direct I/O reads */
> - __u32 stx_dio_read_offset_align;
> + __u32 stx_dio_read_offset_align;
> };
> .EE
> .in
> --
> 2.31.1
>
--
<https://www.alejandro-colomar.es/>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 2/2] statx.2: Add stx_atomic_write_unit_max_opt
2025-06-19 15:44 ` [PATCH v3 2/2] statx.2: Add stx_atomic_write_unit_max_opt John Garry
@ 2025-06-23 0:59 ` Alejandro Colomar
0 siblings, 0 replies; 5+ messages in thread
From: Alejandro Colomar @ 2025-06-23 0:59 UTC (permalink / raw)
To: John Garry; +Cc: linux-man, linux-fsdevel, hch, djwong, linux-xfs
[-- Attachment #1: Type: text/plain, Size: 3277 bytes --]
Hi John,
On Thu, Jun 19, 2025 at 03:44:55PM +0000, John Garry wrote:
> XFS supports atomic writes - or untorn writes - based on two different
> methods:
> - HW offload in the disk
> - FS method based on out-of-place writes
>
> The value reported in stx_atomic_write_unit_max will be the max size of the
> FS-based method.
>
> The max atomic write unit size of the FS-based atomic writes will
> typically be much larger than what is capable from the HW offload. However,
> FS-based atomic writes will also be typically much slower.
>
> Advertise this HW offload size limit to the user in a new statx member,
> stx_atomic_write_unit_max_opt.
>
> We want STATX_WRITE_ATOMIC to get this new member in addition to the
> already-existing members, so mention that a value of 0 in
> stx_atomic_write_unit_max_opt means that stx_atomic_write_unit_max holds
> this optimised limit.
>
> Linux will zero unused statx members, so stx_atomic_write_unit_max_opt
> will always hold 0 for older kernel versions which do not support
> this FS-based atomic write method (for XFS).
>
> Signed-off-by: John Garry <john.g.garry@oracle.com>
Thanks! Patch applied.
<https://www.alejandro-colomar.es/src/alx/linux/man-pages/man-pages.git/commit/?h=contrib&id=6dd3ceed42a94815ae41f0a7ec2e946a12a8f4be>
Cheers,
Alex
> ---
> man/man2/statx.2 | 21 ++++++++++++++++++++-
> 1 file changed, 20 insertions(+), 1 deletion(-)
>
> diff --git a/man/man2/statx.2 b/man/man2/statx.2
> index 273d80711..07ac60b3c 100644
> --- a/man/man2/statx.2
> +++ b/man/man2/statx.2
> @@ -74,6 +74,9 @@ struct statx {
> \&
> /* File offset alignment for direct I/O reads */
> __u32 stx_dio_read_offset_align;
> +\&
> + /* Direct I/O atomic write max opt limit */
> + __u32 stx_atomic_write_unit_max_opt;
> };
> .EE
> .in
> @@ -266,7 +269,8 @@ STATX_SUBVOL Want stx_subvol
> (since Linux 6.10; support varies by filesystem)
> STATX_WRITE_ATOMIC Want stx_atomic_write_unit_min,
> stx_atomic_write_unit_max,
> - and stx_atomic_write_segments_max.
> + stx_atomic_write_segments_max,
> + and stx_atomic_write_unit_max_opt.
> (since Linux 6.11; support varies by filesystem)
> STATX_DIO_READ_ALIGN Want stx_dio_read_offset_align.
> (since Linux 6.14; support varies by filesystem)
> @@ -514,6 +518,21 @@ is supported on block devices since Linux 6.11.
> The support on regular files varies by filesystem;
> it is supported by xfs and ext4 since Linux 6.13.
> .TP
> +.I stx_atomic_write_unit_max_opt
> +The maximum size (in bytes) which is
> +optimised for writes issued with torn-write protection.
> +If non-zero,
> +this value will not exceed the value in
> +.I stx_atomic_write_unit_max
> +and will not be less than the value in
> +.IR stx_atomic_write_unit_min .
> +A value of zero indicates that
> +.I stx_atomic_write_unit_max
> +is the optimised limit.
> +Slower writes may be experienced when the size of the write exceeds
> +.I stx_atomic_write_unit_max_opt
> +(when non-zero).
> +.TP
> .I stx_atomic_write_segments_max
> The maximum number of elements in an array of vectors
> for a write with torn-write protection enabled.
> --
> 2.31.1
>
--
<https://www.alejandro-colomar.es/>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-06-23 0:59 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-19 15:44 [PATCH v3 0/2] statx.2: Add stx_atomic_write_unit_max_opt John Garry
2025-06-19 15:44 ` [PATCH v3 1/2] statx.2: properly align stx_dio_read_offset_align John Garry
2025-06-23 0:55 ` Alejandro Colomar
2025-06-19 15:44 ` [PATCH v3 2/2] statx.2: Add stx_atomic_write_unit_max_opt John Garry
2025-06-23 0:59 ` Alejandro Colomar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).