]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/log
ceph-ci.git
2 months agoMerged branches prs/66245 wip-sjust-seastore-2025-12-08-1765254300
Samuel Just [Tue, 9 Dec 2025 04:24:20 +0000 (20:24 -0800)]
Merged branches prs/66245

DISTROS: centos9 rocky10 jammy noble
ARCHS: x86_64

2 months agoMerge branch prs/66245
Samuel Just [Tue, 9 Dec 2025 04:24:20 +0000 (20:24 -0800)]
Merge branch prs/66245

2 months agotest/crimson/.../test_object_data_handler: add multiple clone/overwrite test case
Samuel Just [Mon, 8 Dec 2025 19:22:48 +0000 (11:22 -0800)]
test/crimson/.../test_object_data_handler: add multiple clone/overwrite test case

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agotest/crimson/.../test_object_data_handler.cc: add support for clones
Samuel Just [Fri, 5 Dec 2025 00:23:48 +0000 (16:23 -0800)]
test/crimson/.../test_object_data_handler.cc: add support for clones

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: add logging to remap_mappings
Samuel Just [Mon, 8 Dec 2025 18:10:51 +0000 (10:10 -0800)]
crimson/.../transaction_manager: add logging to remap_mappings

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../lba_manager: add formatter for remap_entry_t
Samuel Just [Mon, 8 Dec 2025 18:10:28 +0000 (10:10 -0800)]
crimson/.../lba_manager: add formatter for remap_entry_t

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../object_data_handler: fix LOG_PREFIX for do_clone
Samuel Just [Mon, 8 Dec 2025 17:21:59 +0000 (09:21 -0800)]
crimson/.../object_data_handler: fix LOG_PREFIX for do_clone

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../lba_manager: convert remap_mappings to use cursors
Samuel Just [Tue, 21 Oct 2025 21:59:58 +0000 (21:59 +0000)]
crimson/.../lba_manager: convert remap_mappings to use cursors

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../lba_manager: convert reserve_region to use cursor
Samuel Just [Mon, 20 Oct 2025 23:55:00 +0000 (23:55 +0000)]
crimson/.../lba_manager: convert reserve_region to use cursor

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: simplify _update_mapping_ret, remove update_mapping_re...
Samuel Just [Sat, 18 Oct 2025 00:54:08 +0000 (17:54 -0700)]
crimson/.../btree_lba_manager: simplify _update_mapping_ret, remove update_mapping_ret_bare_t

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: convert _update_mapping to coroutine
Samuel Just [Sat, 18 Oct 2025 00:34:57 +0000 (17:34 -0700)]
crimson/.../btree_lba_manager: convert _update_mapping to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: remove update_refcount, simplify _update_mapping retur...
Samuel Just [Fri, 17 Oct 2025 23:06:34 +0000 (23:06 +0000)]
crimson/.../btree_lba_manager: remove update_refcount, simplify _update_mapping return value

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert remap_mappings to coroutine
Samuel Just [Fri, 17 Oct 2025 22:07:57 +0000 (22:07 +0000)]
crimson/.../transaction_manager: convert remap_mappings to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: convert remap_mappings to coroutine
Samuel Just [Thu, 16 Oct 2025 01:45:33 +0000 (18:45 -0700)]
crimson/.../btree_lba_manager: convert remap_mappings to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../lba_manager: convert clone_mapping to use cursors
Samuel Just [Thu, 16 Oct 2025 01:26:52 +0000 (01:26 +0000)]
crimson/.../lba_manager: convert clone_mapping to use cursors

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agoMerge pull request #66304 from NitzanMordhai/wip-nitzan-objecter-osdmap-request-override
SrinivasaBharathKanta [Mon, 8 Dec 2025 22:49:46 +0000 (04:19 +0530)]
Merge pull request #66304 from NitzanMordhai/wip-nitzan-objecter-osdmap-request-override

Objecter: respect higher epoch subscription in tick

2 months agoMerge pull request #66560 from anthonyeleven/arminfo
Anthony D'Atri [Mon, 8 Dec 2025 22:22:30 +0000 (17:22 -0500)]
Merge pull request #66560 from anthonyeleven/arminfo

