]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.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)
committerYingxin Cheng <yingxin.cheng@intel.com>
Fri, 14 Apr 2023 05:46:35 +0000 (13:46 +0800)
commitb54153ecaddda890401d12d6c5ceadb0030df4f1
tree57c51ffc080fb48c9a462c3ed396d744290061f8
parent1f419b779e8610a19bfa4141d12403c7271686cf
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>
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