]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
crimson/net: change ConnectionRef to be a local_shared_foreign_ptr
authorYingxin Cheng <yingxin.cheng@intel.com>
Mon, 3 Apr 2023 02:00:11 +0000 (10:00 +0800)
committerMatan Breizman <mbreizma@redhat.com>
Tue, 23 May 2023 13:20:51 +0000 (13:20 +0000)
commitc67d0ce9c909bb8a9612ffb5fdf2d495a639da57
tree474c339feaad5c29097387b81a041e0c5a2f2b01
parent18296254322ac877ead017e7d9aafe35497a3ecb
crimson/net: change ConnectionRef to be a local_shared_foreign_ptr

Make it possible for connections and messages to be dispatched in
arbitrary core without asynchronous foreign copy.

The local_shared_foreign_ptr conn cannot be moved to another core
implicitly, maintain it outside Message independently.

Do asynchronous foreign copy to the new ConnectionRef only in
with_remote_shard_state_and_op().

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
(cherry picked from commit b54153ecaddda890401d12d6c5ceadb0030df4f1)
32 files changed:
src/crimson/net/Fwd.h
src/crimson/net/Interceptor.h
src/crimson/net/ProtocolV2.cc
src/crimson/net/SocketConnection.cc
src/crimson/net/SocketConnection.h
src/crimson/net/SocketMessenger.cc
src/crimson/net/io_handler.cc
src/crimson/net/io_handler.h
src/crimson/osd/ops_executer.cc
src/crimson/osd/ops_executer.h
src/crimson/osd/osd_operations/client_request.cc
src/crimson/osd/osd_operations/client_request.h
src/crimson/osd/osd_operations/logmissing_request.cc
src/crimson/osd/osd_operations/logmissing_request.h
src/crimson/osd/osd_operations/logmissing_request_reply.h
src/crimson/osd/osd_operations/peering_event.h
src/crimson/osd/osd_operations/recovery_subrequest.cc
src/crimson/osd/osd_operations/recovery_subrequest.h
src/crimson/osd/osd_operations/replicated_request.h
src/crimson/osd/pg.cc
src/crimson/osd/pg.h
src/crimson/osd/pg_shard_manager.h
src/crimson/osd/recovery_backend.cc
src/crimson/osd/recovery_backend.h
src/crimson/osd/replicated_recovery_backend.cc
src/crimson/osd/replicated_recovery_backend.h
src/crimson/osd/watch.cc
src/crimson/osd/watch.h
src/msg/Message.cc
src/msg/Message.h
src/test/crimson/test_messenger.cc
src/test/crimson/test_messenger_thrash.cc