doc/start: Add ARM support note to hardware-recommendations.rst

2 months agodoc/start: Add ARM support note to hardware-recommendations.rst
Anthony D'Atri [Mon, 8 Dec 2025 19:48:58 +0000 (14:48 -0500)]
doc/start: Add ARM support note to hardware-recommendations.rst

Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
2 months agoMerge pull request #66020 from bluikko/doc-conf-auth-config-ref-links-rados
Ilya Dryomov [Mon, 8 Dec 2025 19:10:26 +0000 (20:10 +0100)]
Merge pull request #66020 from bluikko/doc-conf-auth-config-ref-links-rados

doc: Use validated links with ref instead of external links

Reviewed-by: Kefu Chai <tchaikov@gmail.com>
Reviewed-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2 months agoMerge pull request #66070 from samarahu/rgw-d4n-unit-test-fix
Samarah Uriarte [Mon, 8 Dec 2025 14:32:35 +0000 (08:32 -0600)]
Merge pull request #66070 from samarahu/rgw-d4n-unit-test-fix

Reviewed-by: Pritha Srivastava <prsrivas@redhat.com>
2 months agoMerge pull request #66402 from afreen23/remove-ng
Afreen Misbah [Mon, 8 Dec 2025 10:03:05 +0000 (15:33 +0530)]
Merge pull request #66402 from afreen23/remove-ng

mgr/dashboard: Remove ng script

Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: pujaoshahu <pshahu@redhat.com>
2 months agoMerge pull request #62002 from mohit84/crimson_mclock_1
Matan Breizman [Mon, 8 Dec 2025 09:40:59 +0000 (11:40 +0200)]
Merge pull request #62002 from mohit84/crimson_mclock_1

crimson: Support mclock for crimson

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
2 months agoMerge pull request #65729 from tchaikov/cmake-link-ceph-common
Kefu Chai [Mon, 8 Dec 2025 07:38:31 +0000 (15:38 +0800)]
Merge pull request #65729 from tchaikov/cmake-link-ceph-common

cmake: convert erasure_code and json_spirit to OBJECT libraries

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
2 months agodoc: Use validated links with ref instead of external links
Ville Ojamo [Wed, 22 Oct 2025 07:19:31 +0000 (14:19 +0700)]
doc: Use validated links with ref instead of external links

Use :ref: for intra-docs links that are validated, instead of external
links.
Only use already existing labels.
Fixes a few anchors that pointed to now-renamed section titles.
Use automatically generated link text where appropriate.
Delete unused link definitions.

Mostly in doc/rados/ but also a few in doc/rbd/.
Try to fix all links in each of the changed documents.

Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
2 months agoMerge pull request #66489 from joscollin/wip-drop-double-check
Venky Shankar [Mon, 8 Dec 2025 04:34:42 +0000 (10:04 +0530)]
Merge pull request #66489 from joscollin/wip-drop-double-check

mds: drop checking CEPH_MDS_OP_SETLAYOUT two times

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
2 months agoMerge pull request #66158 from xxhdx1985126/wip-seastore-minor-perf-issue
Matan Breizman [Sun, 7 Dec 2025 08:16:57 +0000 (10:16 +0200)]
Merge pull request #66158 from xxhdx1985126/wip-seastore-minor-perf-issue

crimson/os/seastore/epm: avoid unnecessary container copies

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
2 months agocmake: convert erasure_code and json_spirit to OBJECT libraries wip-pr-65729-kefu
Kefu Chai [Tue, 30 Sep 2025 10:38:31 +0000 (18:38 +0800)]
cmake: convert erasure_code and json_spirit to OBJECT libraries

This resolves a circular dependency issue where ceph-common was linked
against erasure_code and json_spirit static libraries, while these
libraries themselves referenced symbols from ceph-common, creating an
unresolvable circular dependency. The static libraries were incorrectly
marked PUBLIC, causing executables linking against ceph-common to also
link against them directly.

