Re: [lng-odp] [PATCHv4 0/5] handle transmit errors correctly
Hi Stuart, make check under root says that you deference null pointer. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/opt/Linaro/odp2.git/test/performance/.libs/lt-odp_l2fwd -i pktiop1p0,pktiop2p3'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x2ba318e13453 in pkt_mmap_v2_tx (sock=4, ring=0x2ba318aae700, pkt_table=0x2ba31e9ecdc0, len=16) at pktio/socket_mmap.c:221 221if (odp_likely(hdr->tp_status == TP_STATUS_AVAILABLE)) { (gdb) bt #0 0x2ba318e13453 in pkt_mmap_v2_tx (sock=4, ring=0x2ba318aae700, pkt_table=0x2ba31e9ecdc0, len=16) at pktio/socket_mmap.c:221 #1 0x2ba318e13fee in sock_mmap_send (pktio_entry=0x2ba318aae640, pkt_table=0x2ba31e9ecdc0, len=16) at pktio/socket_mmap.c:489 #2 0x2ba318e1075d in odp_pktio_send (id=0x2, pkt_table=0x2ba31e9ecdc0, len=16) at odp_packet_io.c:420 #3 0x00401f26 in pktio_direct_recv_thread (arg=0x2ba318ad3030) at odp_l2fwd.c:270 #4 0x2ba318bf9a07 in odp_run_start_routine (arg=0x1376950) at linux.c:35 #5 0x2ba319035182 in start_thread (arg=0x2ba31e9ed700) at pthread_create.c:312 #6 0x2ba31934547d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 (gdb) p hdr $1 = (struct tpacket2_hdr *) 0x0 (gdb) l 216 * after some of the packets in the ring have already been sent, so we 217 * need to inspect the packet status to determine which were sent. */ 218for (n = first_frame_num; n < first_frame_num + i; ++n) { 219struct tpacket2_hdr *hdr = ring->rd[n].iov_base; 220 221if (odp_likely(hdr->tp_status == TP_STATUS_AVAILABLE)) { 222nb_tx++; 223} else if (hdr->tp_status & TP_STATUS_WRONG_FORMAT) { 224/* status will be cleared on the next send request */ 225break; (gdb) On 10/23/2015 12:16, Stuart Haslam wrote: Fixes bug: https://bugs.linaro.org/show_bug.cgi?id=1365 Changes since v3: - Rebased - Fix comment typo in 5/5 Changes since v2: - Conditionally check for ability to run test and report as inactive if not. - dropped patch 1/7, not required after other test changes - dropped patch 4/7 removing MAC print, not really related to this series. We should add a proper test for MAC address but that's unrelated and TBD. Stuart Haslam (5): linux-generic: pktio: increase MTU of loop interface linux-generic: pktio: handle transmit errors correctly validation: pktio: pass interface index rather than name validation: pktio: add support for direct receive validation: pktio: test for transmit error handling .../linux-generic/include/odp_packet_io_internal.h | 6 + platform/linux-generic/pktio/loop.c| 5 +- platform/linux-generic/pktio/socket.c | 27 ++- platform/linux-generic/pktio/socket_mmap.c | 96 test/validation/pktio/pktio.c | 250 + test/validation/pktio/pktio.h | 2 + 6 files changed, 284 insertions(+), 102 deletions(-) ___ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp
Re: [lng-odp] [PATCHv4 0/5] handle transmit errors correctly
On Tue, Oct 27, 2015 at 01:06:46PM +0300, Maxim Uvarov wrote: > Hi Stuart, > > make check under root says that you deference null pointer. > > > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". > Core was generated by > `/opt/Linaro/odp2.git/test/performance/.libs/lt-odp_l2fwd -i > pktiop1p0,pktiop2p3'. > Program terminated with signal SIGSEGV, Segmentation fault. > #0 0x2ba318e13453 in pkt_mmap_v2_tx (sock=4, > ring=0x2ba318aae700, pkt_table=0x2ba31e9ecdc0, len=16) at > pktio/socket_mmap.c:221 > 221if (odp_likely(hdr->tp_status == TP_STATUS_AVAILABLE)) { > (gdb) bt > #0 0x2ba318e13453 in pkt_mmap_v2_tx (sock=4, > ring=0x2ba318aae700, pkt_table=0x2ba31e9ecdc0, len=16) at > pktio/socket_mmap.c:221 > #1 0x2ba318e13fee in sock_mmap_send > (pktio_entry=0x2ba318aae640, pkt_table=0x2ba31e9ecdc0, len=16) at > pktio/socket_mmap.c:489 > #2 0x2ba318e1075d in odp_pktio_send (id=0x2, > pkt_table=0x2ba31e9ecdc0, len=16) at odp_packet_io.c:420 > #3 0x00401f26 in pktio_direct_recv_thread > (arg=0x2ba318ad3030) at odp_l2fwd.c:270 > #4 0x2ba318bf9a07 in odp_run_start_routine (arg=0x1376950) at > linux.c:35 > #5 0x2ba319035182 in start_thread (arg=0x2ba31e9ed700) at > pthread_create.c:312 > #6 0x2ba31934547d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > (gdb) p hdr > $1 = (struct tpacket2_hdr *) 0x0 > (gdb) l > 216 * after some of the packets in the ring have already > been sent, so we > 217 * need to inspect the packet status to determine which > were sent. */ > 218for (n = first_frame_num; n < first_frame_num + i; ++n) { > 219struct tpacket2_hdr *hdr = ring->rd[n].iov_base; > 220 > 221if (odp_likely(hdr->tp_status == TP_STATUS_AVAILABLE)) { > 222nb_tx++; > 223} else if (hdr->tp_status & TP_STATUS_WRONG_FORMAT) { > 224/* status will be cleared on the next send request */ > 225break; > (gdb) Argh. Obviously this doesn't happen when I run the test, but I can now see the problem. I'll fix and send an updated series. -- Stuart. ___ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp
[lng-odp] [PATCHv4 0/5] handle transmit errors correctly
Fixes bug: https://bugs.linaro.org/show_bug.cgi?id=1365 Changes since v3: - Rebased - Fix comment typo in 5/5 Changes since v2: - Conditionally check for ability to run test and report as inactive if not. - dropped patch 1/7, not required after other test changes - dropped patch 4/7 removing MAC print, not really related to this series. We should add a proper test for MAC address but that's unrelated and TBD. Stuart Haslam (5): linux-generic: pktio: increase MTU of loop interface linux-generic: pktio: handle transmit errors correctly validation: pktio: pass interface index rather than name validation: pktio: add support for direct receive validation: pktio: test for transmit error handling .../linux-generic/include/odp_packet_io_internal.h | 6 + platform/linux-generic/pktio/loop.c| 5 +- platform/linux-generic/pktio/socket.c | 27 ++- platform/linux-generic/pktio/socket_mmap.c | 96 test/validation/pktio/pktio.c | 250 + test/validation/pktio/pktio.h | 2 + 6 files changed, 284 insertions(+), 102 deletions(-) -- 2.1.1 ___ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp