I have reported a bug https://bugs.linaro.org/show_bug.cgi?id=2595 about the 
new VLAN test hang. Could this be the same issue? It hangs for me sometimes, 
most times not. It happens both at the tip of the master and api-next.

-Petri



> -----Original Message-----
> From: Maxim Uvarov [mailto:maxim.uva...@linaro.org]
> Sent: Wednesday, November 16, 2016 10:03 PM
> To: Bill Fischofer <bill.fischo...@linaro.org>; Savolainen, Petri (Nokia -
> FI/Espoo) <petri.savolai...@nokia-bell-labs.com>; Mike Holmes
> <mike.hol...@linaro.org>
> Cc: lng-odp-forward <lng-odp@lists.linaro.org>
> Subject: Re: [lng-odp] [API-NEXT PATCH v3 00/19] pool optimization
> 
> I can not test patch by patch this series because it fails (one time it
> was TM, one time kernel died, other time OOM killer killed tests then
> hang kernel).
> 
> And for all patches test/common_plat/validation/api/pktio/pktio_main
> hangs forever:
> 
> 
> Program received signal SIGINT, Interrupt.
> 0x00002afbe69ffb80 in __nanosleep_nocancel () at
> ../sysdeps/unix/syscall-template.S:81
> 81    in ../sysdeps/unix/syscall-template.S
> (gdb) bt
> #0  0x00002afbe69ffb80 in __nanosleep_nocancel () at
> ../sysdeps/unix/syscall-template.S:81
> #1  0x0000000000415ced in odp_pktin_recv_tmo (queue=...,
> packets=packets@entry=0x7ffed64d8bd0, num=num@entry=1,
>      wait=wait@entry=18446744073709551615) at
> ../../../platform/linux-generic/odp_packet_io.c:1584
> #2  0x00000000004047fa in recv_packets_tmo (pktio=pktio@entry=0x2,
> pkt_tbl=pkt_tbl@entry=0x7ffed64d9500,
>      seq_tbl=seq_tbl@entry=0x7ffed64d94b0, num=num@entry=1,
> mode=mode@entry=RECV_TMO, tmo=tmo@entry=18446744073709551615,
> ns=ns@entry=0)
>      at
> ../../../../../../test/common_plat/validation/api/pktio/pktio.c:515
> #3  0x00000000004075f8 in test_recv_tmo (mode=RECV_TMO) at
> ../../../../../../test/common_plat/validation/api/pktio/pktio.c:940
> #4  0x00002afbe61cc482 in run_single_test () from
> /usr/local/lib/libcunit.so.1
> #5  0x00002afbe61cc0b2 in run_single_suite () from
> /usr/local/lib/libcunit.so.1
> #6  0x00002afbe61c9d55 in CU_run_all_tests () from
> /usr/local/lib/libcunit.so.1
> #7  0x00002afbe61ce245 in basic_run_all_tests () from
> /usr/local/lib/libcunit.so.1
> #8  0x00002afbe61cdfe7 in CU_basic_run_tests () from
> /usr/local/lib/libcunit.so.1
> #9  0x0000000000409361 in odp_cunit_run () at
> ../../../../test/common_plat/common/odp_cunit_common.c:298
> #10 0x00002afbe6c2ff45 in __libc_start_main (main=0x403850 <main>,
> argc=1, argv=0x7ffed64d9878, init=<optimized out>,
>      fini=<optimized out>, rtld_fini=<optimized out>,
> stack_end=0x7ffed64d9868) at libc-start.c:287
> #11 0x000000000040387e in _start ()
> (gdb) up
> #1  0x0000000000415ced in odp_pktin_recv_tmo (queue=...,
> packets=packets@entry=0x7ffed64d8bd0, num=num@entry=1,
>      wait=wait@entry=18446744073709551615) at
> ../../../platform/linux-generic/odp_packet_io.c:1584
> 1584            nanosleep(&ts, NULL);
> (gdb) p ts
> $1 = {tv_sec = 0, tv_nsec = 1000}
> (gdb) l
> 1579                }
> 1580
> 1581                wait--;
> 1582            }
> 1583
> 1584            nanosleep(&ts, NULL);
> 1585        }
> 1586    }
> 1587
> 1588    int odp_pktin_recv_mq_tmo(const odp_pktin_queue_t queues[],
> unsigned num_q,
> (gdb) up
> #2  0x00000000004047fa in recv_packets_tmo (pktio=pktio@entry=0x2,
> pkt_tbl=pkt_tbl@entry=0x7ffed64d9500,
>      seq_tbl=seq_tbl@entry=0x7ffed64d94b0, num=num@entry=1,
> mode=mode@entry=RECV_TMO, tmo=tmo@entry=18446744073709551615,
> ns=ns@entry=0)
>      at
> ../../../../../../test/common_plat/validation/api/pktio/pktio.c:515
> 515                n = odp_pktin_recv_tmo(pktin[0], pkt_tmp, num - num_rx,
> (gdb) p num - num_rx
> $2 = 1
> (gdb) l
> 510        /** Multiple odp_pktin_recv_tmo()/odp_pktin_recv_mq_tmo()
> calls may be
> 511         *  required to discard possible non-test packets. */
> 512        do {
> 513            ts1 = odp_time_global();
> 514            if (mode == RECV_TMO)
> 515                n = odp_pktin_recv_tmo(pktin[0], pkt_tmp, num - num_rx,
> 516                               tmo);
> 517            else
> 518                n = odp_pktin_recv_mq_tmo(pktin, (unsigned)num_q,
> 519                              from, pkt_tmp,
> (gdb) p tmo
> $3 = 18446744073709551615
> 
> 
> I applied patches and following script under root:
> CLEANUP=0 GIT_URL=/opt/Linaro/odp3.git GIT_BRANCH=api-next ./build.sh
> 
> Need more investigation into this issue... Not applied yet.
> 
> Maxim.
> 
> On 11/16/16 02:58, Bill Fischofer wrote:
> > Trying again as the repost doesn't seem to show up on the list either.
> >
> > For this series:
> >
> > Reviewed-and-tested-by: Bill Fischofer <bill.fischo...@linaro.org
> > <mailto:bill.fischo...@linaro.org>>
> >
> > On Tue, Nov 15, 2016 at 5:55 PM, Bill Fischofer
> > <bill.fischo...@linaro.org <mailto:bill.fischo...@linaro.org>> wrote:
> >
> >     Reposting this since it doesn't seem to have made it to the
> >     mailing list.
> >
> >     For this series:
> >
> >     Reviewed-and-tested-by: Bill Fischofer <bill.fischo...@linaro.org
> >     <mailto:bill.fischo...@linaro.org>>
> >
> >     On Tue, Nov 15, 2016 at 8:41 AM, Bill Fischofer
> >     <bill.fischo...@linaro.org <mailto:bill.fischo...@linaro.org>>
> wrote:
> >
> >         For this series:
> >
> >         Reviewed-and-tested-by: Bill Fischofer
> >         <bill.fischo...@linaro.org <mailto:bill.fischo...@linaro.org>>
> >
> >         On Thu, Nov 10, 2016 at 5:07 AM, Petri Savolainen
> >         <petri.savolai...@nokia.com
> >         <mailto:petri.savolai...@nokia.com>> wrote:
> >
> >             Pool performance is optimized by using a ring as the
> >             global buffer storage.
> >             IPC build is disabled, since it needs large modifications
> >             due to dependency to
> >             pool internals. Old pool implementation was based on locks
> >             and linked list of
> >             buffer headers. New implementation maintain a ring of
> >             buffer handles, which
> >             enable fast, burst based allocs and frees. Also ring
> >             scales better with number
> >             of cpus than a list (enq and deq operations update
> >             opposite ends of the pool).
> >
> >             L2fwd link rate (%), 2 x 40GE, 64 byte packets
> >
> >                     direct-  parallel-               atomic-
> >             cpus    orig    direct  diff    orig parall  diff    orig
> >               atomic  diff
> >             1       7 %     8 %     1 %     6 %  6 %     2 %     5.4
> >             %   5.6 %   4 %
> >             2       14 %    15 %    7 %     9 %  9 %     5 %     8 %
> >                9 %     8 %
> >             4       28 %    30 %    6 %     13 % 14 %    13 %    12 %
> >               15 %    19 %
> >             6       42 %    44 %    6 %     16 % 19 %    19 %    8 %
> >                20 %    150 %
> >             8       46 %    59 %    28 %    19 % 23 %    26 %    18 %
> >               24 %    34 %
> >             10      55 %    57 %    3 %     20 % 27 %    37 %    8 %
> >                28 %    264 %
> >             12      56 %    56 %    -1 %    22 % 31 %    43 %    7 %
> >                32 %    357 %
> >
> >             Max packet rate of NICs are reached with 10-12 cpu on
> >             direct mode. Otherwise,
> >             all cases were improved. Especially, scheduler driven
> >             cases suffered on bad
> >             pool scalability.
> >
> >             changed in v3:
> >             * rebased
> >             * ipc disabled with #ifdef
> >             * added support for multi-segment packets
> >             * API: added explicit limits for packet length in alloc
> calls
> >             * Corrected validation test and example application bugs
> >             found during
> >               segmentation implementation
> >
> >             changed in v2:
> >             * rebased to api-next branch
> >             * added a comment that ring size must be larger than
> >             number of items in it
> >             * fixed clang build issue
> >             * added parens in align macro
> >
> >             v1 reviews:
> >             Reviewed-by: Brian Brooks <brian.bro...@linaro.org
> >             <mailto:brian.bro...@linaro.org>>
> >
> >
> >
> >             Petri Savolainen (19):
> >               linux-gen: ipc: disable build of ipc pktio
> >               linux-gen: pktio: do not free zero packets
> >               linux-gen: ring: created common ring implementation
> >               linux-gen: align: added round up power of two
> >               linux-gen: pool: reimplement pool with ring
> >               linux-gen: ring: added multi enq and deq
> >               linux-gen: pool: use ring multi enq and deq operations
> >               linux-gen: pool: optimize buffer alloc
> >               linux-gen: pool: clean up pool inlines functions
> >               linux-gen: pool: ptr instead of hdl in buffer_alloc_multi
> >               test: validation: buf: test alignment
> >               test: performance: crypto: use capability to select max
> >             packet
> >               test: correctly initialize pool parameters
> >               test: validation: packet: fix bugs in tailroom and
> >             concat tests
> >               linux-gen: packet: added support for segmented packets
> >               test: validation: packet: improved multi-segment alloc
> test
> >               api: packet: added limits for packet len on alloc
> >               linux-gen: packet: remove zero len support from alloc
> >               linux-gen: packet: enable multi-segment packets
> >
> >              example/generator/odp_generator.c                 |    2 +-
> >              include/odp/api/spec/packet.h                 |    9 +-
> >              include/odp/api/spec/pool.h             |    6 +
> >              platform/linux-generic/Makefile.am <http://le.am>
> >                    |    1 +
> >              .../include/odp/api/plat/packet_types.h           |    6 +-
> >              .../include/odp/api/plat/pool_types.h             |    6 -
> >              .../linux-generic/include/odp_align_internal.h    |   34 +-
> >              .../linux-generic/include/odp_buffer_inlines.h    |  167 +-
> -
> >              .../linux-generic/include/odp_buffer_internal.h   |  120 +-
> >              .../include/odp_classification_datamodel.h        |    2 +-
> >              .../linux-generic/include/odp_config_internal.h   |   55 +-
> >              .../linux-generic/include/odp_packet_internal.h   |   87 +-
> >              platform/linux-generic/include/odp_pool_internal.h |  289
> >             +---
> >              platform/linux-generic/include/odp_ring_internal.h |  176
> +++
> >              .../linux-generic/include/odp_timer_internal.h    |    4 -
> >              platform/linux-generic/odp_buffer.c               |   22 +-
> >              platform/linux-generic/odp_classification.c       |   25 +-
> >              platform/linux-generic/odp_crypto.c               |   12 +-
> >              platform/linux-generic/odp_packet.c               |  717
> >             ++++++++--
> >              platform/linux-generic/odp_packet_io.c            |    2 +-
> >              platform/linux-generic/odp_pool.c                 | 1440
> >             ++++++++------------
> >              platform/linux-generic/odp_queue.c                |    4 +-
> >              platform/linux-generic/odp_schedule.c             |  102 +-
> >              platform/linux-generic/odp_schedule_ordered.c     |    4 +-
> >              platform/linux-generic/odp_timer.c                |    3 +-
> >              platform/linux-generic/pktio/dpdk.c               |   10 +-
> >              platform/linux-generic/pktio/ipc.c                |    3 +-
> >              platform/linux-generic/pktio/loop.c               |    2 +-
> >              platform/linux-generic/pktio/netmap.c             |   14 +-
> >              platform/linux-generic/pktio/socket.c             |   17 +-
> >              platform/linux-generic/pktio/socket_mmap.c        |   10 +-
> >              test/common_plat/performance/odp_crypto.c         |   47 +-
> >              test/common_plat/performance/odp_pktio_perf.c     |    2 +-
> >              test/common_plat/performance/odp_scheduling.c     |    8 +-
> >              test/common_plat/validation/api/buffer/buffer.c   |  113 +-
> >              test/common_plat/validation/api/crypto/crypto.c   |    2 +-
> >              test/common_plat/validation/api/packet/packet.c   |   96 +-
> >              test/common_plat/validation/api/pktio/pktio.c     |   21 +-
> >              38 files changed, 1745 insertions(+), 1895 deletions(-)
> >              create mode 100644
> >             platform/linux-generic/include/odp_ring_internal.h
> >
> >             --
> >             2.8.1
> >
> >
> >
> >

Reply via email to