The circular dependency manifested as linker errors in tests like
ceph_test_ino_release_cb, where libjson_spirit.a and liberasure_code.a
contained undefined references to ceph-common symbols (e.g.,
ceph::__ceph_assert_fail and get_str_list) that couldn't be resolved
due to the linking order.

For instance, ceph_test_ino_release_cb failed to link:
```
/usr/bin/ld: ../../../lib/libcephfs.so.2.0.0: undefined reference to symbol '_ZN4ceph18__ceph_assert_failERKNS_11assert_dataE'
/usr/bin/ld: ../../../lib/libceph-common.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
```

Changes:

- Convert erasure_code and json_spirit from STATIC to OBJECT libraries
- Embed their object files directly into ceph-common during linking,
  breaking the circular dependency and preventing public propagation
  of these dependencies to downstream targets
- Remove direct linkage from targets that already get these symbols
  through ceph-common dependencies:
  * Erasure code unit tests (unittest_erasure_code_isa,
    unittest_erasure_code_plugin_isa, unittest_erasure_code_example)
  * Test libraries (radostest)
  * Plugins (denc-mod-osd, cls_refcount, cls_rgw, cls_lua, ec_lrc)

This also prevents ODR violations that would occur if targets linked
against these libraries directly while also getting them from
ceph-common. Such violations cause undefined behavior including
segmentation faults, as static variables and vtables would exist in
duplicate, leading to crashes during destruction or when accessing
shared state.

For example, before removing direct linkage from plugins, ceph-dencoder
would segfault on certain object types:

  /ceph/src/test/encoding/readable.sh: line 111: Segmentation fault
  $CEPH_DENCODER type ScrubMap import ... decode encode decode dump_json

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
2 months agoMerge pull request #65274 from ifed01/wip-ifed-more-max-lat
Igor Fedotov [Wed, 3 Dec 2025 14:46:08 +0000 (17:46 +0300)]
Merge pull request #65274 from ifed01/wip-ifed-more-max-lat

os/bluestore: track max latencies for key bluestore/bluefs perf counters

Reviewed-by: Adam Kupczyk <akupczyk@ibm.com>
2 months agosrc/test/crimson/CMakeLists: include dmclock wip-moagrawa-crimson-mclock-debug
Mohit Agrawal [Thu, 6 Nov 2025 12:52:23 +0000 (18:22 +0530)]
src/test/crimson/CMakeLists: include dmclock

Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
2 months agocrimson/CMakeLists.txt: include dmclock
Mohit Agrawal [Mon, 28 Jul 2025 14:44:47 +0000 (20:14 +0530)]
crimson/CMakeLists.txt: include dmclock

Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
2 months agocrimson/mclock_scheduler: Support mclock for crimson
Mohit Agrawal [Mon, 28 Jul 2025 13:25:41 +0000 (18:55 +0530)]
crimson/mclock_scheduler: Support mclock for crimson

The patch is trying to sync mclock source of crimson similar to
classic osds. Currently the feature is use by crimson only for
background recovery operations but later we will use it for other
OSD operations also.To use the same user need to configure
crimson_osd_scheduler_concurrency parameter for osd.

Replace item_t with WorkItem variant to maintain similarity
with classic OSD.

Introduce cost and priority as part of item_t.

Fixes: https://tracker.ceph.com/issues/67367
Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
2 months agocrimson/background_recovery: switch to unified SchedulerClass and introduce get_avera...
Mohit Agrawal [Mon, 28 Jul 2025 13:19:14 +0000 (18:49 +0530)]
crimson/background_recovery: switch to unified SchedulerClass and introduce get_average_object_size for pg

1)  Replace usage of crimson::osd::scheduler::scheduler_class_t
    with unified SchedulerClass
2) Add priority to scheduler params structure
3) Introduce get_average_object_size for pg

Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
2 months agocrimson/osd: Refactor crimson scheduler wrapper
Mohit Agrawal [Mon, 28 Jul 2025 13:03:38 +0000 (18:33 +0530)]
crimson/osd: Refactor crimson scheduler wrapper

Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
2 months agocrimson/osd,osd_operation: initialize mClock scheduler, detect rotational devices...
Mohit Agrawal [Mon, 28 Jul 2025 12:48:57 +0000 (18:18 +0530)]
crimson/osd,osd_operation: initialize mClock scheduler, detect rotational devices, and run OperationThrottler background task

