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

async: fixed coredump when enable dpdk. #12854

Merged
merged 1 commit into from Jan 10, 2017
Merged

async: fixed coredump when enable dpdk. #12854

merged 1 commit into from Jan 10, 2017

Conversation

liupan1111
Copy link
Contributor

Signed-off-by: Pan Liu pan.liu@istuary.com

Signed-off-by: Pan Liu <pan.liu@istuary.com>
@liupan1111
Copy link
Contributor Author

After upgrade to dpdk v16.11, async will coredump when enable dpdk

@liupan1111
Copy link
Contributor Author

@yuyuyu101 @optimistyzy , please help take look.

@optimistyzy
Copy link
Contributor

Since DPDK is upgrade, so I do not think that we need to consider the versioning.

@yuyuyu101 yuyuyu101 merged commit 0bf9c62 into ceph:master Jan 10, 2017
@tchaikov
Copy link
Contributor

tchaikov commented Jan 10, 2017

Since DPDK is upgrade, so I do not think that we need to consider the versioning.

we detect DPDK in Finddpdk.cmake which checks the dpdk in the default paths, i don't see why we don't need to take the backward compatibility into consideration.

@liupan1111
Copy link
Contributor Author

@tchaikov In my opinion, we don't need to specify the dpdk version in code, dpdk is already a submodule in ceph code, the user should use conrresponding submodule to build. What do you think?

@optimistyzy
Copy link
Contributor

I have the same opinion,each ceph version should uses the corresonding dpdk,which shown in submodulesit can avoid the compatibility issue

@tchaikov
Copy link
Contributor

tchaikov commented Jan 10, 2017

the user should use conrresponding submodule to build.

i doubt it. at least, we are not forcing our user to do so. if we really want to enforce the dpdk version to 16.11 or up used in ceph, we can bump the minimum required version in #12857. but anyway, maybe we can let @yuyuyu101 to make the call.

@liupan1111
Copy link
Contributor Author

@tchaikov @yuyuyu101 , sorry for lack of info, let me say more about the coredump.
In the function PerfCountersBuilder::create_perf_counters, it will loop each perf counter, and check whether it none: assert(d->type != PERFCOUNTER_NONE);
If we don't remove #if RTE_VERSION < RTE_VERSION_NUM(16,7,0,0), and use dpdk 16.11, assertion fail will happen.

@tchaikov
Copy link
Contributor

@liupan1111 got it, then we might need to conditionalize the

enum {
  l_dpdk_dev_first = 58800,
  l_dpdk_dev_rx_mcast,
  l_dpdk_dev_rx_total_errors,
  l_dpdk_dev_tx_total_errors,
  l_dpdk_dev_rx_badcrc_errors,
  l_dpdk_dev_rx_dropped_errors,
  l_dpdk_dev_rx_nombuf_errors,
  l_dpdk_dev_last
};

block also.

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