2018-06-05 19:42:14 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2005-11-02 14:58:39 +11:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2025-12-19 06:41:47 +01:00
|
|
|
|
2005-11-02 14:38:42 +11:00
|
|
|
|
2013-10-23 10:36:05 +11:00
|
|
|
|
2013-10-23 10:50:10 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-11-02 14:38:42 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2024-07-08 14:02:57 +02:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2013-10-23 10:51:50 +11:00
|
|
|
|
2023-12-18 05:57:21 +01:00
|
|
|
|
2013-10-23 10:50:10 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2012-10-08 21:56:11 +11:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2020-10-07 13:57:52 -07:00
|
|
|
|
2023-10-16 09:21:47 -07:00
|
|
|
|
2024-11-20 16:20:28 -08:00
|
|
|
|
2023-12-18 05:57:21 +01:00
|
|
|
|
2024-02-22 12:32:44 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:18:50 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:04 -08:00
|
|
|
|
2024-11-03 20:19:06 -08:00
|
|
|
|
2024-11-03 20:19:36 -08:00
|
|
|
|
2024-11-20 16:20:53 -08:00
|
|
|
|
2024-11-20 16:21:17 -08:00
|
|
|
|
2025-02-13 05:49:17 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 10:43:42 -07:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 10:41:55 -07:00
|
|
|
|
2023-10-16 10:43:42 -07:00
|
|
|
|
2023-10-16 10:41:55 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xfs: cache minimum realtime summary level
The realtime summary is a two-dimensional array on disk, effectively:
u32 rsum[log2(number of realtime extents) + 1][number of blocks in the bitmap]
rsum[log][bbno] is the number of extents of size 2**log which start in
bitmap block bbno.
xfs_rtallocate_extent_near() uses xfs_rtany_summary() to check whether
rsum[log][bbno] != 0 for any log level. However, the summary array is
stored in row-major order (i.e., like an array in C), so all of these
entries are not adjacent, but rather spread across the entire summary
file. In the worst case (a full bitmap block), xfs_rtany_summary() has
to check every level.
This means that on a moderately-used realtime device, an allocation will
waste a lot of time finding, reading, and releasing buffers for the
realtime summary. In particular, one of our storage services (which runs
on servers with 8 very slow CPUs and 15 8 TB XFS realtime filesystems)
spends almost 5% of its CPU cycles in xfs_rtbuf_get() and
xfs_trans_brelse() called from xfs_rtany_summary().
One solution would be to also store the summary with the dimensions
swapped. However, this would require a disk format change to a very old
component of XFS.
Instead, we can cache the minimum size which contains any extents. We do
so lazily; rather than guaranteeing that the cache contains the precise
minimum, it always contains a loose lower bound which we tighten when we
read or update a summary block. This only uses a few kilobytes of memory
and is already serialized via the realtime bitmap and summary inode
locks, so the cost is minimal. With this change, the same workload only
spends 0.2% of its CPU cycles in the realtime allocator.
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2018-12-12 08:46:32 -08:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
xfs: cache minimum realtime summary level
The realtime summary is a two-dimensional array on disk, effectively:
u32 rsum[log2(number of realtime extents) + 1][number of blocks in the bitmap]
rsum[log][bbno] is the number of extents of size 2**log which start in
bitmap block bbno.
xfs_rtallocate_extent_near() uses xfs_rtany_summary() to check whether
rsum[log][bbno] != 0 for any log level. However, the summary array is
stored in row-major order (i.e., like an array in C), so all of these
entries are not adjacent, but rather spread across the entire summary
file. In the worst case (a full bitmap block), xfs_rtany_summary() has
to check every level.
This means that on a moderately-used realtime device, an allocation will
waste a lot of time finding, reading, and releasing buffers for the
realtime summary. In particular, one of our storage services (which runs
on servers with 8 very slow CPUs and 15 8 TB XFS realtime filesystems)
spends almost 5% of its CPU cycles in xfs_rtbuf_get() and
xfs_trans_brelse() called from xfs_rtany_summary().
One solution would be to also store the summary with the dimensions
swapped. However, this would require a disk format change to a very old
component of XFS.
Instead, we can cache the minimum size which contains any extents. We do
so lazily; rather than guaranteeing that the cache contains the precise
minimum, it always contains a loose lower bound which we tighten when we
read or update a summary block. This only uses a few kilobytes of memory
and is already serialized via the realtime bitmap and summary inode
locks, so the cost is minimal. With this change, the same workload only
spends 0.2% of its CPU cycles in the realtime allocator.
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2018-12-12 08:46:32 -08:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2023-10-16 10:41:55 -07:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 10:13:22 -07:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 10:43:42 -07:00
|
|
|
|
xfs: cache minimum realtime summary level
The realtime summary is a two-dimensional array on disk, effectively:
u32 rsum[log2(number of realtime extents) + 1][number of blocks in the bitmap]
rsum[log][bbno] is the number of extents of size 2**log which start in
bitmap block bbno.
xfs_rtallocate_extent_near() uses xfs_rtany_summary() to check whether
rsum[log][bbno] != 0 for any log level. However, the summary array is
stored in row-major order (i.e., like an array in C), so all of these
entries are not adjacent, but rather spread across the entire summary
file. In the worst case (a full bitmap block), xfs_rtany_summary() has
to check every level.
This means that on a moderately-used realtime device, an allocation will
waste a lot of time finding, reading, and releasing buffers for the
realtime summary. In particular, one of our storage services (which runs
on servers with 8 very slow CPUs and 15 8 TB XFS realtime filesystems)
spends almost 5% of its CPU cycles in xfs_rtbuf_get() and
xfs_trans_brelse() called from xfs_rtany_summary().
One solution would be to also store the summary with the dimensions
swapped. However, this would require a disk format change to a very old
component of XFS.
Instead, we can cache the minimum size which contains any extents. We do
so lazily; rather than guaranteeing that the cache contains the precise
minimum, it always contains a loose lower bound which we tighten when we
read or update a summary block. This only uses a few kilobytes of memory
and is already serialized via the realtime bitmap and summary inode
locks, so the cost is minimal. With this change, the same workload only
spends 0.2% of its CPU cycles in the realtime allocator.
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2018-12-12 08:46:32 -08:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 10:43:42 -07:00
|
|
|
|
xfs: cache minimum realtime summary level
The realtime summary is a two-dimensional array on disk, effectively:
u32 rsum[log2(number of realtime extents) + 1][number of blocks in the bitmap]
rsum[log][bbno] is the number of extents of size 2**log which start in
bitmap block bbno.
xfs_rtallocate_extent_near() uses xfs_rtany_summary() to check whether
rsum[log][bbno] != 0 for any log level. However, the summary array is
stored in row-major order (i.e., like an array in C), so all of these
entries are not adjacent, but rather spread across the entire summary
file. In the worst case (a full bitmap block), xfs_rtany_summary() has
to check every level.
This means that on a moderately-used realtime device, an allocation will
waste a lot of time finding, reading, and releasing buffers for the
realtime summary. In particular, one of our storage services (which runs
on servers with 8 very slow CPUs and 15 8 TB XFS realtime filesystems)
spends almost 5% of its CPU cycles in xfs_rtbuf_get() and
xfs_trans_brelse() called from xfs_rtany_summary().
One solution would be to also store the summary with the dimensions
swapped. However, this would require a disk format change to a very old
component of XFS.
Instead, we can cache the minimum size which contains any extents. We do
so lazily; rather than guaranteeing that the cache contains the precise
minimum, it always contains a loose lower bound which we tighten when we
read or update a summary block. This only uses a few kilobytes of memory
and is already serialized via the realtime bitmap and summary inode
locks, so the cost is minimal. With this change, the same workload only
spends 0.2% of its CPU cycles in the realtime allocator.
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2018-12-12 08:46:32 -08:00
|
|
|
|
2023-10-16 10:41:55 -07:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
|
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
|
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
2023-10-16 10:13:22 -07:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2023-10-16 10:13:22 -07:00
|
|
|
|
2026-02-04 20:36:26 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
2023-10-16 10:13:22 -07:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2023-10-16 10:13:22 -07:00
|
|
|
|
|
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2023-10-16 10:13:22 -07:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-10-16 10:13:22 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-01-12 15:35:23 +05:30
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
|
|
|
|
|
2023-10-16 10:13:22 -07:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-23 00:41:39 +00:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:53 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2023-10-16 10:13:22 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2023-12-18 05:57:33 +01:00
|
|
|
|
2023-10-16 10:13:22 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2023-12-18 05:57:33 +01:00
|
|
|
|
2023-10-16 10:13:22 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2023-12-18 05:57:33 +01:00
|
|
|
|
2023-10-16 10:13:22 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2013-10-15 09:17:56 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:21:38 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:31:11 -07:00
|
|
|
|
2023-10-16 09:21:38 -07:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2023-10-16 09:32:45 -07:00
|
|
|
|
2023-10-16 09:31:11 -07:00
|
|
|
|
|
|
|
|
|
2023-10-16 09:21:38 -07:00
|
|
|
|
2023-10-16 09:31:11 -07:00
|
|
|
|
2023-10-16 09:21:38 -07:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-08-30 15:37:04 -07:00
|
|
|
|
2023-10-16 09:21:38 -07:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:32:45 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2024-08-30 15:37:03 -07:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:06 -07:00
|
|
|
|
2024-08-30 15:37:03 -07:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2024-08-30 15:37:03 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:03 -07:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:03 -07:00
|
|
|
|
2020-09-09 14:21:06 -07:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-08-30 15:37:06 -07:00
|
|
|
|
|
|
|
|
|
2020-09-09 14:21:06 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-08-30 15:37:06 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:06 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:06 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-08-30 15:37:06 -07:00
|
|
|
|
2024-08-30 15:36:56 -07:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-12-18 05:57:30 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:32:45 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:28 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-12-18 05:57:28 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-12-18 05:57:29 +01:00
|
|
|
|
2024-08-30 15:37:02 -07:00
|
|
|
|
2024-08-30 15:37:06 -07:00
|
|
|
|
2024-08-30 15:37:02 -07:00
|
|
|
|
2023-12-18 05:57:29 +01:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:04 -07:00
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:29 +01:00
|
|
|
|
2024-08-30 15:37:04 -07:00
|
|
|
|
2024-08-30 15:37:02 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-08-30 15:36:56 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-12-18 05:57:29 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:02 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:32:45 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2024-08-30 15:37:05 -07:00
|
|
|
|
xfs: reduce excessive clamping of maxlen in xfs_rtallocate_extent_near
The near rt allocator employs two allocation strategies -- first it
tries to allocate at exactly @start. If that fails, it will pivot back
and forth around that starting point looking for an appropriately sized
free space.
However, I clamped maxlen ages ago to prevent the exact allocation scan
from running off the end of the rt volume. This, I realize, was
excessive. If the allocation request is (say) for 32 rtx but the start
position is 5 rtx from the end of the volume, we clamp maxlen to 5. If
the exact allocation fails, we then pivot back and forth looking for 5
rtx, even though the original intent was to try to get 32 rtx.
If we then find 5 rtx when we could have gotten 32 rtx, we've not done
as well as we could have. This may be moot if the caller immediately
comes back for more space, but it might not be. Either way, we can do
better here.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2024-08-30 15:37:05 -07:00
|
|
|
|
2024-08-30 15:37:05 -07:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-10-16 09:21:38 -07:00
|
|
|
|
|
|
|
|
|
xfs: reduce excessive clamping of maxlen in xfs_rtallocate_extent_near
The near rt allocator employs two allocation strategies -- first it
tries to allocate at exactly @start. If that fails, it will pivot back
and forth around that starting point looking for an appropriately sized
free space.
However, I clamped maxlen ages ago to prevent the exact allocation scan
from running off the end of the rt volume. This, I realize, was
excessive. If the allocation request is (say) for 32 rtx but the start
position is 5 rtx from the end of the volume, we clamp maxlen to 5. If
the exact allocation fails, we then pivot back and forth looking for 5
rtx, even though the original intent was to try to get 32 rtx.
If we then find 5 rtx when we could have gotten 32 rtx, we've not done
as well as we could have. This may be moot if the caller immediately
comes back for more space, but it might not be. Either way, we can do
better here.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2024-08-30 15:37:05 -07:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
xfs: reduce excessive clamping of maxlen in xfs_rtallocate_extent_near
The near rt allocator employs two allocation strategies -- first it
tries to allocate at exactly @start. If that fails, it will pivot back
and forth around that starting point looking for an appropriately sized
free space.
However, I clamped maxlen ages ago to prevent the exact allocation scan
from running off the end of the rt volume. This, I realize, was
excessive. If the allocation request is (say) for 32 rtx but the start
position is 5 rtx from the end of the volume, we clamp maxlen to 5. If
the exact allocation fails, we then pivot back and forth looking for 5
rtx, even though the original intent was to try to get 32 rtx.
If we then find 5 rtx when we could have gotten 32 rtx, we've not done
as well as we could have. This may be moot if the caller immediately
comes back for more space, but it might not be. Either way, we can do
better here.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2024-08-30 15:37:05 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2024-08-30 15:37:05 -07:00
|
|
|
|
xfs: reduce excessive clamping of maxlen in xfs_rtallocate_extent_near
The near rt allocator employs two allocation strategies -- first it
tries to allocate at exactly @start. If that fails, it will pivot back
and forth around that starting point looking for an appropriately sized
free space.
However, I clamped maxlen ages ago to prevent the exact allocation scan
from running off the end of the rt volume. This, I realize, was
excessive. If the allocation request is (say) for 32 rtx but the start
position is 5 rtx from the end of the volume, we clamp maxlen to 5. If
the exact allocation fails, we then pivot back and forth looking for 5
rtx, even though the original intent was to try to get 32 rtx.
If we then find 5 rtx when we could have gotten 32 rtx, we've not done
as well as we could have. This may be moot if the caller immediately
comes back for more space, but it might not be. Either way, we can do
better here.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2024-08-30 15:37:05 -07:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:05 -07:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-12-18 05:57:31 +01:00
|
|
|
|
2024-08-30 15:37:05 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:32:45 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:32:45 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2023-10-16 10:43:42 -07:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-10-16 09:21:38 -07:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2020-09-09 14:21:06 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2023-10-16 09:44:13 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
xfs: don't try redundant allocations in xfs_rtallocate_extent_near()
xfs_rtallocate_extent_near() tries to find a free extent as close to a
target bitmap block given by bbno as possible, which may be before or
after bbno. Searching backwards has a complication: the realtime summary
accounts for free space _starting_ in a bitmap block, but not straddling
or ending in a bitmap block. So, when the negative search finds a free
extent in the realtime summary, in order to end up closer to the target,
it looks for the end of the free extent. For example, if bbno - 2 has a
free extent, then it will check bbno - 1, then bbno - 2. But then if
bbno - 3 has a free extent, it will check bbno - 1 again, then bbno - 2
again, and then bbno - 3. This results in a quadratic loop, which is
completely pointless since the repeated checks won't find anything new.
Fix it by remembering where we last checked up to and continue from
there. This also obviates the need for a check of the realtime summary.
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2023-10-16 10:47:04 -07:00
|
|
|
|
2008-08-13 15:41:12 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2023-10-16 10:43:42 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 10:43:42 -07:00
|
|
|
|
2023-10-16 10:45:46 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2023-10-16 10:45:46 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-16 10:48:50 -07:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-10-16 10:48:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-10-16 10:48:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xfs: don't try redundant allocations in xfs_rtallocate_extent_near()
xfs_rtallocate_extent_near() tries to find a free extent as close to a
target bitmap block given by bbno as possible, which may be before or
after bbno. Searching backwards has a complication: the realtime summary
accounts for free space _starting_ in a bitmap block, but not straddling
or ending in a bitmap block. So, when the negative search finds a free
extent in the realtime summary, in order to end up closer to the target,
it looks for the end of the free extent. For example, if bbno - 2 has a
free extent, then it will check bbno - 1, then bbno - 2. But then if
bbno - 3 has a free extent, it will check bbno - 1 again, then bbno - 2
again, and then bbno - 3. This results in a quadratic loop, which is
completely pointless since the repeated checks won't find anything new.
Fix it by remembering where we last checked up to and continue from
there. This also obviates the need for a check of the realtime summary.
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2023-10-16 10:47:04 -07:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
2023-10-16 10:13:22 -07:00
|
|
|
|
2023-10-16 10:45:46 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:32 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:56 -07:00
|
|
|
|
2023-12-18 05:57:32 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-20 16:21:16 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-10-16 09:54:19 -07:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-10-16 09:21:38 -07:00
|
|
|
|
|
|
|
|
|
2008-08-13 15:41:12 +10:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:32 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-12-18 05:57:32 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-12-18 05:57:32 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-12-18 05:57:32 +01:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
|
|
|
|
|
2008-08-13 15:41:12 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:32 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:32 +01:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-12-18 05:57:32 +01:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:06 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-13 05:49:17 +01:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:06 -08:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:52 -07:00
|
|
|
|
2018-12-21 18:45:18 -08:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-08-30 15:36:52 -07:00
|
|
|
|
2018-12-21 18:45:18 -08:00
|
|
|
|
|
|
|
|
|
2023-10-16 10:41:55 -07:00
|
|
|
|
|
|
|
|
|
2018-12-21 18:45:18 -08:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:52 -07:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-08-30 15:36:52 -07:00
|
|
|
|
2018-12-21 18:45:18 -08:00
|
|
|
|
|
|
|
|
|
2024-08-22 17:01:07 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-16 14:43:15 +02:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:12 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:33 -08:00
|
|
|
|
2024-11-03 20:19:12 -08:00
|
|
|
|
2024-11-03 20:19:15 -08:00
|
|
|
|
2024-11-03 20:19:14 -08:00
|
|
|
|
2024-11-03 20:19:12 -08:00
|
|
|
|
2024-11-03 20:19:17 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:14 -08:00
|
|
|
|
2024-11-03 20:19:12 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:17 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:23 -08:00
|
|
|
|
2024-11-03 20:19:17 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-03-17 06:48:36 +01:00
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-20 16:20:30 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-17 10:27:24 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-11-22 12:33:17 -08:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
2024-11-03 20:19:12 -08:00
|
|
|
|
2024-11-03 20:19:17 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:12 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:35 -08:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
2024-08-30 15:37:00 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
2024-08-30 15:37:00 -07:00
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-20 16:20:30 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:15 -07:00
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-17 10:27:24 +01:00
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:01 -07:00
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:15 -07:00
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-02-20 12:24:00 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-20 16:20:32 -08:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
2024-11-20 16:20:32 -08:00
|
|
|
|
2024-11-20 16:21:04 -08:00
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:58 -07:00
|
|
|
|
2026-02-20 12:23:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-02-20 12:23:58 +05:30
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-08-30 15:36:58 -07:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
2026-02-20 12:23:58 +05:30
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-02-20 12:23:58 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
2024-08-30 15:36:58 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:08 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-11-03 20:19:08 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-11-22 12:33:17 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:13 -08:00
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
2024-11-03 20:19:08 -08:00
|
|
|
|
2024-11-03 20:19:13 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:08 -08:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
2024-11-03 20:19:08 -08:00
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:08 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-17 10:27:24 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-02-20 12:23:58 +05:30
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-03-13 11:28:59 +08:00
|
|
|
|
2024-11-17 10:27:24 +01:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:35 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-20 16:20:32 -08:00
|
|
|
|
2024-11-03 20:19:13 -08:00
|
|
|
|
|
|
|
|
|
2024-11-20 16:20:32 -08:00
|
|
|
|
2024-11-03 20:19:13 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-20 16:20:32 -08:00
|
|
|
|
2024-11-03 20:19:13 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-20 16:20:32 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-20 16:21:04 -08:00
|
|
|
|
2024-11-20 16:20:32 -08:00
|
|
|
|
2024-11-03 20:19:13 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-20 16:20:32 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:13 -08:00
|
|
|
|
2025-06-12 10:51:12 -07:00
|
|
|
|
|
|
|
|
|
2024-11-20 16:20:32 -08:00
|
|
|
|
2025-12-16 18:30:09 +01:00
|
|
|
|
2024-11-17 10:27:24 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-12-19 13:33:50 +03:00
|
|
|
|
2025-12-16 18:30:09 +01:00
|
|
|
|
2024-11-17 10:27:24 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-12-16 18:30:09 +01:00
|
|
|
|
|
|
|
|
|
2024-11-17 10:27:24 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-12-16 18:30:09 +01:00
|
|
|
|
2024-11-20 16:20:32 -08:00
|
|
|
|
2025-12-16 18:30:09 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:13 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-16 14:43:15 +02:00
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-01-12 13:54:02 +05:30
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-30 16:42:42 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-17 08:53:10 +01:00
|
|
|
|
|
|
|
|
|
2025-03-17 06:48:35 +01:00
|
|
|
|
2024-07-30 16:42:42 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2008-11-25 21:20:06 -06:00
|
|
|
|
2014-06-25 14:58:08 +10:00
|
|
|
|
2021-07-12 12:58:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-25 14:58:08 +10:00
|
|
|
|
2024-08-22 17:00:51 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-12 12:58:48 -07:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
2024-08-22 17:00:51 -07:00
|
|
|
|
2021-07-12 12:58:48 -07:00
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
2024-08-22 17:00:51 -07:00
|
|
|
|
2021-07-12 12:58:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-22 17:00:51 -07:00
|
|
|
|
2021-07-12 12:58:48 -07:00
|
|
|
|
2024-11-20 16:20:45 -08:00
|
|
|
|
2024-08-22 17:00:51 -07:00
|
|
|
|
2024-11-20 16:20:45 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-20 16:21:17 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-22 17:00:51 -07:00
|
|
|
|
2021-07-12 12:58:48 -07:00
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
2021-07-12 12:58:48 -07:00
|
|
|
|
2024-08-22 17:00:51 -07:00
|
|
|
|
2024-07-30 16:42:42 -07:00
|
|
|
|
|
|
|
|
|
2014-10-02 09:05:32 +10:00
|
|
|
|
2024-08-22 17:00:51 -07:00
|
|
|
|
2010-09-22 10:47:20 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-11-03 20:19:13 -08:00
|
|
|
|
2024-08-22 17:00:51 -07:00
|
|
|
|
2024-08-30 15:36:57 -07:00
|
|
|
|
2024-11-03 20:19:13 -08:00
|
|
|
|
2024-11-20 16:20:32 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:13 -08:00
|
|
|
|
2024-08-22 17:00:51 -07:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-22 17:01:07 -07:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-08-22 17:01:07 -07:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-20 16:20:19 -08:00
|
|
|
|
|
|
|
|
|
2025-02-15 07:48:28 +01:00
|
|
|
|
2024-11-20 16:20:19 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:24 -08:00
|
|
|
|
2020-10-07 13:57:52 -07:00
|
|
|
|
2024-08-22 17:00:51 -07:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:17 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-03-17 06:48:35 +01:00
|
|
|
|
2024-11-03 20:19:17 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-10-02 09:05:32 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-11-03 20:19:14 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2011-03-07 10:08:35 +11:00
|
|
|
|
|
|
|
|
|
2014-06-25 14:58:08 +10:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-11-03 20:19:14 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-07-30 16:42:42 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2022-04-12 06:49:42 +10:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2022-04-12 06:49:42 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-04-12 06:49:42 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-09 05:43:50 +01:00
|
|
|
|
2022-04-12 06:49:42 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-11-06 17:03:18 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:18:50 -08:00
|
|
|
|
2024-11-03 20:19:11 -08:00
|
|
|
|
2022-11-06 17:03:18 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:11 -08:00
|
|
|
|
2022-11-06 17:03:18 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:11 -08:00
|
|
|
|
2022-11-06 17:03:18 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:06 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:11 -08:00
|
|
|
|
2024-11-03 20:19:06 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-13 05:49:17 +01:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-11-03 20:19:06 -08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
xfs: cache minimum realtime summary level
The realtime summary is a two-dimensional array on disk, effectively:
u32 rsum[log2(number of realtime extents) + 1][number of blocks in the bitmap]
rsum[log][bbno] is the number of extents of size 2**log which start in
bitmap block bbno.
xfs_rtallocate_extent_near() uses xfs_rtany_summary() to check whether
rsum[log][bbno] != 0 for any log level. However, the summary array is
stored in row-major order (i.e., like an array in C), so all of these
entries are not adjacent, but rather spread across the entire summary
file. In the worst case (a full bitmap block), xfs_rtany_summary() has
to check every level.
This means that on a moderately-used realtime device, an allocation will
waste a lot of time finding, reading, and releasing buffers for the
realtime summary. In particular, one of our storage services (which runs
on servers with 8 very slow CPUs and 15 8 TB XFS realtime filesystems)
spends almost 5% of its CPU cycles in xfs_rtbuf_get() and
xfs_trans_brelse() called from xfs_rtany_summary().
One solution would be to also store the summary with the dimensions
swapped. However, this would require a disk format change to a very old
component of XFS.
Instead, we can cache the minimum size which contains any extents. We do
so lazily; rather than guaranteeing that the cache contains the precise
minimum, it always contains a loose lower bound which we tighten when we
read or update a summary block. This only uses a few kilobytes of memory
and is already serialized via the realtime bitmap and summary inode
locks, so the cost is minimal. With this change, the same workload only
spends 0.2% of its CPU cycles in the realtime allocator.
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
2018-12-12 08:46:32 -08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-11-03 20:18:50 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-11-03 20:18:50 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-11-03 20:18:50 -08:00
|
|
|
|
2024-11-03 20:19:04 -08:00
|
|
|
|
2024-11-03 20:18:50 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2025-07-16 14:43:15 +02:00
|
|
|
|
2024-11-03 20:19:06 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-11-03 20:19:06 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:06 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:04 -08:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-11-03 20:18:50 -08:00
|
|
|
|
2022-11-06 17:03:18 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
2009-02-04 09:33:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-11-03 20:19:06 -08:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-04 09:33:58 +01:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:55 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:55 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-11-22 12:33:17 -08:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2023-10-04 14:53:02 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-11-08 13:22:16 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2011-01-25 09:06:19 +00:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-04 14:53:02 -04:00
|
|
|
|
|
|
|
|
|
2023-11-08 13:22:16 -08:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-08 09:54:22 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-11-08 13:22:16 -08:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:36:55 -07:00
|
|
|
|
2005-04-16 15:20:36 -07:00
|
|
|
|
2023-12-18 05:57:21 +01:00
|
|
|
|
2023-12-18 05:57:36 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:36 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
2024-11-03 20:19:29 -08:00
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
2024-11-03 20:19:29 -08:00
|
|
|
|
2024-08-30 15:37:12 -07:00
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:12 -07:00
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:29 -08:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
2024-11-03 20:19:29 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-11-03 20:19:29 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-02 10:57:30 -08:00
|
|
|
|
2024-08-30 15:37:12 -07:00
|
|
|
|
2024-11-03 20:19:29 -08:00
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:29 -08:00
|
|
|
|
2024-11-03 20:19:36 -08:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
2024-11-03 20:19:29 -08:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:36 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:29 -08:00
|
|
|
|
2024-11-03 20:19:36 -08:00
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:15 -08:00
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:10 -08:00
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
|
|
|
|
|
2024-11-03 20:19:36 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
|
|
|
|
|
2024-11-20 16:21:16 -08:00
|
|
|
|
2024-11-03 20:19:29 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:11 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:11 -07:00
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:21 +01:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:11 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-20 16:21:03 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:11 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:11 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:21 +01:00
|
|
|
|
2023-12-18 05:57:35 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:11 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:12 -07:00
|
|
|
|
2024-08-30 15:37:11 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:12 -07:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:11 -07:00
|
|
|
|
|
|
|
|
|
2024-11-30 04:48:33 +01:00
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:11 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:12 -07:00
|
|
|
|
2023-12-18 05:57:35 +01:00
|
|
|
|
2024-11-03 20:19:29 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
2024-08-30 15:37:11 -07:00
|
|
|
|
2023-12-18 05:57:23 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 15:37:11 -07:00
|
|
|
|
2023-12-18 05:57:23 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:21 +01:00
|
|
|
|
|
|
|
|
|
2023-12-18 05:57:23 +01:00
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
2023-12-18 05:57:22 +01:00
|
|
|
|
2023-12-18 05:57:23 +01:00
|
|
|
|
2024-08-30 15:37:10 -07:00
|
|
|
|
2023-12-18 05:57:21 +01:00
|
|
|
|