Initialize the mClock scheduler on all shards when the device class
is non-rotational. If the device is rotational throw an exception
to prevent unsupported configurations.

In addition, introduce a background task in OperationThrottler that
continuously dequeues and schedules client requests from the mClock
scheduler based on available credits and throttling limits.

Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
2 months agocommon/mclock_common: Declared MonClient for crimson in mclock_common
Mohit Agrawal [Mon, 28 Jul 2025 12:08:07 +0000 (17:38 +0530)]
common/mclock_common: Declared MonClient for crimson in mclock_common

Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
2 months agoMerge pull request #66453 from aainscow/lrc_fix
NitzanMordhai [Wed, 3 Dec 2025 09:55:59 +0000 (11:55 +0200)]
Merge pull request #66453 from aainscow/lrc_fix

osd: Perform shard look up correctly in partial EC writes

2 months agoMerge pull request #66384 from bill-scales/issue72879
NitzanMordhai [Wed, 3 Dec 2025 09:54:19 +0000 (11:54 +0200)]
Merge pull request #66384 from bill-scales/issue72879

Fix teuthology timeout issues with bluestore software compression and improve thread heartbeat timeout code

2 months agoMerge PR #66093 into main
Venky Shankar [Wed, 3 Dec 2025 06:40:18 +0000 (12:10 +0530)]
Merge PR #66093 into main

* refs/pull/66093/head:

