Hi Nick we removed the libnuma dependency from pf_ring ZC, we wrote our own code for NUMA affinity in the ZC library.
Alfredo > On 24 Aug 2015, at 17:14, Nick Allen <[email protected]> wrote: > > I found that if I statically link the pcap and pfring libraries, the problem > does not exist. Why is this? Is there a better way to fix this? > > FYI - To validate this I had to perform the following steps. > > $ gcc -Wall -D_GNU_SOURCE numa.c -static -lpfring -lpcap -Wl,-Bdynamic -lnuma > -lpthread -o static-numa > > $ sudo ln -sf /lib64/ld-linux-x86-64.so.2 /lib/ld64.so.1 > > $ sudo ./static-numa > > check: found 4 cpu cores > check: cpu 0 -> numa node 0 > check: cpu 1 -> numa node 0 > check: cpu 2 -> numa node 0 > check: cpu 3 -> numa node 0 > check: max packet length of 'wlan0' = 1518 > > Thanks > > > On Mon, Aug 24, 2015 at 10:47 AM, Nick Allen <[email protected] > <mailto:[email protected]>> wrote: > I created a small test program that isolates where this NUMA issue is coming > from. The problem occurs when I call pfring_zc_create_cluster(...). Once > inside pfring_zc_create_cluster(...) it is a black box to me. Any thoughts > on what else I could try to resolve this issue? > > $ gcc -Wall -D_GNU_SOURCE numa.c -lnuma -lpthread -lpfring -lpcap -o numa > $ sudo ./numa > check: found 4 cpu cores > check: cpu 0 -> numa node 0 > check: cpu 1 -> numa node 0 > check: cpu 2 -> numa node 0 > check: cpu 3 -> numa node 0 > check: max packet length of 'wlan0' = 1518 > libnuma: Warning: node 6 not allowed > numa_sched_setaffinity_v2_int() failed; abort > : Invalid argument > set_mempolicy: Invalid argument > > Here is the test program that I created. > > #include <numa.h> > #include <stdio.h> > #include <unistd.h> > #include <pfring.h> > #include <pfring_zc.h> > #include <pfring_mod_sysdig.h> > #include <numa.h> > #include <pthread.h> > > static int max_packet_len(char *device) > { > pfring *ring; > pfring_card_settings settings; > > ring = pfring_open(device, 1536, PF_RING_PROMISC | > PF_RING_ZC_NOT_REPROGRAM_RSS); > if (ring == NULL) > { > return 1536; > } > > pfring_get_card_settings(ring, &settings); > pfring_close(ring); > return settings.max_packet_size; > } > > /** > * gcc -Wall -D_GNU_SOURCE numa.c -lnuma -lpthread -lpfring -lpcap -o numa > */ > int main(int argc, char *args[]) > { > int i; > int numa_id; > int num_cpu; > pfring_zc_cluster *zc; > > char *device = "wlan0"; > int cluster_id = 1234; > int pkt_len; > int meta_len = 0; > int pkt_buffs = 4; > char *hugepg = "/mnt/huge"; > > // how many cpu? > num_cpu = sysconf(_SC_NPROCESSORS_ONLN); > printf("check: found %i cpu cores \n", num_cpu); > > // which numa node for each cpu? > for(i = 0; i < num_cpu; i++) > { > numa_id = numa_node_of_cpu(i); > printf("check: cpu %i -> numa node %i \n", i, numa_id); > } > > pkt_len = max_packet_len(device); > printf("check: max packet length of '%s' = %i \n", device, pkt_len); > > // create the cluster > zc = pfring_zc_create_cluster(cluster_id, pkt_len, meta_len, pkt_buffs, > numa_id, hugepg); > if (NULL == zc) > { > printf("error: %s: check huge table mount?\n", strerror(errno)); > return -1; > } > > return 0; > } > > On Fri, Aug 21, 2015 at 12:09 PM, Nick Allen <[email protected] > <mailto:[email protected]>> wrote: > I have seen a few past references to issues like this on the list, but > nothing that helps resolve this issue for me. > > libnuma: Warning: node 6 not allowed > numa_sched_setaffinity_v2_int() failed; abort > : Invalid argument > set_mempolicy: Invalid argument > > I am seeing this issue on both a server running CentOS 6.6 (libnuma 2.0.9, > Napatech NIC) and my development laptop running Ubuntu 15.04 (libnuma 2.0.10, > Intel NIC). > > The numa_id that gets pased to 'pfring_zc_create_cluster' is 0. > > $ numactl --show > policy: default > preferred node: current > physcpubind: 0 1 2 3 > cpubind: 0 > nodebind: 0 > membind: 0 > > When I originally built PF_RING, the configure script was able to find the > NUMA library. Attempted against just to be sure. > > checking for numa_available in -lnuma... yes > checking if libnuma is present... yes > > What am I doing wrong? What other information can I provide? > > Mucho Gracias > > > -- > Nick Allen <[email protected] <mailto:[email protected]>> > > > > -- > Nick Allen <[email protected] <mailto:[email protected]>> > > > > -- > Nick Allen <[email protected] <mailto:[email protected]>> > _______________________________________________ > Ntop-misc mailing list > [email protected] <mailto:[email protected]> > http://listgateway.unipi.it/mailman/listinfo/ntop-misc > <http://listgateway.unipi.it/mailman/listinfo/ntop-misc>
signature.asc
Description: Message signed with OpenPGP using GPGMail
_______________________________________________ Ntop-misc mailing list [email protected] http://listgateway.unipi.it/mailman/listinfo/ntop-misc
