Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

msg/async: DPDKStack as AsyncMessenger backend #10748

Merged
merged 14 commits into from Nov 9, 2016

Conversation

yuyuyu101
Copy link
Member

No description provided.

@uniqueyehu
Copy link
Contributor

To use DPDKStack as AsyncMessenger backend, I have changed some place in the code:

  1. ceph/src/common/config_opts.h
    OPTION(ms_type, OPT_STR, "simple") to OPTION(ms_type, OPT_STR, "async")
    OPTION(ms_async_transport_type, OPT_STR, "posix") to OPTION(ms_async_transport_type, OPT_STR, "dpdk")
  2. ceph/CMakeList.txt
    option(WITH_DPDK "Enable DPDK messaging" OFF) to option(WITH_DPDK "Enable DPDK messaging" ON)

But the cmake can't find DPDK, missing DPDK_INCLUDE_DIR and check_LIBRARIES. Do you have some tips or advice to modify the code to use DPDKStack as AsyncMessenger backend ?

@yuyuyu101
Copy link
Member Author

I will rebase this pr later

@uniqueyehu
Copy link
Contributor

Good! What's the simplest way for me to test the DPDKStack in Ceph? I want to see the result of running DPDKStack.

@yuyuyu101
Copy link
Member Author

@liewegas let's create a ceph/dpdk repo. dpdk repo isn't in github. so a empty repo that I could push is enough

@liewegas
Copy link
Member

liewegas commented Oct 16, 2016 via email

@yuyuyu101 yuyuyu101 force-pushed the wip-dpdk8 branch 2 times, most recently from bfd3f52 to 8b19c11 Compare November 2, 2016 10:00
@liewegas liewegas added this to the kraken milestone Nov 2, 2016
@tchaikov
Copy link
Contributor

tchaikov commented Nov 5, 2016

@yuyuyu101 needs rebase

@yuyuyu101
Copy link
Member Author

@tchaikov done

@tchaikov
Copy link
Contributor

tchaikov commented Nov 5, 2016

@yuyuyu101, could you fix the conflicts in src/CMakeLists.txt?

@yuyuyu101
Copy link
Member Author

@tchaikov oh, sorry. missing conflicting..

@liewegas
Copy link
Member

liewegas commented Nov 8, 2016

ok to merge as long as the cmake bits look okay to @alimaredia

@yuyuyu101 can you rebase to resolve the boost submodule conflict?

@alimaredia
Copy link
Contributor

@liewegas the cmake looks fine to me, only questions I have are does it build and test ok? and the test added to src/test/msgr/CMakeLists.txt is meant to be stand alone and not a unit test run via make-check right?

Signed-off-by: Haomai Wang <haomai@xsky.com>
Signed-off-by: Haomai Wang <haomai@xsky.com>
deleter is a wrapper for lambda which can used to free resource associated
with object

Signed-off-by: Haomai Wang <haomai@xsky.com>
Signed-off-by: Haomai Wang <haomai@xsky.com>
Like epoll, kqueue, select, dpdk backend also need to allow notify EventCenter
when a connection is ready to read/write. So we need to let DPDKStack can kick
EventCenter. DPDKDriver which introduced UserspaceEvent to simulate epoll
event achieve the goal.

Signed-off-by: Haomai Wang <haomai@xsky.com>
Signed-off-by: Haomai Wang <haomai@xsky.com>
Signed-off-by: Haomai Wang <haomai@xsky.com>
Signed-off-by: Haomai Wang <haomai@xsky.com>
Signed-off-by: Haomai Wang <haomai@xsky.com>
Signed-off-by: Haomai Wang <haomai@xsky.com>
Signed-off-by: Haomai Wang <haomai@xsky.com>
Signed-off-by: Haomai Wang <haomai@xsky.com>
Signed-off-by: Haomai Wang <haomai@xsky.com>
@yuyuyu101
Copy link
Member Author

@alimaredia sure.

Copy link
Member

@liewegas liewegas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@liewegas liewegas merged commit 0619ab6 into ceph:master Nov 9, 2016
@yuyuyu101 yuyuyu101 deleted the wip-dpdk8 branch November 9, 2016 14:22
@candychencan
Copy link
Contributor

Hi @yuyuyu101,I'm sorry to disturb you, but I'd like to ask you a question.We want to enable dpdk in the asynmessage module, Based on master branch our configuration is:

ms_async_op_threads = 2
ms_dpdk_coremask = 0x7
ms_type = async+dpdk
ms_dpdk_gateway_ipv4_addr=100.100.5.1
ms_dpdk_host_ipv4_addr=100.100.5.229
ms_dpdk_netmask_ipv4_addr=255.255.0.0

However, it has not been run successfully. Whether or not bound the igb_uio drive to the network port, ceph-s will report the following error:

EAL: Detected 40 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte_client.admin/mp_socket
EAL: Probing VFIO support...
EAL: Error - exiting with code: 1
Cause: No Ethernet ports - bye

Our questions:
If we want to enable dpdk in the asynmessage module

(1)Which version of ceph fully supports dpdk?
(2)What are the correct configuration and operation steps?

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
6 participants