Reviewed-by: John Mulligan <jmulligan@redhat.com>
Reviewed-by: Anoop C S <anoopcs@cryptolab.net>
Reviewed-by: Shwetha Acharya <sacharya@redhat.com>
2 months agocrimson/.../transaction_manager: convert clone_pin to coroutine
Samuel Just [Thu, 16 Oct 2025 00:54:26 +0000 (00:54 +0000)]
crimson/.../transaction_manager: convert clone_pin to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: convert clone_mapping to coroutine
Samuel Just [Wed, 15 Oct 2025 22:47:30 +0000 (22:47 +0000)]
crimson/.../btree_lba_manager: convert clone_mapping to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: convert get_end_mapping to return LBACursorRef
Samuel Just [Wed, 15 Oct 2025 21:58:34 +0000 (21:58 +0000)]
crimson/.../btree_lba_manager: convert get_end_mapping to return LBACursorRef

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: convert get_end_mapping to coroutine
Samuel Just [Wed, 15 Oct 2025 21:53:20 +0000 (21:53 +0000)]
crimson/.../btree_lba_manager: convert get_end_mapping to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: remove LBAMapping update_mapping variant
Samuel Just [Tue, 14 Oct 2025 00:03:46 +0000 (00:03 +0000)]
crimson/.../transaction_manager: remove LBAMapping update_mapping variant

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../lba_manager: remove get_mapping interfaces
Samuel Just [Mon, 13 Oct 2025 22:50:05 +0000 (22:50 +0000)]
crimson/.../lba_manager: remove get_mapping interfaces

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert get_pins to use get_cursors
Samuel Just [Mon, 13 Oct 2025 20:58:54 +0000 (20:58 +0000)]
crimson/.../transaction_manager: convert get_pins to use get_cursors

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert get_extents_if_live and helpers to use cursors
Samuel Just [Mon, 13 Oct 2025 20:13:33 +0000 (20:13 +0000)]
crimson/.../transaction_manager: convert get_extents_if_live and helpers to use cursors

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert pin_to_extent_by_type to coroutine
Samuel Just [Mon, 13 Oct 2025 19:50:32 +0000 (19:50 +0000)]
crimson/.../transaction_manager: convert pin_to_extent_by_type to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert get_extents_if_live to coroutine
Samuel Just [Fri, 10 Oct 2025 16:02:51 +0000 (16:02 +0000)]
crimson/.../transaction_manager: convert get_extents_if_live to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../lba_manager: convert alloc_extents_ret to use LBACursor
Samuel Just [Fri, 10 Oct 2025 01:53:32 +0000 (01:53 +0000)]
crimson/.../lba_manager: convert alloc_extents_ret to use LBACursor

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert alloc_data_extents to coroutine
Samuel Just [Fri, 10 Oct 2025 00:47:07 +0000 (00:47 +0000)]
crimson/.../transaction_manager: convert alloc_data_extents to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: convert alloc_extents to coroutine
Samuel Just [Fri, 10 Oct 2025 00:27:16 +0000 (00:27 +0000)]
crimson/.../btree_lba_manager: convert alloc_extents to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert rewrite_logical_extent to use get_cursor
Samuel Just [Mon, 13 Oct 2025 21:41:15 +0000 (14:41 -0700)]
crimson/.../transaction_manager: convert rewrite_logical_extent to use get_cursor

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../lba_manager: switch alloc_extent_ret to LBACursorRef
Samuel Just [Fri, 10 Oct 2025 00:11:32 +0000 (00:11 +0000)]
crimson/.../lba_manager: switch alloc_extent_ret to LBACursorRef

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: convert reserve_region to coroutine
Samuel Just [Thu, 9 Oct 2025 23:16:14 +0000 (23:16 +0000)]
crimson/.../btree_lba_manager: convert reserve_region to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert reserve_region to coroutine
Samuel Just [Thu, 9 Oct 2025 23:08:59 +0000 (23:08 +0000)]
crimson/.../transaction_manager: convert reserve_region to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: convert alloc_extent to coroutine
Samuel Just [Thu, 9 Oct 2025 22:48:12 +0000 (22:48 +0000)]
crimson/.../btree_lba_manager: convert alloc_extent to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert rewrite_logical_extent to coroutine
Samuel Just [Thu, 9 Oct 2025 21:19:41 +0000 (21:19 +0000)]
crimson/.../transaction_manager: convert rewrite_logical_extent to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert get_pin to use get_cursor
Samuel Just [Thu, 9 Oct 2025 01:32:03 +0000 (01:32 +0000)]
crimson/.../transaction_manager: convert get_pin to use get_cursor

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../lba_manager: remove remove_mappings
Samuel Just [Wed, 8 Oct 2025 02:23:00 +0000 (19:23 -0700)]
crimson/.../lba_manager: remove remove_mappings

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: rework _remove in terms of LBACursor interfaces
Samuel Just [Wed, 8 Oct 2025 01:47:52 +0000 (18:47 -0700)]
crimson/.../transaction_manager: rework _remove in terms of LBACursor interfaces

Removes the need for _remove_direct_mapping and _remove_indirect_mapping.

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: avoid using LBAManager::ref_update_result_t
Samuel Just [Wed, 8 Oct 2025 00:30:46 +0000 (17:30 -0700)]
crimson/.../transaction_manager: avoid using LBAManager::ref_update_result_t

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson: replace LBAManager::complete_indirect_lba_mapping with TransactionManager...
Samuel Just [Tue, 7 Oct 2025 21:20:17 +0000 (14:20 -0700)]
crimson: replace LBAManager::complete_indirect_lba_mapping with TransactionManager::complete_mapping

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: simplify get_extent_if_linked
Samuel Just [Tue, 7 Oct 2025 00:27:18 +0000 (00:27 +0000)]
crimson/.../transaction_manager: simplify get_extent_if_linked

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert _remove_indirect_mapping to coroutine
Samuel Just [Fri, 3 Oct 2025 18:10:14 +0000 (18:10 +0000)]
crimson/.../transaction_manager: convert _remove_indirect_mapping to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert remap_pin to coroutine
Samuel Just [Fri, 3 Oct 2025 18:05:04 +0000 (18:05 +0000)]
crimson/.../transaction_manager: convert remap_pin to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert _remove_direct_mapping to coroutine
Samuel Just [Thu, 2 Oct 2025 21:39:27 +0000 (21:39 +0000)]
crimson/.../transaction_manager: convert _remove_direct_mapping to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../remove: convert to use cursor interfaces
Samuel Just [Thu, 2 Oct 2025 21:20:18 +0000 (21:20 +0000)]
crimson/.../remove: convert to use cursor interfaces

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert remove to use cursor interfaces
Samuel Just [Thu, 2 Oct 2025 20:47:46 +0000 (13:47 -0700)]
crimson/.../transaction_manager: convert remove to use cursor interfaces

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_types: add LBACursor::is_direct
Samuel Just [Thu, 2 Oct 2025 20:46:54 +0000 (13:46 -0700)]
crimson/.../btree_types: add LBACursor::is_direct

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert _remove_indirect_mapping_only to use new...
Samuel Just [Wed, 1 Oct 2025 23:31:34 +0000 (16:31 -0700)]
crimson/.../transaction_manager: convert _remove_indirect_mapping_only to use new interfaces

