[00:00:36] *** Joins: tomzawadzki (~tomzawadz@134.134.139.83) [00:05:44] *** Quits: tomzawadzki (~tomzawadz@134.134.139.83) (Ping timeout: 252 seconds) [00:12:21] *** Quits: ziyeyang_ (~ziyeyang_@192.102.204.38) (Quit: Leaving) [00:12:30] *** Joins: tomzawadzki (~tomzawadz@134.134.139.76) [01:41:29] *** Quits: tomzawadzki (~tomzawadz@134.134.139.76) (Remote host closed the connection) [03:50:27] *** Quits: gila (~gila@5ED74129.cm-7-8b.dynamic.ziggo.nl) (Ping timeout: 252 seconds) [04:14:22] *** Joins: gila (~gila@5ED74129.cm-7-8b.dynamic.ziggo.nl) [08:42:02] sethhowe: ping [08:44:28] lhodev: Hi [08:45:02] sethhowe: Hey, have you by chance ever built the dpdk rpm's yourself? [08:45:59] lhodev: I haven't, sorry. [08:47:22] sethhowe: I've run into something really odd that I'm trying to figure out. It began when I installed dpdk 18.05 rpm's and then attempted to build the SPDK against them. The linking failed with complaints about unable to resolve 'eal_get_runtime_dir' [08:47:40] That symbol was added in DPDK 18.05. [08:48:59] When I run objdump or readelf on the librte_eal.so.7 that was installed by the DPDK 18.05 rpm's, I do *NOT* see the symbol in the library. [08:49:24] And so I built the dpdk 18.05 rpm's myself. [08:49:48] it's not in lib/librte_eal/rte_eal_version.map [08:50:25] lhodev: I ran into a compile issue related to this earlier. I thought that Iadded a preprocessor directive to check the dpdk version. Let me look at my notes real quick. [08:50:35] lhodev: Are you on latest master? [08:50:41] ugh - that's the problem, this function isn't officially part of the DPDK external API [08:50:54] lib/env_dpdk/init.c declares the function locally [08:51:04] since eal_filesystem.h isn't a DPDK public header [08:51:05] What's really strange is that in the rpmbuild/BUILD/dpdk-18.05.1 area, the librte_eal.so.7's therein *do* have the eal_get_runtime_dir symbol. [08:52:01] However, in the rpmbuild/BUILDROOT/dpdk-18.05.1, the librte_eal.so.7 does NOT have the symbol. [08:53:54] jimharris: somehow the librte_eal.so.7 under BUILD is altered when it's placed under BUILDROOT such that the symbol disappears. [08:54:26] lhodev: nvm, the preprocessor check was added by Darek and just checks to make sure we are on v18.05 or higher before using that function. [08:54:44] However, under BUILDROOT there's also a librte_eal.so.debug, and *that* one does contain the symbol. [08:55:15] sethhowe: yes, I saw Darek's if'd code in the SPDK that checks for the DPDK version. [08:55:26] That looks fine. [08:55:58] how are you checking the symbols? [08:56:40] I just don't understand yet what's happening between the build of librte_eal.so under rpmbuild's BUILD and then the version that gets placed under rpmbuild's BUILDROOT. [08:56:49] jimharris: I've tried both objdump and readelf. [08:57:10] *** Joins: travis-ci (~travis-ci@ec2-54-163-203-250.compute-1.amazonaws.com) [08:57:11] (spdk/master) make: Fix test app Makefile dependencies (Vitaliy Mysak) [08:57:11] Diff URL: https://github.com/spdk/spdk/compare/87eacb6829b5...4a7240a7f54e [08:57:11] *** Parts: travis-ci (~travis-ci@ec2-54-163-203-250.compute-1.amazonaws.com) () [08:57:18] what's the exact command line? and what does the eal_get_runtime_dir line show? [08:57:33] a .so could have the symbol for it, but it may not be exported [08:57:33] jimharris: good case: [08:57:52] $ readelf -s ./x86_64-native-linuxapp-gcc/lib/librte_eal.so.7 | grep runtime_dir [08:57:52] 50: 000000000023b1a0 4096 OBJECT LOCAL DEFAULT 26 runtime_dir [08:57:53] 376: 0000000000008b40 432 FUNC LOCAL DEFAULT 12 eal_create_runtime_dir [08:57:54] 408: 0000000000008cf0 8 FUNC LOCAL DEFAULT 12 eal_get_runtime_dir [08:58:29] In the bad case, the grep doesn't match anything. [08:58:47] can you do the same thing, but grep for rte_eal_init? [09:00:04] A grep for 'rte_eal_init' does return a hit: [09:00:17] $ readelf -s usr/lib64/librte_eal.so.7 | grep -i rte_eal_init [09:00:17] 284: 0000000000009180 4950 FUNC GLOBAL DEFAULT 12 rte_eal_init@@DPDK_2.0 [09:00:28] yeah - see how the "LOCAL" changes to "GLOBAL"? [09:00:46] so for runtime_dir, these are symbols that are not exported [09:02:13] Yes, now that you point that out. [09:03:45] can you file a bug on this? we need to figure out how to do this right in SPDK [09:04:10] we either need DPDK to export this symbol, or we need to find a way to avoid using this function [09:04:40] jimharris: I don't grok, however, why I have two different versions of librte_eal.so.7. That library under BUILDROOT (missing the symbol) isn't identical to that under BUILD. What causes that? Some kind of "strip" cmd or the like? [09:05:09] sometimes debug symbols can be split out into a separate library [09:05:41] i haven't looked at the dpdk build system to know for sure what they're doing though [09:06:19] I'll open a github issue (in SPDK). I spent a couple hours scratching my head on this last night. [09:07:07] could you add a note to look at using the DPDK --huge-unlink option? we could add this option to rte_eal_init if opts->shm_id < 0 and !opts->hugepage_single_segments [09:07:24] see lib/env_dpdk/init.c@402 [09:12:34] pwodkowx, you there? [09:18:56] jimharris: sethhowe: I opened: https://github.com/spdk/spdk/issues/440 [09:33:27] thanks lhodev [10:26:19] *** Joins: travis-ci (~travis-ci@ec2-174-129-160-194.compute-1.amazonaws.com) [10:26:20] (spdk/master) iscsi: add iscsi prefix in every tracepoint name (Liang Yan) [10:26:20] Diff URL: https://github.com/spdk/spdk/compare/4a7240a7f54e...c48402892ea3 [10:26:20] *** Parts: travis-ci (~travis-ci@ec2-174-129-160-194.compute-1.amazonaws.com) () [10:30:51] *** Quits: lhodev (~lhodev@66-90-218-190.dyn.grandenetworks.net) (Ping timeout: 252 seconds) [10:34:45] *** Quits: alekseymmm (050811aa@gateway/web/freenode/ip.5.8.17.170) (Quit: Page closed) [10:35:51] *** Joins: waelhalbawi (94571710@gateway/web/freenode/ip.148.87.23.16) [10:36:35] *** Quits: waelhalbawi (94571710@gateway/web/freenode/ip.148.87.23.16) (Client Quit) [11:34:12] *** Joins: lhodev (~lhodev@inet-hqmc03-o.oracle.com) [17:06:23] *** Quits: lhodev (~lhodev@inet-hqmc03-o.oracle.com) (Remote host closed the connection) [17:07:02] *** Joins: lhodev (~lhodev@66-90-218-190.dyn.grandenetworks.net) [21:05:57] *** Joins: travis-ci (~travis-ci@ec2-54-226-202-188.compute-1.amazonaws.com) [21:05:58] (spdk/master) nvmf: Remove invalid asserts (Ben Walker) [21:05:58] Diff URL: https://github.com/spdk/spdk/compare/c48402892ea3...33ed49d2e999 [21:05:58] *** Parts: travis-ci (~travis-ci@ec2-54-226-202-188.compute-1.amazonaws.com) ()