Also removes now unused LBAMapping::remove_indirect_mapping_only.

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: remove unused get_ref_update_result
Samuel Just [Wed, 1 Oct 2025 22:38:46 +0000 (15:38 -0700)]
crimson/.../btree_lba_manager: remove unused get_ref_update_result

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../lba_manager: replace unused incref_extent with update_mapping_refcount
Samuel Just [Tue, 30 Sep 2025 21:02:30 +0000 (21:02 +0000)]
crimson/.../lba_manager: replace unused incref_extent with update_mapping_refcount

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: remove unused _incref_extent
Samuel Just [Tue, 30 Sep 2025 19:32:53 +0000 (12:32 -0700)]
crimson/.../btree_lba_manager: remove unused _incref_extent

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: convert remove_mapping to coroutine
Samuel Just [Tue, 30 Sep 2025 18:56:42 +0000 (18:56 +0000)]
crimson/.../btree_lba_manager: convert remove_mapping to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../lba_manager: switch update_mapping to take a cursor, add adapter
Samuel Just [Tue, 30 Sep 2025 18:53:22 +0000 (18:53 +0000)]
crimson/.../lba_manager: switch update_mapping to take a cursor, add adapter

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: convert update_mapping to coroutine
Samuel Just [Tue, 30 Sep 2025 18:04:55 +0000 (11:04 -0700)]
crimson/.../btree_lba_manager: convert update_mapping to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: introduce resolve_cursor_to_mapping
Samuel Just [Tue, 30 Sep 2025 17:52:45 +0000 (10:52 -0700)]
crimson/.../transaction_manager: introduce resolve_cursor_to_mapping

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../lba_manager: add get_cursor interfaces
Samuel Just [Fri, 26 Sep 2025 23:19:26 +0000 (16:19 -0700)]
crimson/.../lba_manager: add get_cursor interfaces

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: convert get_mappings to coroutine
Samuel Just [Tue, 23 Sep 2025 20:51:42 +0000 (13:51 -0700)]
crimson/.../btree_lba_manager: convert get_mappings to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: convert get_cursors to coroutine
Samuel Just [Tue, 23 Sep 2025 21:08:28 +0000 (14:08 -0700)]
crimson/.../btree_lba_manager: convert get_cursors to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../fixed_kv_btree: add get_btree helper
Samuel Just [Tue, 23 Sep 2025 20:51:18 +0000 (13:51 -0700)]
crimson/.../fixed_kv_btree: add get_btree helper

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../btree_lba_manager: convert mkfs to coroutine
Samuel Just [Tue, 23 Sep 2025 20:19:30 +0000 (20:19 +0000)]
crimson/.../btree_lba_manager: convert mkfs to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agocrimson/.../transaction_manager: convert remove to coroutine
Samuel Just [Fri, 19 Sep 2025 16:13:20 +0000 (09:13 -0700)]
crimson/.../transaction_manager: convert remove to coroutine

Signed-off-by: Samuel Just <sjust@redhat.com>
2 months agomds: drop checking CEPH_MDS_OP_SETLAYOUT two times
Jos Collin [Tue, 2 Dec 2025 12:58:13 +0000 (18:28 +0530)]
mds: drop checking CEPH_MDS_OP_SETLAYOUT two times

Signed-off-by: Jos Collin <jcollin@redhat.com>
2 months agoqa/d4n: Update host checks
Samarah [Tue, 18 Nov 2025 16:21:40 +0000 (16:21 +0000)]
qa/d4n: Update host checks

Signed-off-by: Samarah <samarah.uriarte@ibm.com>
2 months agotest/d4n: Add temporary eviction testing
Samarah [Mon, 24 Nov 2025 20:14:13 +0000 (20:14 +0000)]
test/d4n: Add temporary eviction testing

Signed-off-by: Samarah <samarah.uriarte@ibm.com>
2 months agorgw/d4n: Add yield parameter to get_free_space
Samarah Uriarte [Mon, 27 Oct 2025 21:35:45 +0000 (16:35 -0500)]
rgw/d4n: Add yield parameter to get_free_space

Signed-off-by: Samarah Uriarte <samarah.uriarte@ibm.com>
2 months agoosd: Perform shard look up correctly in partial EC writes
Alex Ainscow [Fri, 28 Nov 2025 14:33:13 +0000 (14:33 +0000)]
osd: Perform shard look up correctly in partial EC writes

Plugins are permitted to provide a mapping to change the order in which OSDs
are used. In practice only LRC does this and it is not currently enabled
with optimisations, so this is a theoretical bug.

The bug here was that the "first" shard was assumed to be shard_id_t(0).  However,
this is not true for LRC.

Fixes: https://tracker.ceph.com/issues/74016
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
2 months agoMerge pull request #65771 from aainscow/ec_direct_reads_pr_1
Alex Ainscow [Thu, 27 Nov 2025 23:17:37 +0000 (23:17 +0000)]
Merge pull request #65771 from aainscow/ec_direct_reads_pr_1

EC Direct Reads: First PR, background work

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Bill Scales <bill_scales@uk.ibm.com>
2 months agoMerge pull request #66377 from baum/rbd_aio_write_with_crc32c_initial_fix
Ilya Dryomov [Thu, 27 Nov 2025 22:58:38 +0000 (23:58 +0100)]
Merge pull request #66377 from baum/rbd_aio_write_with_crc32c_initial_fix

librbd: rbd_aio_write_with_crc32c store CRC32C with initial value -1 to match msgr2 validation

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2 months agoqa: Reduce number of osd threads when using compression
Bill Scales [Fri, 21 Nov 2025 10:06:22 +0000 (10:06 +0000)]
qa: Reduce number of osd threads when using compression

Smithi nodes used by teuthology tests have 8 CPU cores and typically run
4 OSD processes. When bluestore software compression is enabled the size
of the OSD thread pool needs to be reduced to 2 threads per OSD because
these threads can easily use 100% of a core. This avoids excessive
amounts of context switches, which leads to OSD threads timing out,
which causes the OSD to drop heartbeat pings and for the monitor to
temporarily mark it down. In extreme cases this can lead to PGs getting
stuck in repeated loops of peering until the teuthology test times out.

Context switches happen oppurtunistically at the end of system calls
so functions with lots of logging are some of the worst affected.

Fixes: https://tracker.ceph.com/issues/72879
Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
2 months agoosd: Restrict logging in MissingLoc::add_source_info
Bill Scales [Fri, 21 Nov 2025 10:38:44 +0000 (10:38 +0000)]
osd: Restrict logging in MissingLoc::add_source_info

add_source_info can generate an excessive amount of logging
if a PG has thousands of missing objects. When a system is
under load and threads are repeatedly context switching this
can lead to timeouts (tests showed this function taking up
to 10 seconds to execute with 99% of that time being in
logging calls where the thread was being pre-empted).
Stopping logging after the function has been running for
more than 0.5 seconds strikes a balance between providing
sufficient informtion to debug problems while providing
more stability when a system is heavily loaded.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
2 months agoosd: Increase log level for listing missing list
Bill Scales [Fri, 21 Nov 2025 10:25:48 +0000 (10:25 +0000)]
osd: Increase log level for listing missing list

Logging the entire contents of a missing list can generate a
1M character log line when there are 8000 missing objects in a
PG. Other places in the code logging the missing list use debug
level 25 which is not enabled by default in teuthology tests.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
2 months agoosd: reset_tp_timeout should reset timeout for all shards
Bill Scales [Mon, 24 Nov 2025 09:18:21 +0000 (09:18 +0000)]
osd: reset_tp_timeout should reset timeout for all shards

ShardedThreadPools are only used by the classic OSD process
which can have more than one thread for the same shard. Each
thread has a heartbeat timeout used to detect stalled threads.
Some code that is known to take a long time makes calls to
reset_tp_timeout to reset this timeout. However for sharded
pools this can be ineffective because it is common for threads
for the same shard to use the same locks (e.g. PG Lock) and
therefore if thread A is taking a long time and resetting
its timeout while holding a lock, thread B for the same shard
is liable to be waiting for the same lock, will not be
resetting its timeout and can be timed out.

Debug for issue 72879 showed heartbeat timeouts occurring at
the same time for both shards, an attempt to fix the problem
by calling reset_tp_timeout for the slow thread still showed
the other threads for the shard timing out waiting for the PG
lock that was held bythe slow thread. Looking at the OSD code
most places where reset_tp_timeout is called the thread is
holding the PG lock.

This commit moves the concept of shard_index from OSD into
ShardedThreadPool and modifies reset_tp_timeout so that it resets
the timeout for all threads for the same shard.

Some code calls reset_tp_timeout from inside loops that can take
a long time without consideration for how long the thread has
actually been running for. There is a risk that this type of
call could repeatedly reset the timeout for another shard which
is genuinely stuck and hence defeat the heartbeat checks. To
prevent this reset_tp_timeout is modified to be a NOP unless
the thread has been processing the current workitem for more
than 0.5 seconds. Therefore threads have to be slow but making
forward progress to be abe to reset the timeout.

Fixes: https://tracker.ceph.com/issues/72879
Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
2 months agoMerge pull request #65739 from tchaikov/rgw-gap-list-manpage
Kefu Chai [Thu, 27 Nov 2025 04:12:08 +0000 (12:12 +0800)]
Merge pull request #65739 from tchaikov/rgw-gap-list-manpage

debian: include rgw-gap-list manpage and rgw-policy-check in ceph-common

Reviewed-by: J. Eric Ivancich <ivancich@redhat.com>
Reviewed-by: Matan Breizman <mbreizma@ibm.com>
3 months agoosdc: Add SplitOp capability to Objecter
Alex Ainscow [Tue, 14 Oct 2025 08:24:56 +0000 (09:24 +0100)]
osdc: Add SplitOp capability to Objecter

This will provide the ability for Objecter to split up
certain ops and distribute them to the OSDs directly if
that provides a preformance advantage.

This is experimental code and is switched off unless the
magic pool flags are enabled. These magic pool flags were
pushed in an earlier commit in the same PR.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 months agoosdc: Fix minor typo
Alex Ainscow [Mon, 13 Oct 2025 11:50:11 +0000 (12:50 +0100)]
osdc: Fix minor typo

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 months agoosdc: Interface to allow split reads to copy op from client op to split op
Alex Ainscow [Fri, 3 Oct 2025 14:34:55 +0000 (15:34 +0100)]
osdc: Interface to allow split reads to copy op from client op to split op

When spliting ops, certain addition sub ops (e.g. get xattr) can be simply passed
through to the child op.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 months agoosdc: Add stub for ability to force an op to always go to a particular shard
Alex Ainscow [Fri, 3 Oct 2025 14:32:22 +0000 (15:32 +0100)]
osdc: Add stub for ability to force an op to always go to a particular shard

This will eventually be used by SplitIo to direct ops to the correct OSD.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
3 months agoosdc: Split handle_osd_op_reply into two functions
Alex Ainscow [Fri, 3 Oct 2025 14:15:29 +0000 (15:15 +0100)]
osdc: Split handle_osd_op_reply into two functions

The functionality is not altered by this commit.

In the future we want to post-process split-ios after
recombining the read data.

Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>