Re: [lng-odp] api-next merge with ODP 2.0
I have fixed the issue. I will post the PR once the internal review is completed. Thanks, Honnappa On 16 October 2017 at 14:40, Maxim Uvarovwrote: > (gdb) bt > #0 0x7fbe66d26c37 in __GI_raise (sig=sig@entry=6) at > ../nptl/sysdeps/unix/sysv/linux/raise.c:56 > #1 0x7fbe66d2a028 in __GI_abort () at abort.c:89 > #2 0x0042e279 in odp_override_abort () at odp_weak.c:42 > #3 0x00424604 in llq_enqueue (node=, > llq=) at ./include/odp_llqueue.h:220 > #4 schedq_push (elem=, schedq=) at > schedule/scalable.c:175 > #5 _schedule (from=from@entry=0x0, ev=ev@entry=0x7fffd51030b8, > num_evts=num_evts@entry=1) at schedule/scalable.c:910 > #6 0x004249da in schedule (from=0x0, wait=0) at > schedule/scalable.c:1310 > #7 0x00406485 in flush_input_queue (pktio=, > imode=imode@entry=ODP_PKTIN_MODE_SCHED) at pktio.c:397 > #8 0x00408f00 in test_txrx > (in_mode=in_mode@entry=ODP_PKTIN_MODE_SCHED, > num_pkts=num_pkts@entry=4, > mode=mode@entry=TXRX_MODE_MULTI) at pktio.c:731 > #9 0x00409508 in pktio_test_sched_multi () at pktio.c:763 > #10 0x7fbe670c0482 in run_single_test () from > /usr/local/lib/libcunit.so.1 > #11 0x7fbe670c00b2 in run_single_suite () from > /usr/local/lib/libcunit.so.1 > #12 0x7fbe670bdd55 in CU_run_all_tests () from > /usr/local/lib/libcunit.so.1 > #13 0x7fbe670c2245 in basic_run_all_tests () from > /usr/local/lib/libcunit.so.1 > #14 0x7fbe670c1fe7 in CU_basic_run_tests () from > /usr/local/lib/libcunit.so.1 > #15 0x0040bc3b in odp_cunit_run () at odp_cunit_common.c:300 > #16 0x7fbe66d11f45 in __libc_start_main (main=0x404480 , argc=1, > argv=0x7fffd5103548, init=, > fini=, rtld_fini=, > stack_end=0x7fffd5103538) at libc-start.c:287 > #17 0x0040483d in _start () > (gdb) > > > On 16 October 2017 at 22:34, Maxim Uvarov wrote: > >> ./configure --enable-schedule-scalable >> sudo make check >> >> Test: pktio_test_sched_multi >> /include/odp_llqueue.h:269:llq_dequeue_cond():node->next >> == SENTINEL >> Aborted >> >> full log is attached. >> >> >> >> On 16 October 2017 at 19:53, Honnappa Nagarahalli < >> honnappa.nagaraha...@linaro.org> wrote: >> >>> Dmitry had taken a look at these. He mentioned they can be ignored for >>> now. >>> Thanks, >>> Honnappa >>> >>> On 16 October 2017 at 03:52, Maxim Uvarov >>> wrote: >>> bootstrap generates a lot of errors, I can reproduce them locally also https://travis-ci.org/nagarahalli/odp/jobs/287783022 On 16 October 2017 at 09:21, Maxim Uvarov wrote: > I will take a look. But please check that you added this 3 commits. > > > c16af648 travis: purge dpdk cache on version change > 3cb45201 travis: build dpdk for general cpu > 73bc4619 travis: temporary turn off dpdk caching > > In general Travis stopped due to no output. You can make tests more > verbose with make check V=1 > > But I would start with adding dpdk commits because without them result > was also unclear. > > Maxim. > > > On 16 October 2017 at 06:45, Honnappa Nagarahalli < > honnappa.nagaraha...@linaro.org> wrote: > >> Hi Maxim, >> The test cases validation/api/pktio_run.sh and >> validation/api/pktio_run_tap.sh are failing on Travis for the >> following configurations: >> >> [image: Inline images 1] >> >> I am not able to reproduce these issues on my local machine. How do I >> debug these? Is there any more log information that I can get from >> Travis? >> >> The merge is available at: https://github.com/nagarah >> alli/odp/tree/2.0-api-next-merge-11Oct2017. >> >> Thank you, >> Honnappa >> > > >>> >> >
Re: [lng-odp] [PATCH API-NEXT v1 1/8] api: pool: relax packet pool param num
On Mon, Oct 16, 2017 at 7:59 AM, Github ODP botwrote: > From: Petri Savolainen > > Added packet pool parameter 'max_num', so that 'num' parameter > can be round up by the implementation. Most implementations have > a fixed segment size, and need this flexibility. For example, > when 'len' is larger than the pool segment size, there may be > e.g. 2 x 'num' segments in the poool, and thus it would be > able to allocate 2 x 'num' small packets. When application > needs to limit maximum number of packets on a pool, it can > use the new max_num param for that. Otherwise, it would leave > 'max_num' to zero (== no limit). > > Signed-off-by: Petri Savolainen > --- > /** Email created from pull request 234 (psavol:next-pool-param) > ** https://github.com/Linaro/odp/pull/234 > ** Patch: https://github.com/Linaro/odp/pull/234.patch > ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf > ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069 > **/ > include/odp/api/spec/pool.h | 44 +++- > 1 file changed, 31 insertions(+), 13 deletions(-) > > diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h > index 221798ee8..f1c8b1158 100644 > --- a/include/odp/api/spec/pool.h > +++ b/include/odp/api/spec/pool.h > @@ -164,10 +164,11 @@ int odp_pool_capability(odp_pool_capability_t *capa); > > /** > * Pool parameters > - * Used to communicate pool creation options. > - * @note A single thread may not be able to allocate all 'num' elements > - * from the pool at any particular time, as other threads or hardware > - * blocks are allowed to keep some for caching purposes. > + * > + * A note for all pool types: a single thread may not be able to allocate all > + * 'num' elements from the pool at any particular time, as implementations > are > + * allowed to store some elements (per thread and HW engine) for caching > + * purposes. > */ > typedef struct odp_pool_param_t { > /** Pool type */ > @@ -192,17 +193,34 @@ typedef struct odp_pool_param_t { > > /** Parameters for packet pools */ > struct { > - /** The number of packets that the pool must provide > - that are packet length 'len' bytes or smaller. > - The maximum value is defined by pool capability > - pkt.max_num. */ > + /** Minimum number of 'len' byte packets. > +* > +* The pool must contain at least this many packets > +* that are 'len' bytes or smaller. An implementation > +* may round up the value, as long as the 'max_num' > +* parameter below is not violated. The maximum value > +* for this field is defined by pool capability > +* pkt.max_num. > +*/ > uint32_t num; > > - /** Minimum packet length that the pool must provide > - 'num' packets. The number of packets may be less > - than 'num' when packets are larger than 'len'. > - The maximum value is defined by pool capability > - pkt.max_len. Use 0 for default. */ > + /** Maximum number of packets. > +* > +* This is the maximum number of packets of any > length > +* that can be allocated from the pool. The maximum > +* value is defined by pool capability pkt.max_num. > +* Use 0 when there's no requirement for the maximum > +* number of packets. The default value is 0. > +*/ > + uint32_t max_num; I'd put max_num first so that num and len are adjacent parameters for consistency with how the odp_pool_pkt_subparam_t is organized. > + > + /** Minimum length of 'num' packets. > +* > +* The pool must contain at least 'num' packets up to > +* this packet length (1 ... 'len' bytes). The > maximum > +* value for this field is defined by pool capability > +* pkt.max_len. Use 0 for default. > +*/ > uint32_t len; > > /** Maximum packet length that will be allocated from >
Re: [lng-odp] [PATCH API-NEXT v1 5/8] api: pool: remove union from params
On Mon, Oct 16, 2017 at 8:00 AM, Github ODP botwrote: > From: Petri Savolainen > > Remove anonymous union from pool parameter structure. > Union makes it impossible to initialize parameters per > pool type (use other values than all zeros). This change > is not visible to applications (union was anonymous). The reason for the union was to reduce the size of the odp_pool_param_t. I'm not sure I understand the remark about making initializations impossible. Pool parameters are initialized to their default values via the odp_pool_param_init() API. Failure to use this API exposes the application to portability issues as different implementations may have different default values. If the use of anonymous unions discourages attempts to have static copies of odp_pool_param_t variables, so much the better. > > Signed-off-by: Petri Savolainen > --- > /** Email created from pull request 234 (psavol:next-pool-param) > ** https://github.com/Linaro/odp/pull/234 > ** Patch: https://github.com/Linaro/odp/pull/234.patch > ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf > ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069 > **/ > include/odp/api/spec/pool.h | 215 > ++-- > 1 file changed, 109 insertions(+), 106 deletions(-) > > diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h > index 7c9bee8ee..7b1e2d467 100644 > --- a/include/odp/api/spec/pool.h > +++ b/include/odp/api/spec/pool.h > @@ -195,112 +195,115 @@ typedef struct odp_pool_param_t { > /** Pool type */ > int type; > > - /** Variant parameters for different pool types */ > - union { > - /** Parameters for buffer pools */ > - struct { > - /** Number of buffers in the pool */ > - uint32_t num; > - > - /** Buffer size in bytes. The maximum number of bytes > - application will store in each buffer. */ > - uint32_t size; > - > - /** Minimum buffer alignment in bytes. Valid values > are > - powers of two. Use 0 for default alignment. > - Default will always be a multiple of 8. */ > - uint32_t align; > - } buf; > - > - /** Parameters for packet pools */ > - struct { > - /** Minimum number of 'len' byte packets. > -* > -* The pool must contain at least this many packets > -* that are 'len' bytes or smaller. An implementation > -* may round up the value, as long as the 'max_num' > -* parameter below is not violated. The maximum value > -* for this field is defined by pool capability > -* pkt.max_num. > -*/ > - uint32_t num; > - > - /** Maximum number of packets. > -* > -* This is the maximum number of packets of any > length > -* that can be allocated from the pool. The maximum > -* value is defined by pool capability pkt.max_num. > -* Use 0 when there's no requirement for the maximum > -* number of packets. The default value is 0. > -*/ > - uint32_t max_num; > - > - /** Minimum length of 'num' packets. > -* > -* The pool must contain at least 'num' packets up to > -* this packet length (1 ... 'len' bytes). The > maximum > -* value for this field is defined by pool capability > -* pkt.max_len. Use 0 for default. > -*/ > - uint32_t len; > - > - /** Maximum packet length that will be allocated from > - the pool. The maximum value is defined by pool > - capability pkt.max_len. Use 0 for default (the > - pool maximum). */ > - uint32_t max_len; > - > - /** Minimum number of packet data bytes that are > stored > - in the first segment of a packet. The maximum > value > - is defined by pool capability pkt.max_seg_len. > - Use 0 for default. */ > - uint32_t seg_len; > - > - /** User area size in bytes. The maximum value is > - defined by pool capability pkt.max_uarea_size. > -
Re: [lng-odp] [PATCH API-NEXT v1 2/8] api: pool: add packet pool subparameters
On Mon, Oct 16, 2017 at 7:59 AM, Github ODP botwrote: > From: Petri Savolainen > > Additional packet length and number specification gives > more information to implementation about intended packet > length distribution in the pool. This enables e.g. correct > initialization when pool implementation is based on multiple > fixed packet / segment sizes (subpools). The specification > does require subpool implementation but allows it. > > Signed-off-by: Petri Savolainen > --- > /** Email created from pull request 234 (psavol:next-pool-param) > ** https://github.com/Linaro/odp/pull/234 > ** Patch: https://github.com/Linaro/odp/pull/234.patch > ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf > ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069 > **/ > include/odp/api/spec/pool.h | 47 > + > 1 file changed, 47 insertions(+) > > diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h > index f1c8b1158..7c9bee8ee 100644 > --- a/include/odp/api/spec/pool.h > +++ b/include/odp/api/spec/pool.h > @@ -41,6 +41,9 @@ extern "C" { > * Maximum pool name length in chars including null char > */ > > +/** Maximum number of packet pool subparameters */ > +#define ODP_POOL_MAX_SUBPARAMS 7 > + > /** > * Pool capabilities > */ > @@ -134,6 +137,12 @@ typedef struct odp_pool_capability_t { > * The value of zero means that limited only by the available > * memory size for the pool. */ > uint32_t max_uarea_size; > + > + /** Maximum number of subparameters > +* > +* Maximum number of packet pool subparameters. Valid range > is > +* 0 ... ODP_POOL_MAX_SUBPARAMS. */ > + uint8_t max_num_sub; max_num_subparam or max_subparam would be clearer. "sub" by itself seems a bit too short to be intuitive. > } pkt; > > /** Timeout pool capabilities */ > @@ -163,6 +172,18 @@ typedef struct odp_pool_capability_t { > int odp_pool_capability(odp_pool_capability_t *capa); > > /** > + * Packet pool subparameters > + */ > +typedef struct odp_pool_pkt_subparam_t { > + /** Number of 'len' byte packets. */ > + uint32_t num; > + > + /** Packet length in bytes */ > + uint32_t len; > + > +} odp_pool_pkt_subparam_t; > + > +/** > * Pool parameters > * > * A note for all pool types: a single thread may not be able to allocate all > @@ -246,6 +267,32 @@ typedef struct odp_pool_param_t { > capability pkt.max_headroom. > Use zero if headroom is not needed. */ > uint32_t headroom; > + > + /** Number of subparameters > +* > +* The number of subparameter table entries used. > +* The maximum value is defined by pool > +* capability pkt.max_num_sub. The default value is > 0. > +*/ > + uint8_t num_sub; uint8_t num_subparam would be consistent with the above suggestion. > + > + /** Subparameter table > +* > +* Subparameters continue pool configuration with > +* additional packet length requirements. The first > +* table entry follows the num/len specification > above. > +* So that, sub[0].len > 'len', and sub[0].num refers > +* to packet lengths between 'len' + 1 and > sub[0].len. > +* Similarly, sub[1] follows sub[0] specification, > and > +* so on. > +* > +* Each requirement is supported separately and may > be > +* rounded up, as long as the 'max_num' parameter is > +* not violated. It's implementation specific if some > +* requirements are supported simultaneously (e.g. > +* due to subpool design). I thought these were supposed to be optimization hints, not requirements. It's OK for the application to advise the implementation about how it expects to make use of pools. It seems contrary to the spirit of ODP to make demands on how ODP implementations must organize pools internally. So, for example, the only thing we require is that the pool support a minimum of num packets of size len and may contain no more than max_num packets of any size. I don't think we can require that the pool be able to satisfy limits specified in the subparameters. > +*/ > + odp_pool_pkt_subparam_t sub[ODP_POOL_MAX_SUBPARAMS]; > } pkt; > > /** Parameters for
Re: [lng-odp] [PATCH v1] linux-gen: pool: select packet pool segment size at runtime
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page: platform/linux-generic/odp_packet.c line 241 @@ -2146,7 +2146,7 @@ odp_packet_t odp_packet_ref(odp_packet_t pkt, uint32_t offset) link_hdr->buf_hdr.seg[0].len = seg->len - seg_offset; buffer_ref_inc(seg->hdr); - for (i = 1; i < num_copy; i++) { + for (i = 1; CONFIG_PACKET_SEGS_PER_HDR > 1 && i < num_copy; i++) { Comment: Not clear why this is necessary. If `CONFIG_PACKET_SEGS_PER_HDR == 1` then `num_copy` should be 1 here so the original `for` loop will also not execute. Or am I missing something here? > Bill Fischofer(Bill-Fischofer-Linaro) wrote: > Same comment here. >> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >> Again, not sure why you want to remove the case optimization here. >>> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >>> Why not `if (CONFIG_PACKET_SEG_DISABLED || num == 1) ...` here? There was >>> an attempt to generate fast-path code if it's known at compile time that >>> multi-segment packets are not being used. https://github.com/Linaro/odp/pull/233#discussion_r144968393 updated_at 2017-10-16 21:17:08
Re: [lng-odp] [PATCH v1] linux-gen: pool: select packet pool segment size at runtime
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page: platform/linux-generic/odp_packet.c line 18 @@ -179,10 +179,7 @@ static inline void *packet_seg_data(odp_packet_hdr_t *pkt_hdr, uint32_t seg_idx) static inline uint16_t packet_last_seg(odp_packet_hdr_t *pkt_hdr) { - if (CONFIG_PACKET_MAX_SEGS == 1) - return 0; - else - return pkt_hdr->buf_hdr.segcount - 1; + return pkt_hdr->buf_hdr.segcount - 1; Comment: Again, not sure why you want to remove the case optimization here. > Bill Fischofer(Bill-Fischofer-Linaro) wrote: > Why not `if (CONFIG_PACKET_SEG_DISABLED || num == 1) ...` here? There was an > attempt to generate fast-path code if it's known at compile time that > multi-segment packets are not being used. https://github.com/Linaro/odp/pull/233#discussion_r144966370 updated_at 2017-10-16 21:17:08
Re: [lng-odp] [PATCH v1] linux-gen: pool: select packet pool segment size at runtime
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page: platform/linux-generic/odp_packet.c line 27 @@ -291,7 +288,7 @@ static inline void *packet_map(odp_packet_hdr_t *pkt_hdr, if (odp_unlikely(offset >= pkt_hdr->frame_len)) return NULL; - if (odp_likely(CONFIG_PACKET_MAX_SEGS == 1 || seg_count == 1)) { + if (odp_likely(seg_count == 1)) { Comment: Same comment here. > Bill Fischofer(Bill-Fischofer-Linaro) wrote: > Again, not sure why you want to remove the case optimization here. >> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >> Why not `if (CONFIG_PACKET_SEG_DISABLED || num == 1) ...` here? There was an >> attempt to generate fast-path code if it's known at compile time that >> multi-segment packets are not being used. https://github.com/Linaro/odp/pull/233#discussion_r144966498 updated_at 2017-10-16 21:17:08
Re: [lng-odp] [PATCH v1] linux-gen: pool: select packet pool segment size at runtime
Bill Fischofer(Bill-Fischofer-Linaro) replied on github web page: platform/linux-generic/include/odp_packet_internal.h line 9 @@ -197,7 +197,7 @@ static inline void packet_init(odp_packet_hdr_t *pkt_hdr, uint32_t len) uint32_t seg_len; int num = pkt_hdr->buf_hdr.segcount; - if (odp_likely(CONFIG_PACKET_MAX_SEGS == 1 || num == 1)) { + if (odp_likely(num == 1)) { Comment: Why not `if (CONFIG_PACKET_SEG_DISABLED || num == 1) ...` here? There was an attempt to generate fast-path code if it's known at compile time that multi-segment packets are not being used. https://github.com/Linaro/odp/pull/233#discussion_r144965894 updated_at 2017-10-16 21:17:08
[lng-odp] [PATCH v6 1/1] add Shippable CI config for Aarch64 hardware
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc ** Merge commit sha: 738c618a4f25f383f42a190abcf2c6cd6d52ce62 **/ scripts/Dockerfile | 23 shippable.yml | 62 ++ 2 files changed, 85 insertions(+) create mode 100644 scripts/Dockerfile create mode 100644 shippable.yml diff --git a/scripts/Dockerfile b/scripts/Dockerfile new file mode 100644 index 0..ab879c102 --- /dev/null +++ b/scripts/Dockerfile @@ -0,0 +1,23 @@ +FROM drydockaarch64/u16:v5.10.1 + +RUN if $(sudo update-alternatives --list gcc); \ + then sudo update-alternatives --remove-all gcc; \ +fi + +RUN sudo apt-get update && sudo apt-get install -yy \ + autoconf \ + automake \ + ccache \ + clang-3.8 \ + gcc-4.8 \ + graphviz \ + kmod \ + mscgen \ + libpcap-dev \ + libssl-dev \ + libtool \ + linux-headers-`uname -r` \ + ruby-dev + +RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 +RUN sudo ln -s /usr/bin/clang-3.8 /usr/bin/clang diff --git a/shippable.yml b/shippable.yml new file mode 100644 index 0..1c54a09be --- /dev/null +++ b/shippable.yml @@ -0,0 +1,62 @@ + +language: c + +compiler: + - gcc + - clang + +env: + matrix: +- CONF="" +# - CONF="--disable-abi-compat" +# - CONF="--enable-schedule-sp" +# - CONF="--enable-schedule-iquery" +# - CONF="--enable-dpdk-zero-copy" +- CROSS_ARCH="arm64" +# - CROSS_ARCH="armhf" CFLAGS="-march=armv7-a" +# - CROSS_ARCH="powerpc" +# - CROSS_ARCH="i386" + global: +- PLACEHOLDER="" + +build: + pre_ci: +# use Dockerfile to install additional CI dependencies +- docker build -t=odp/dev ./scripts + + # use image built in 'pre_ci' for CI job + pre_ci_boot: +image_name: odp/dev +image_tag: latest +pull: false +options: + + ci: +- echo 1000 | sudo tee /proc/sys/vm/nr_hugepages +- sudo mkdir -p /mnt/huge +- sudo mount -t hugetlbfs nodev /mnt/huge +- mkdir -p /dev/shm/odp +- export CUNIT_VERSION=2.1-3 +- | + curl -sSOL https://github.com/Linaro/libcunit/releases/download/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2 + tar -jxf *.bz2 + pushd CUnit* + libtoolize --force --copy + aclocal + autoheader + automake --add-missing --include-deps --copy + autoconf + ./configure --prefix=$HOME/cunit-install --enable-debug --enable-automated --enable-basic --enable-console --enable-examples --enable-test || cat config.log + make + sudo make install + popd +- ./bootstrap +- export PKG_CONFIG_PATH="$HOME/cunit-install/lib/pkgconfig:${PKG_CONFIG_PATH}" +- export LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" +- ./configure --disable-test-perf +- make +- sudo LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" ODP_SHM_DIR=/dev/shm/odp make check + + on_failure: +- cat config.log +- find . -name 'test-suite.log' -execdir grep -il "FAILED" {} \; -exec echo {} \; -exec cat {} \;
[lng-odp] [PATCH v6 0/1] add sample shippable.yml and Dockerfile for Aarch64 builds
Adds shippable.yml config file for testing ODP builds on Aarch64 hardware using Shippable. This CI config also uses a Dockerfile to install additional dependencies on top of the standard Shippable Aarch64 image. github /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc ** Merge commit sha: 738c618a4f25f383f42a190abcf2c6cd6d52ce62 **/ /github checkpatch.pl WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line) #15: shippable.yml | 62 ++ ERROR: trailing whitespace #47: FILE: scripts/Dockerfile:22: +RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 $ ERROR: trailing whitespace #81: FILE: shippable.yml:27: + # use image built in 'pre_ci' for CI job $ ERROR: trailing whitespace #86: FILE: shippable.yml:32: +options: $ ERROR: Missing Signed-off-by: line(s) total: 4 errors, 1 warnings, 0 checks, 85 lines checked NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or scripts/cleanfile to_send-p-000.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. /checkpatch.pl
[lng-odp] [PATCH v5 2/5] remove coverity variables
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc ** Merge commit sha: 8f4186ef21cc545334b1ebc56df86388b163ecc2 **/ shippable.yml | 21 + 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/shippable.yml b/shippable.yml index 048803752..a6a373be4 100644 --- a/shippable.yml +++ b/shippable.yml @@ -17,26 +17,7 @@ env: # - CROSS_ARCH="powerpc" # - CROSS_ARCH="i386" global: -# COVERITY_SCAN_TOKEN -# ** specific to your project ** -# Note: -# You should have a github account and travis linked travis account. -# The secure key to be filled below is the 685 character long encrypted -# token you can find as follow from your coverity dashboard -# (at https://scan.coverity.com/dashboard): -# Click on the github project (/odp) -# Click on "submit build" -# Click on "Configure Travis CI" -# Look at the COVERITY_SCAN_TOKEN in the env: global: section -# of the configuration example. -# copy the secure: below -# -- secure: "" -# -# By default Linaro CODECOV_TOKEN token is used. It's ok to use it to see -# for individual commit validation. But you you want to track tests history -# you need generated new one at https://codecov.io specific for your repo. -- CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11 +- PLACEHOLDER="" build: pre_ci:
[lng-odp] [PATCH v5 4/5] move Dockerfile to scripts folder
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc ** Merge commit sha: 8f4186ef21cc545334b1ebc56df86388b163ecc2 **/ Dockerfile => scripts/Dockerfile | 0 shippable.yml| 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename Dockerfile => scripts/Dockerfile (100%) diff --git a/Dockerfile b/scripts/Dockerfile similarity index 100% rename from Dockerfile rename to scripts/Dockerfile diff --git a/shippable.yml b/shippable.yml index a6a373be4..9bb00148f 100644 --- a/shippable.yml +++ b/shippable.yml @@ -22,7 +22,7 @@ env: build: pre_ci: # use Dockerfile to install additional CI dependencies -- docker build -t=odp/dev . +- docker build -t=odp/dev ./scripts # use image built in 'pre_ci' for CI job pre_ci_boot:
[lng-odp] [PATCH v5 5/5] move error output to on_failure section
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc ** Merge commit sha: 8f4186ef21cc545334b1ebc56df86388b163ecc2 **/ shippable.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shippable.yml b/shippable.yml index 9bb00148f..1c54a09be 100644 --- a/shippable.yml +++ b/shippable.yml @@ -57,6 +57,6 @@ build: - make - sudo LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" ODP_SHM_DIR=/dev/shm/odp make check - post_ci: + on_failure: - cat config.log - find . -name 'test-suite.log' -execdir grep -il "FAILED" {} \; -exec echo {} \; -exec cat {} \;
[lng-odp] [PATCH v5 3/5] alphabetize list of installed packages
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc ** Merge commit sha: 8f4186ef21cc545334b1ebc56df86388b163ecc2 **/ Dockerfile | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0a511b09d..ab879c102 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,18 +5,18 @@ RUN if $(sudo update-alternatives --list gcc); \ fi RUN sudo apt-get update && sudo apt-get install -yy \ - gcc-4.8 \ - clang-3.8 \ - automake \ autoconf \ + automake \ ccache \ + clang-3.8 \ + gcc-4.8 \ graphviz \ kmod \ + mscgen \ libpcap-dev \ libssl-dev \ libtool \ linux-headers-`uname -r` \ - mscgen \ ruby-dev RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10
[lng-odp] [PATCH v5 1/5] add sample shippable.yml and Dockerfile for Aarch64 builds
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc ** Merge commit sha: 8f4186ef21cc545334b1ebc56df86388b163ecc2 **/ Dockerfile| 23 + shippable.yml | 81 +++ 2 files changed, 104 insertions(+) create mode 100644 Dockerfile create mode 100644 shippable.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0..0a511b09d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM drydockaarch64/u16:v5.10.1 + +RUN if $(sudo update-alternatives --list gcc); \ + then sudo update-alternatives --remove-all gcc; \ +fi + +RUN sudo apt-get update && sudo apt-get install -yy \ + gcc-4.8 \ + clang-3.8 \ + automake \ + autoconf \ + ccache \ + graphviz \ + kmod \ + libpcap-dev \ + libssl-dev \ + libtool \ + linux-headers-`uname -r` \ + mscgen \ + ruby-dev + +RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 +RUN sudo ln -s /usr/bin/clang-3.8 /usr/bin/clang diff --git a/shippable.yml b/shippable.yml new file mode 100644 index 0..048803752 --- /dev/null +++ b/shippable.yml @@ -0,0 +1,81 @@ + +language: c + +compiler: + - gcc + - clang + +env: + matrix: +- CONF="" +# - CONF="--disable-abi-compat" +# - CONF="--enable-schedule-sp" +# - CONF="--enable-schedule-iquery" +# - CONF="--enable-dpdk-zero-copy" +- CROSS_ARCH="arm64" +# - CROSS_ARCH="armhf" CFLAGS="-march=armv7-a" +# - CROSS_ARCH="powerpc" +# - CROSS_ARCH="i386" + global: +# COVERITY_SCAN_TOKEN +# ** specific to your project ** +# Note: +# You should have a github account and travis linked travis account. +# The secure key to be filled below is the 685 character long encrypted +# token you can find as follow from your coverity dashboard +# (at https://scan.coverity.com/dashboard): +# Click on the github project (/odp) +# Click on "submit build" +# Click on "Configure Travis CI" +# Look at the COVERITY_SCAN_TOKEN in the env: global: section +# of the configuration example. +# copy the secure: below +# +- secure: "" +# +# By default Linaro CODECOV_TOKEN token is used. It's ok to use it to see +# for individual commit validation. But you you want to track tests history +# you need generated new one at https://codecov.io specific for your repo. +- CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11 + +build: + pre_ci: +# use Dockerfile to install additional CI dependencies +- docker build -t=odp/dev . + + # use image built in 'pre_ci' for CI job + pre_ci_boot: +image_name: odp/dev +image_tag: latest +pull: false +options: + + ci: +- echo 1000 | sudo tee /proc/sys/vm/nr_hugepages +- sudo mkdir -p /mnt/huge +- sudo mount -t hugetlbfs nodev /mnt/huge +- mkdir -p /dev/shm/odp +- export CUNIT_VERSION=2.1-3 +- | + curl -sSOL https://github.com/Linaro/libcunit/releases/download/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2 + tar -jxf *.bz2 + pushd CUnit* + libtoolize --force --copy + aclocal + autoheader + automake --add-missing --include-deps --copy + autoconf + ./configure --prefix=$HOME/cunit-install --enable-debug --enable-automated --enable-basic --enable-console --enable-examples --enable-test || cat config.log + make + sudo make install + popd +- ./bootstrap +- export PKG_CONFIG_PATH="$HOME/cunit-install/lib/pkgconfig:${PKG_CONFIG_PATH}" +- export LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" +- ./configure --disable-test-perf +- make +- sudo LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" ODP_SHM_DIR=/dev/shm/odp make check + + post_ci: +- cat config.log +- find . -name 'test-suite.log' -execdir grep -il "FAILED" {} \; -exec echo {} \; -exec cat {} \;
[lng-odp] [PATCH v5 0/5] add sample shippable.yml and Dockerfile for Aarch64 builds
Adds shippable.yml config file for testing ODP builds on Aarch64 hardware using Shippable. This CI config also uses a Dockerfile to install additional dependencies on top of the standard Shippable Aarch64 image. github /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ec0c3145fcafa09ae3a79875e7e07dd4794583cc ** Merge commit sha: 8f4186ef21cc545334b1ebc56df86388b163ecc2 **/ /github checkpatch.pl WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line) #16: shippable.yml | 81 +++ ERROR: trailing whitespace #48: FILE: Dockerfile:22: +RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 $ ERROR: trailing whitespace #101: FILE: shippable.yml:46: + # use image built in 'pre_ci' for CI job $ ERROR: trailing whitespace #106: FILE: shippable.yml:51: +options: $ ERROR: Missing Signed-off-by: line(s) total: 4 errors, 1 warnings, 0 checks, 104 lines checked NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or scripts/cleanfile to_send-p-000.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. ERROR: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 0 checks, 27 lines checked to_send-p-001.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. ERROR: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 0 checks, 22 lines checked to_send-p-002.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. ERROR: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 0 checks, 8 lines checked to_send-p-003.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. ERROR: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 0 checks, 7 lines checked to_send-p-004.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. /checkpatch.pl
[lng-odp] [Bug 3343] New: aarch64 timer test fails
https://bugs.linaro.org/show_bug.cgi?id=3343 Bug ID: 3343 Summary: aarch64 timer test fails Product: OpenDataPlane - linux- generic reference Version: v1.15.0.0 Hardware: Other OS: Linux Status: UNCONFIRMED Severity: enhancement Priority: --- Component: Timers Assignee: lng-odp@lists.linaro.org Reporter: maxim.uva...@linaro.org CC: lng-odp@lists.linaro.org Target Milestone: --- timer.c:563:timer_test_odp_timer_all():Number of timeouts delivered/received too late: 0 FAILED 1. timer.c:253 - CU_FAIL("Wrong status (stale) for fresh timeout") 2. timer.c:259 - CU_FAIL("odp_timeout_tick() wrong tick") https://app.shippable.com/github/ttrahan/odp/runs/2/1/console -- You are receiving this mail because: You are the assignee for the bug. You are on the CC list for the bug.
[lng-odp] [PATCH v4 2/5] remove coverity variables
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: 6f4b54ebaa9d145f3ad555f5bc3488afab42e2f3 **/ shippable.yml | 21 + 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/shippable.yml b/shippable.yml index 048803752..a6a373be4 100644 --- a/shippable.yml +++ b/shippable.yml @@ -17,26 +17,7 @@ env: # - CROSS_ARCH="powerpc" # - CROSS_ARCH="i386" global: -# COVERITY_SCAN_TOKEN -# ** specific to your project ** -# Note: -# You should have a github account and travis linked travis account. -# The secure key to be filled below is the 685 character long encrypted -# token you can find as follow from your coverity dashboard -# (at https://scan.coverity.com/dashboard): -# Click on the github project (/odp) -# Click on "submit build" -# Click on "Configure Travis CI" -# Look at the COVERITY_SCAN_TOKEN in the env: global: section -# of the configuration example. -# copy the secure: below -# -- secure: "" -# -# By default Linaro CODECOV_TOKEN token is used. It's ok to use it to see -# for individual commit validation. But you you want to track tests history -# you need generated new one at https://codecov.io specific for your repo. -- CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11 +- PLACEHOLDER="" build: pre_ci:
[lng-odp] [PATCH v4 1/5] add sample shippable.yml and Dockerfile for Aarch64 builds
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: 6f4b54ebaa9d145f3ad555f5bc3488afab42e2f3 **/ Dockerfile| 23 + shippable.yml | 81 +++ 2 files changed, 104 insertions(+) create mode 100644 Dockerfile create mode 100644 shippable.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0..0a511b09d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM drydockaarch64/u16:v5.10.1 + +RUN if $(sudo update-alternatives --list gcc); \ + then sudo update-alternatives --remove-all gcc; \ +fi + +RUN sudo apt-get update && sudo apt-get install -yy \ + gcc-4.8 \ + clang-3.8 \ + automake \ + autoconf \ + ccache \ + graphviz \ + kmod \ + libpcap-dev \ + libssl-dev \ + libtool \ + linux-headers-`uname -r` \ + mscgen \ + ruby-dev + +RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 +RUN sudo ln -s /usr/bin/clang-3.8 /usr/bin/clang diff --git a/shippable.yml b/shippable.yml new file mode 100644 index 0..048803752 --- /dev/null +++ b/shippable.yml @@ -0,0 +1,81 @@ + +language: c + +compiler: + - gcc + - clang + +env: + matrix: +- CONF="" +# - CONF="--disable-abi-compat" +# - CONF="--enable-schedule-sp" +# - CONF="--enable-schedule-iquery" +# - CONF="--enable-dpdk-zero-copy" +- CROSS_ARCH="arm64" +# - CROSS_ARCH="armhf" CFLAGS="-march=armv7-a" +# - CROSS_ARCH="powerpc" +# - CROSS_ARCH="i386" + global: +# COVERITY_SCAN_TOKEN +# ** specific to your project ** +# Note: +# You should have a github account and travis linked travis account. +# The secure key to be filled below is the 685 character long encrypted +# token you can find as follow from your coverity dashboard +# (at https://scan.coverity.com/dashboard): +# Click on the github project (/odp) +# Click on "submit build" +# Click on "Configure Travis CI" +# Look at the COVERITY_SCAN_TOKEN in the env: global: section +# of the configuration example. +# copy the secure: below +# +- secure: "" +# +# By default Linaro CODECOV_TOKEN token is used. It's ok to use it to see +# for individual commit validation. But you you want to track tests history +# you need generated new one at https://codecov.io specific for your repo. +- CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11 + +build: + pre_ci: +# use Dockerfile to install additional CI dependencies +- docker build -t=odp/dev . + + # use image built in 'pre_ci' for CI job + pre_ci_boot: +image_name: odp/dev +image_tag: latest +pull: false +options: + + ci: +- echo 1000 | sudo tee /proc/sys/vm/nr_hugepages +- sudo mkdir -p /mnt/huge +- sudo mount -t hugetlbfs nodev /mnt/huge +- mkdir -p /dev/shm/odp +- export CUNIT_VERSION=2.1-3 +- | + curl -sSOL https://github.com/Linaro/libcunit/releases/download/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2 + tar -jxf *.bz2 + pushd CUnit* + libtoolize --force --copy + aclocal + autoheader + automake --add-missing --include-deps --copy + autoconf + ./configure --prefix=$HOME/cunit-install --enable-debug --enable-automated --enable-basic --enable-console --enable-examples --enable-test || cat config.log + make + sudo make install + popd +- ./bootstrap +- export PKG_CONFIG_PATH="$HOME/cunit-install/lib/pkgconfig:${PKG_CONFIG_PATH}" +- export LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" +- ./configure --disable-test-perf +- make +- sudo LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" ODP_SHM_DIR=/dev/shm/odp make check + + post_ci: +- cat config.log +- find . -name 'test-suite.log' -execdir grep -il "FAILED" {} \; -exec echo {} \; -exec cat {} \;
[lng-odp] [PATCH v4 5/5] move error output to on_failure section
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: 6f4b54ebaa9d145f3ad555f5bc3488afab42e2f3 **/ shippable.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shippable.yml b/shippable.yml index 9bb00148f..1c54a09be 100644 --- a/shippable.yml +++ b/shippable.yml @@ -57,6 +57,6 @@ build: - make - sudo LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" ODP_SHM_DIR=/dev/shm/odp make check - post_ci: + on_failure: - cat config.log - find . -name 'test-suite.log' -execdir grep -il "FAILED" {} \; -exec echo {} \; -exec cat {} \;
[lng-odp] [PATCH v4 4/5] move Dockerfile to scripts folder
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: 6f4b54ebaa9d145f3ad555f5bc3488afab42e2f3 **/ Dockerfile => scripts/Dockerfile | 0 shippable.yml| 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename Dockerfile => scripts/Dockerfile (100%) diff --git a/Dockerfile b/scripts/Dockerfile similarity index 100% rename from Dockerfile rename to scripts/Dockerfile diff --git a/shippable.yml b/shippable.yml index a6a373be4..9bb00148f 100644 --- a/shippable.yml +++ b/shippable.yml @@ -22,7 +22,7 @@ env: build: pre_ci: # use Dockerfile to install additional CI dependencies -- docker build -t=odp/dev . +- docker build -t=odp/dev ./scripts # use image built in 'pre_ci' for CI job pre_ci_boot:
[lng-odp] [PATCH v4 3/5] alphabetize list of installed packages
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: 6f4b54ebaa9d145f3ad555f5bc3488afab42e2f3 **/ Dockerfile | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0a511b09d..ab879c102 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,18 +5,18 @@ RUN if $(sudo update-alternatives --list gcc); \ fi RUN sudo apt-get update && sudo apt-get install -yy \ - gcc-4.8 \ - clang-3.8 \ - automake \ autoconf \ + automake \ ccache \ + clang-3.8 \ + gcc-4.8 \ graphviz \ kmod \ + mscgen \ libpcap-dev \ libssl-dev \ libtool \ linux-headers-`uname -r` \ - mscgen \ ruby-dev RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10
[lng-odp] [PATCH v4 0/5] add sample shippable.yml and Dockerfile for Aarch64 builds
Adds shippable.yml config file for testing ODP builds on Aarch64 hardware using Shippable. This CI config also uses a Dockerfile to install additional dependencies on top of the standard Shippable Aarch64 image. github /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: 6f4b54ebaa9d145f3ad555f5bc3488afab42e2f3 **/ /github checkpatch.pl WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line) #16: shippable.yml | 81 +++ ERROR: trailing whitespace #48: FILE: Dockerfile:22: +RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 $ ERROR: trailing whitespace #101: FILE: shippable.yml:46: + # use image built in 'pre_ci' for CI job $ ERROR: trailing whitespace #106: FILE: shippable.yml:51: +options: $ ERROR: Missing Signed-off-by: line(s) total: 4 errors, 1 warnings, 0 checks, 104 lines checked NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or scripts/cleanfile to_send-p-000.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. ERROR: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 0 checks, 27 lines checked to_send-p-001.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. ERROR: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 0 checks, 22 lines checked to_send-p-002.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. ERROR: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 0 checks, 8 lines checked to_send-p-003.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. ERROR: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 0 checks, 7 lines checked to_send-p-004.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. /checkpatch.pl
Re: [lng-odp] api-next merge with ODP 2.0
(gdb) bt #0 0x7fbe66d26c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x7fbe66d2a028 in __GI_abort () at abort.c:89 #2 0x0042e279 in odp_override_abort () at odp_weak.c:42 #3 0x00424604 in llq_enqueue (node=, llq=) at ./include/odp_llqueue.h:220 #4 schedq_push (elem=, schedq=) at schedule/scalable.c:175 #5 _schedule (from=from@entry=0x0, ev=ev@entry=0x7fffd51030b8, num_evts=num_evts@entry=1) at schedule/scalable.c:910 #6 0x004249da in schedule (from=0x0, wait=0) at schedule/scalable.c:1310 #7 0x00406485 in flush_input_queue (pktio=, imode=imode@entry=ODP_PKTIN_MODE_SCHED) at pktio.c:397 #8 0x00408f00 in test_txrx (in_mode=in_mode@entry=ODP_PKTIN_MODE_SCHED, num_pkts=num_pkts@entry=4, mode=mode@entry=TXRX_MODE_MULTI) at pktio.c:731 #9 0x00409508 in pktio_test_sched_multi () at pktio.c:763 #10 0x7fbe670c0482 in run_single_test () from /usr/local/lib/libcunit.so.1 #11 0x7fbe670c00b2 in run_single_suite () from /usr/local/lib/libcunit.so.1 #12 0x7fbe670bdd55 in CU_run_all_tests () from /usr/local/lib/libcunit.so.1 #13 0x7fbe670c2245 in basic_run_all_tests () from /usr/local/lib/libcunit.so.1 #14 0x7fbe670c1fe7 in CU_basic_run_tests () from /usr/local/lib/libcunit.so.1 #15 0x0040bc3b in odp_cunit_run () at odp_cunit_common.c:300 #16 0x7fbe66d11f45 in __libc_start_main (main=0x404480 , argc=1, argv=0x7fffd5103548, init=, fini=, rtld_fini=, stack_end=0x7fffd5103538) at libc-start.c:287 #17 0x0040483d in _start () (gdb) On 16 October 2017 at 22:34, Maxim Uvarovwrote: > ./configure --enable-schedule-scalable > sudo make check > > Test: pktio_test_sched_multi /include/odp_llqueue.h: > 269:llq_dequeue_cond():node->next == SENTINEL > Aborted > > full log is attached. > > > > On 16 October 2017 at 19:53, Honnappa Nagarahalli < > honnappa.nagaraha...@linaro.org> wrote: > >> Dmitry had taken a look at these. He mentioned they can be ignored for >> now. >> Thanks, >> Honnappa >> >> On 16 October 2017 at 03:52, Maxim Uvarov >> wrote: >> >>> bootstrap generates a lot of errors, I can reproduce them locally also >>> >>> https://travis-ci.org/nagarahalli/odp/jobs/287783022 >>> >>> On 16 October 2017 at 09:21, Maxim Uvarov >>> wrote: >>> I will take a look. But please check that you added this 3 commits. c16af648 travis: purge dpdk cache on version change 3cb45201 travis: build dpdk for general cpu 73bc4619 travis: temporary turn off dpdk caching In general Travis stopped due to no output. You can make tests more verbose with make check V=1 But I would start with adding dpdk commits because without them result was also unclear. Maxim. On 16 October 2017 at 06:45, Honnappa Nagarahalli < honnappa.nagaraha...@linaro.org> wrote: > Hi Maxim, > The test cases validation/api/pktio_run.sh and > validation/api/pktio_run_tap.sh are failing on Travis for the > following configurations: > > [image: Inline images 1] > > I am not able to reproduce these issues on my local machine. How do I > debug these? Is there any more log information that I can get from Travis? > > The merge is available at: https://github.com/nagarah > alli/odp/tree/2.0-api-next-merge-11Oct2017. > > Thank you, > Honnappa > >>> >> >
Re: [lng-odp] api-next merge with ODP 2.0
./configure --enable-schedule-scalable sudo make check Test: pktio_test_sched_multi /include/odp_llqueue.h:269:llq_dequeue_cond():node->next == SENTINEL Aborted full log is attached. On 16 October 2017 at 19:53, Honnappa Nagarahalli < honnappa.nagaraha...@linaro.org> wrote: > Dmitry had taken a look at these. He mentioned they can be ignored for now. > Thanks, > Honnappa > > On 16 October 2017 at 03:52, Maxim Uvarovwrote: > >> bootstrap generates a lot of errors, I can reproduce them locally also >> >> https://travis-ci.org/nagarahalli/odp/jobs/287783022 >> >> On 16 October 2017 at 09:21, Maxim Uvarov >> wrote: >> >>> I will take a look. But please check that you added this 3 commits. >>> >>> >>> c16af648 travis: purge dpdk cache on version change >>> 3cb45201 travis: build dpdk for general cpu >>> 73bc4619 travis: temporary turn off dpdk caching >>> >>> In general Travis stopped due to no output. You can make tests more >>> verbose with make check V=1 >>> >>> But I would start with adding dpdk commits because without them result >>> was also unclear. >>> >>> Maxim. >>> >>> >>> On 16 October 2017 at 06:45, Honnappa Nagarahalli < >>> honnappa.nagaraha...@linaro.org> wrote: >>> Hi Maxim, The test cases validation/api/pktio_run.sh and validation/api/pktio_run_tap.sh are failing on Travis for the following configurations: [image: Inline images 1] I am not able to reproduce these issues on my local machine. How do I debug these? Is there any more log information that I can get from Travis? The merge is available at: https://github.com/nagarah alli/odp/tree/2.0-api-next-merge-11Oct2017. Thank you, Honnappa >>> >>> >> > running with pktio_main: pktio: using 'loop' device _ishm.c:881:_odp_ishm_reserve():No huge pages, fall back to normal pages. check: /proc/sys/vm/nr_hugepages. HW time counter freq: 2494233922 hz PKTIO: initialized ipc interface. PKTIO: initialized loop interface. PKTIO: initialized socket mmsg,use export ODP_PKTIO_DISABLE_SOCKET_MMSG=1 to disable. PKTIO: initialized socket mmap, use export ODP_PKTIO_DISABLE_SOCKET_MMAP=1 to disable. PKTIO: initialized pcap interface. ODP API version: 1.15.0 ODP implementation name:linux-generic ODP implementation version: linux-generic 1.15.0-0 (v1.15.0) 1.15.0.0 CUnit - A unit testing framework for C - Version 2.1-3 http://cunit.sourceforge.net/ No interfaces specified, using default "loop". Suite: Packet I/O Unsegmented Test: pktio_test_open ...pktio/socket.c:513:sock_setup_pkt():ioctl(SIOCGIFINDEX): No such device: "nothere". pktio/socket.c:118:mac_addr_get_fd():ioctl(SIOCGIFHWADDR): No such device: "nothere". odp_packet_io.c:204:setup_pktio_entry():Unable to init any I/O type. passed Test: pktio_test_lookup ...passed Test: pktio_test_index ...passed Test: pktio_test_print ... pktio handle1 name loop type loop state opened mac 02:e9:34:80:73:01 mtu 2147483647 promisc no max input queues 1 max output queues 1 passed Test: pktio_test_pktio_config ...passed Test: pktio_test_info ...pktio 0 name loop driver loop passed Test: pktio_test_pktin_queue_config_direct ...passed Test: pktio_test_pktin_queue_config_sched ...passed Test: pktio_test_pktin_queue_config_queue ...passed Test: pktio_test_pktout_queue_config ...passed Test: pktio_test_plain_queue ...passed Test: pktio_test_plain_multi ...passed Test: pktio_test_sched_queue ...passed Test: pktio_test_sched_multi ...passed Test: pktio_test_recv ...passed Test: pktio_test_recv_multi ...passed Test: pktio_test_recv_queue ...passed Test: pktio_test_recv_tmo ...passed Test: pktio_test_recv_mq_tmo ...passed Test: pktio_test_recv_mtu ...passed Test: pktio_test_mtu ... 2147483647 passed Test: pktio_test_promisc ...passed Test: pktio_test_mac ...testing mac for loop 2:E9:34:80:73:1 mac address set not supported for loop! passed Test: pktio_test_start_stop ...passed Test: pktio_test_recv_on_wonly ...passed Test: pktio_test_send_on_ronly ...passed Test: pktio_test_plain_multi_event ...passed Test: pktio_test_sched_multi_event ...passed Test: pktio_test_recv_multi_event ...passed Test: pktio_test_statistics_counters ...passed Test: pktio_test_pktin_ts ...passedNo interfaces specified, using default "loop". Suite: Packet I/O Segmented Test: pktio_test_plain_queue ...passed Test: pktio_test_plain_multi ...passed Test: pktio_test_sched_queue ...passed Test: pktio_test_sched_multi ...passed Test: pktio_test_recv ...passed Test: pktio_test_recv_multi ...passed Test: pktio_test_recv_mtu ...passedNo interfaces specified, using default "loop". Suite: Packet parser Test: parser_test_arp ...passed Test: parser_test_ipv4_icmp ...passed Test: parser_test_ipv4_tcp
[lng-odp] [Linaro/odp] 209c3a: .gitignore: ignore only libtool m4 files
Branch: refs/heads/master Home: https://github.com/Linaro/odp Commit: 209c3a2e255de7aa82c4f08f8abb41c04bb3d86d https://github.com/Linaro/odp/commit/209c3a2e255de7aa82c4f08f8abb41c04bb3d86d Author: Dmitry Eremin-SolenikovDate: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: M .gitignore Log Message: --- .gitignore: ignore only libtool m4 files Signed-off-by: Dmitry Eremin-Solenikov Reviewed-by: Bill Fischofer Signed-off-by: Maxim Uvarov Commit: 7dc5f21c7ca88e6c19d34dc1933eddef190add7a https://github.com/Linaro/odp/commit/7dc5f21c7ca88e6c19d34dc1933eddef190add7a Author: Dmitry Eremin-Solenikov Date: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: A m4/odp_openssl.m4 M platform/linux-generic/m4/configure.m4 R platform/linux-generic/m4/odp_openssl.m4 Log Message: --- m4: move openssl check to common place Signed-off-by: Dmitry Eremin-Solenikov Reviewed-by: Bill Fischofer Signed-off-by: Maxim Uvarov Commit: d0d0bd9787ee43db39ad4e7e9b224e70664d5663 https://github.com/Linaro/odp/commit/d0d0bd9787ee43db39ad4e7e9b224e70664d5663 Author: Dmitry Eremin-Solenikov Date: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: A m4/odp_timer.m4 M platform/linux-generic/m4/configure.m4 R platform/linux-generic/m4/odp_timer.m4 Log Message: --- m4: move timer_create check to common place Signed-off-by: Dmitry Eremin-Solenikov Reviewed-by: Bill Fischofer Signed-off-by: Maxim Uvarov Commit: e02f5545f97f90a75f2595bb1e9068f64bff133e https://github.com/Linaro/odp/commit/e02f5545f97f90a75f2595bb1e9068f64bff133e Author: Dmitry Eremin-Solenikov Date: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: A m4/odp_visibility.m4 M platform/linux-generic/m4/configure.m4 Log Message: --- m4: move -fvisibility=hidden check to separate file Signed-off-by: Dmitry Eremin-Solenikov Reviewed-by: Bill Fischofer Signed-off-by: Maxim Uvarov Commit: c657f3f3d9b2c5832b42a4344a526bf7d0c76a5d https://github.com/Linaro/odp/commit/c657f3f3d9b2c5832b42a4344a526bf7d0c76a5d Author: Dmitry Eremin-Solenikov Date: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: A m4/odp_atomic.m4 M platform/linux-generic/m4/configure.m4 Log Message: --- m4: move atomic checks to separate file While we are at it, run 128bit atomic check only if __int128 is available for the target platform. Signed-off-by: Dmitry Eremin-Solenikov Reviewed-by: Bill Fischofer Signed-off-by: Maxim Uvarov Commit: adaa3b434086346402999d09c2223681aba4b1a4 https://github.com/Linaro/odp/commit/adaa3b434086346402999d09c2223681aba4b1a4 Author: Dmitry Eremin-Solenikov Date: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: M example/l3fwd/Makefile.am M example/l3fwd/odp_l3fwd.c Log Message: --- example: switch odp_l3fwd from test_debug.h to example_debug.h Signed-off-by: Dmitry Eremin-Solenikov Reviewed-by: Bill Fischofer Signed-off-by: Maxim Uvarov Commit: 7d162deafa22535f8fab9ea39dcb4e3e0e7850b0 https://github.com/Linaro/odp/commit/7d162deafa22535f8fab9ea39dcb4e3e0e7850b0 Author: Dmitry Eremin-Solenikov Date: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: M test/common_plat/Makefile.am M test/common_plat/common/Makefile.am A test/common_plat/common/run-test.sh M test/linux-generic/Makefile.am R test/linux-generic/run-test Log Message: --- test: move run-test script to test_common dir Signed-off-by: Dmitry Eremin-Solenikov Reviewed-by: Bill Fischofer Signed-off-by: Maxim Uvarov Commit: 6a119c79b59de3c8ee9e51f3ceba9d26f24c3ce4 https://github.com/Linaro/odp/commit/6a119c79b59de3c8ee9e51f3ceba9d26f24c3ce4 Author: Dmitry Eremin-Solenikov Date: 2017-10-16 (Mon, 16 Oct 2017) Changed paths: M test/common_plat/validation/api/Makefile.am M test/linux-generic/Makefile.am Log Message: --- test: move common validation tests handling to theirs own Makefile.am Stop calling common_plat
[lng-odp] [PATCH v3 2/4] remove coverity variables
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: dfd2ae6b5630b49c12ab2d4579a5e5916777be1f **/ shippable.yml | 21 + 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/shippable.yml b/shippable.yml index 048803752..a6a373be4 100644 --- a/shippable.yml +++ b/shippable.yml @@ -17,26 +17,7 @@ env: # - CROSS_ARCH="powerpc" # - CROSS_ARCH="i386" global: -# COVERITY_SCAN_TOKEN -# ** specific to your project ** -# Note: -# You should have a github account and travis linked travis account. -# The secure key to be filled below is the 685 character long encrypted -# token you can find as follow from your coverity dashboard -# (at https://scan.coverity.com/dashboard): -# Click on the github project (/odp) -# Click on "submit build" -# Click on "Configure Travis CI" -# Look at the COVERITY_SCAN_TOKEN in the env: global: section -# of the configuration example. -# copy the secure: below -# -- secure: "" -# -# By default Linaro CODECOV_TOKEN token is used. It's ok to use it to see -# for individual commit validation. But you you want to track tests history -# you need generated new one at https://codecov.io specific for your repo. -- CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11 +- PLACEHOLDER="" build: pre_ci:
[lng-odp] [PATCH v3 1/4] add sample shippable.yml and Dockerfile for Aarch64 builds
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: dfd2ae6b5630b49c12ab2d4579a5e5916777be1f **/ Dockerfile| 23 + shippable.yml | 81 +++ 2 files changed, 104 insertions(+) create mode 100644 Dockerfile create mode 100644 shippable.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0..0a511b09d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM drydockaarch64/u16:v5.10.1 + +RUN if $(sudo update-alternatives --list gcc); \ + then sudo update-alternatives --remove-all gcc; \ +fi + +RUN sudo apt-get update && sudo apt-get install -yy \ + gcc-4.8 \ + clang-3.8 \ + automake \ + autoconf \ + ccache \ + graphviz \ + kmod \ + libpcap-dev \ + libssl-dev \ + libtool \ + linux-headers-`uname -r` \ + mscgen \ + ruby-dev + +RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 +RUN sudo ln -s /usr/bin/clang-3.8 /usr/bin/clang diff --git a/shippable.yml b/shippable.yml new file mode 100644 index 0..048803752 --- /dev/null +++ b/shippable.yml @@ -0,0 +1,81 @@ + +language: c + +compiler: + - gcc + - clang + +env: + matrix: +- CONF="" +# - CONF="--disable-abi-compat" +# - CONF="--enable-schedule-sp" +# - CONF="--enable-schedule-iquery" +# - CONF="--enable-dpdk-zero-copy" +- CROSS_ARCH="arm64" +# - CROSS_ARCH="armhf" CFLAGS="-march=armv7-a" +# - CROSS_ARCH="powerpc" +# - CROSS_ARCH="i386" + global: +# COVERITY_SCAN_TOKEN +# ** specific to your project ** +# Note: +# You should have a github account and travis linked travis account. +# The secure key to be filled below is the 685 character long encrypted +# token you can find as follow from your coverity dashboard +# (at https://scan.coverity.com/dashboard): +# Click on the github project (/odp) +# Click on "submit build" +# Click on "Configure Travis CI" +# Look at the COVERITY_SCAN_TOKEN in the env: global: section +# of the configuration example. +# copy the secure: below +# +- secure: "" +# +# By default Linaro CODECOV_TOKEN token is used. It's ok to use it to see +# for individual commit validation. But you you want to track tests history +# you need generated new one at https://codecov.io specific for your repo. +- CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11 + +build: + pre_ci: +# use Dockerfile to install additional CI dependencies +- docker build -t=odp/dev . + + # use image built in 'pre_ci' for CI job + pre_ci_boot: +image_name: odp/dev +image_tag: latest +pull: false +options: + + ci: +- echo 1000 | sudo tee /proc/sys/vm/nr_hugepages +- sudo mkdir -p /mnt/huge +- sudo mount -t hugetlbfs nodev /mnt/huge +- mkdir -p /dev/shm/odp +- export CUNIT_VERSION=2.1-3 +- | + curl -sSOL https://github.com/Linaro/libcunit/releases/download/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2 + tar -jxf *.bz2 + pushd CUnit* + libtoolize --force --copy + aclocal + autoheader + automake --add-missing --include-deps --copy + autoconf + ./configure --prefix=$HOME/cunit-install --enable-debug --enable-automated --enable-basic --enable-console --enable-examples --enable-test || cat config.log + make + sudo make install + popd +- ./bootstrap +- export PKG_CONFIG_PATH="$HOME/cunit-install/lib/pkgconfig:${PKG_CONFIG_PATH}" +- export LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" +- ./configure --disable-test-perf +- make +- sudo LD_LIBRARY_PATH="$HOME/cunit-install/lib:$LD_LIBRARY_PATH" ODP_SHM_DIR=/dev/shm/odp make check + + post_ci: +- cat config.log +- find . -name 'test-suite.log' -execdir grep -il "FAILED" {} \; -exec echo {} \; -exec cat {} \;
[lng-odp] [PATCH v3 3/4] alphabetize list of installed packages
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: dfd2ae6b5630b49c12ab2d4579a5e5916777be1f **/ Dockerfile | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0a511b09d..ab879c102 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,18 +5,18 @@ RUN if $(sudo update-alternatives --list gcc); \ fi RUN sudo apt-get update && sudo apt-get install -yy \ - gcc-4.8 \ - clang-3.8 \ - automake \ autoconf \ + automake \ ccache \ + clang-3.8 \ + gcc-4.8 \ graphviz \ kmod \ + mscgen \ libpcap-dev \ libssl-dev \ libtool \ linux-headers-`uname -r` \ - mscgen \ ruby-dev RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10
[lng-odp] [PATCH v3 4/4] move Dockerfile to scripts folder
From: Tom Trahan--- /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: dfd2ae6b5630b49c12ab2d4579a5e5916777be1f **/ Dockerfile => scripts/Dockerfile | 0 shippable.yml| 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename Dockerfile => scripts/Dockerfile (100%) diff --git a/Dockerfile b/scripts/Dockerfile similarity index 100% rename from Dockerfile rename to scripts/Dockerfile diff --git a/shippable.yml b/shippable.yml index a6a373be4..9bb00148f 100644 --- a/shippable.yml +++ b/shippable.yml @@ -22,7 +22,7 @@ env: build: pre_ci: # use Dockerfile to install additional CI dependencies -- docker build -t=odp/dev . +- docker build -t=odp/dev ./scripts # use image built in 'pre_ci' for CI job pre_ci_boot:
[lng-odp] [PATCH v3 0/4] add sample shippable.yml and Dockerfile for Aarch64 builds
Adds shippable.yml config file for testing ODP builds on Aarch64 hardware using Shippable. This CI config also uses a Dockerfile to install additional dependencies on top of the standard Shippable Aarch64 image. github /** Email created from pull request 231 (ttrahan:master) ** https://github.com/Linaro/odp/pull/231 ** Patch: https://github.com/Linaro/odp/pull/231.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: dfd2ae6b5630b49c12ab2d4579a5e5916777be1f **/ /github checkpatch.pl WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line) #16: shippable.yml | 81 +++ ERROR: trailing whitespace #48: FILE: Dockerfile:22: +RUN sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 $ ERROR: trailing whitespace #101: FILE: shippable.yml:46: + # use image built in 'pre_ci' for CI job $ ERROR: trailing whitespace #106: FILE: shippable.yml:51: +options: $ ERROR: Missing Signed-off-by: line(s) total: 4 errors, 1 warnings, 0 checks, 104 lines checked NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or scripts/cleanfile to_send-p-000.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. ERROR: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 0 checks, 27 lines checked to_send-p-001.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. ERROR: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 0 checks, 22 lines checked to_send-p-002.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. ERROR: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 0 checks, 8 lines checked to_send-p-003.patch has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. /checkpatch.pl
Re: [lng-odp] api-next merge with ODP 2.0
Dmitry had taken a look at these. He mentioned they can be ignored for now. Thanks, Honnappa On 16 October 2017 at 03:52, Maxim Uvarovwrote: > bootstrap generates a lot of errors, I can reproduce them locally also > > https://travis-ci.org/nagarahalli/odp/jobs/287783022 > > On 16 October 2017 at 09:21, Maxim Uvarov wrote: > >> I will take a look. But please check that you added this 3 commits. >> >> >> c16af648 travis: purge dpdk cache on version change >> 3cb45201 travis: build dpdk for general cpu >> 73bc4619 travis: temporary turn off dpdk caching >> >> In general Travis stopped due to no output. You can make tests more >> verbose with make check V=1 >> >> But I would start with adding dpdk commits because without them result >> was also unclear. >> >> Maxim. >> >> >> On 16 October 2017 at 06:45, Honnappa Nagarahalli < >> honnappa.nagaraha...@linaro.org> wrote: >> >>> Hi Maxim, >>> The test cases validation/api/pktio_run.sh and >>> validation/api/pktio_run_tap.sh are failing on Travis for the following >>> configurations: >>> >>> [image: Inline images 1] >>> >>> I am not able to reproduce these issues on my local machine. How do I >>> debug these? Is there any more log information that I can get from Travis? >>> >>> The merge is available at: https://github.com/nagarah >>> alli/odp/tree/2.0-api-next-merge-11Oct2017. >>> >>> Thank you, >>> Honnappa >>> >> >> >
Re: [lng-odp] api-next merge with ODP 2.0
On 16 October 2017 at 01:21, Maxim Uvarovwrote: > I will take a look. But please check that you added this 3 commits. > > > c16af648 travis: purge dpdk cache on version change > This is not in the merge. The following 2 are in the merge > 3cb45201 travis: build dpdk for general cpu > 73bc4619 travis: temporary turn off dpdk caching > > In general Travis stopped due to no output. You can make tests more > verbose with make check V=1 > > But I would start with adding dpdk commits because without them result was > also unclear. > > Maxim. > > > On 16 October 2017 at 06:45, Honnappa Nagarahalli < > honnappa.nagaraha...@linaro.org> wrote: > >> Hi Maxim, >> The test cases validation/api/pktio_run.sh and >> validation/api/pktio_run_tap.sh are failing on Travis for the following >> configurations: >> >> [image: Inline images 1] >> >> I am not able to reproduce these issues on my local machine. How do I >> debug these? Is there any more log information that I can get from Travis? >> >> The merge is available at: https://github.com/nagarah >> alli/odp/tree/2.0-api-next-merge-11Oct2017. >> >> Thank you, >> Honnappa >> > >
[lng-odp] [PATCH API-NEXT v2 1/1] api: ipsec: return maximum antireplay window size via capability
From: Dmitry Eremin-SolenikovReport maximum possible antireplay window size to application. Othersise it can try requesting arbitrary window sizes not supported by hardware/implementation. Signed-off-by: Dmitry Eremin-Solenikov --- /** Email created from pull request 230 (lumag:ipsec-rws-cap) ** https://github.com/Linaro/odp/pull/230 ** Patch: https://github.com/Linaro/odp/pull/230.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: aa5389cca5b69f6ad8a339b2ee3bd480c152010f **/ include/odp/api/spec/ipsec.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/odp/api/spec/ipsec.h b/include/odp/api/spec/ipsec.h index 3bd80b266..ddcdf75bb 100644 --- a/include/odp/api/spec/ipsec.h +++ b/include/odp/api/spec/ipsec.h @@ -282,6 +282,9 @@ typedef struct odp_ipsec_capability_t { * be used for many SAs. */ uint32_t max_queues; + /** Maximum anti-replay window size. */ + uint32_t max_antireplay_ws; + /** Supported cipher algorithms */ odp_crypto_cipher_algos_t ciphers;
[lng-odp] [PATCH API-NEXT v2 0/1] api: ipsec: return maximum antireplay window size via capability
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsoleni...@linaro.org github /** Email created from pull request 230 (lumag:ipsec-rws-cap) ** https://github.com/Linaro/odp/pull/230 ** Patch: https://github.com/Linaro/odp/pull/230.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: aa5389cca5b69f6ad8a339b2ee3bd480c152010f **/ /github checkpatch.pl total: 0 errors, 0 warnings, 0 checks, 9 lines checked to_send-p-000.patch has no obvious style problems and is ready for submission. /checkpatch.pl
[lng-odp] [PATCH v1 5/5] validation: packet: adjust segmented test packet length
From: Matias EloAdjust 'segmented_packet_len' so that the test packet pool is able to allocate at least PACKET_POOL_NUM_SEG possibly segmented test packets. Several validation tests allocate new packets, so it is not enough to be able allocate a single segmented packet. Signed-off-by: Matias Elo --- /** Email created from pull request 233 (matiaselo:dev/pool_dyn_seg_len) ** https://github.com/Linaro/odp/pull/233 ** Patch: https://github.com/Linaro/odp/pull/233.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: 37a47554abc964ca3ddfe9eadca3d766d91c071d **/ test/common_plat/validation/api/packet/packet.c | 29 - 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/test/common_plat/validation/api/packet/packet.c b/test/common_plat/validation/api/packet/packet.c index 641654642..bf8f5f442 100644 --- a/test/common_plat/validation/api/packet/packet.c +++ b/test/common_plat/validation/api/packet/packet.c @@ -16,6 +16,11 @@ #define PACKET_TAILROOM_RESERVE 4 /* Number of packets in the test packet pool */ #define PACKET_POOL_NUM 300 +/* Number of large, possibly segmented, test packets */ +#define PACKET_POOL_NUM_SEG 4 +ODP_STATIC_ASSERT(PACKET_POOL_NUM_SEG > 1 && + PACKET_POOL_NUM_SEG < PACKET_POOL_NUM, + "Invalid PACKET_POOL_NUM_SEG value"); static odp_pool_t packet_pool, packet_pool_no_uarea, packet_pool_double_uarea; static uint32_t packet_len; @@ -108,11 +113,13 @@ int packet_suite_init(void) { odp_pool_param_t params; odp_pool_capability_t capa; + odp_packet_t pkt_tbl[PACKET_POOL_NUM_SEG]; struct udata_struct *udat; uint32_t udat_size; uint8_t data = 0; uint32_t i; uint32_t num = PACKET_POOL_NUM; + int ret; if (odp_pool_capability() < 0) { printf("pool_capability failed\n"); @@ -178,14 +185,26 @@ int packet_suite_init(void) data++; } - /* Try to allocate the largest possible packet to see + /* Try to allocate PACKET_POOL_NUM_SEG largest possible packets to see * if segmentation is supported */ do { - segmented_test_packet = odp_packet_alloc(packet_pool, -segmented_packet_len); - if (segmented_test_packet == ODP_PACKET_INVALID) + ret = odp_packet_alloc_multi(packet_pool, segmented_packet_len, +pkt_tbl, PACKET_POOL_NUM_SEG); + if (ret != PACKET_POOL_NUM_SEG) { + if (ret > 0) + odp_packet_free_multi(pkt_tbl, ret); segmented_packet_len -= capa.pkt.min_seg_len; - } while (segmented_test_packet == ODP_PACKET_INVALID); + continue; + } + } while (ret != PACKET_POOL_NUM_SEG && +segmented_packet_len > capa.pkt.min_seg_len); + + if (ret != PACKET_POOL_NUM_SEG) { + printf("packet alloc failed\n"); + return -1; + } + segmented_test_packet = pkt_tbl[0]; + odp_packet_free_multi(_tbl[1], PACKET_POOL_NUM_SEG - 1); if (odp_packet_is_valid(test_packet) == 0 || odp_packet_is_valid(segmented_test_packet) == 0) {
[lng-odp] [PATCH v1 2/5] linux-gen: pool: modify packet pool config defines
From: Matias EloUse separate defines for the maximum number of segments per packet (CONFIG_PACKET_MAX_SEGS) and the number of segments stored in a packet header (CONFIG_PACKET_SEGS_PER_HDR). A separate define is also added for the maximum packet length. Signed-off-by: Matias Elo --- /** Email created from pull request 233 (matiaselo:dev/pool_dyn_seg_len) ** https://github.com/Linaro/odp/pull/233 ** Patch: https://github.com/Linaro/odp/pull/233.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: 37a47554abc964ca3ddfe9eadca3d766d91c071d **/ .../linux-generic/include/odp_buffer_internal.h| 6 ++-- .../linux-generic/include/odp_config_internal.h| 17 - .../linux-generic/include/odp_packet_internal.h| 2 +- platform/linux-generic/odp_packet.c| 40 +- platform/linux-generic/odp_pool.c | 6 ++-- 5 files changed, 39 insertions(+), 32 deletions(-) diff --git a/platform/linux-generic/include/odp_buffer_internal.h b/platform/linux-generic/include/odp_buffer_internal.h index 5d40303b3..aefb13527 100644 --- a/platform/linux-generic/include/odp_buffer_internal.h +++ b/platform/linux-generic/include/odp_buffer_internal.h @@ -71,7 +71,7 @@ struct odp_buffer_hdr_t { /* --- 40 bytes --- */ /* Segments */ - seg_entry_t seg[CONFIG_PACKET_MAX_SEGS]; + seg_entry_t seg[CONFIG_PACKET_SEGS_PER_HDR]; /* Burst counts */ uint8_t burst_num; @@ -122,8 +122,8 @@ struct odp_buffer_hdr_t { uint8_t data[0]; } ODP_ALIGNED_CACHE; -ODP_STATIC_ASSERT(CONFIG_PACKET_MAX_SEGS < 256, - "CONFIG_PACKET_MAX_SEGS_TOO_LARGE"); +ODP_STATIC_ASSERT(CONFIG_PACKET_SEGS_PER_HDR < 256, + "CONFIG_PACKET_SEGS_PER_HDR_TOO_LARGE"); ODP_STATIC_ASSERT(BUFFER_BURST_SIZE < 256, "BUFFER_BURST_SIZE_TOO_LARGE"); diff --git a/platform/linux-generic/include/odp_config_internal.h b/platform/linux-generic/include/odp_config_internal.h index a798851fb..598f26e1c 100644 --- a/platform/linux-generic/include/odp_config_internal.h +++ b/platform/linux-generic/include/odp_config_internal.h @@ -75,7 +75,22 @@ extern "C" { /* * Maximum number of segments per packet */ -#define CONFIG_PACKET_MAX_SEGS 6 +#define CONFIG_PACKET_MAX_SEGS 255 + +/* + * Packet segmentation disabled + */ +#define CONFIG_PACKET_SEG_DISABLED (CONFIG_PACKET_MAX_SEGS == 1) + +/* + * Number of segments stored in a packet header + */ +#define CONFIG_PACKET_SEGS_PER_HDR 6 + +/* + * Maximum packet data length in bytes + */ +#define CONFIG_PACKET_MAX_LEN (64 * 1024) /* * Maximum packet segment size including head- and tailrooms diff --git a/platform/linux-generic/include/odp_packet_internal.h b/platform/linux-generic/include/odp_packet_internal.h index 15cb53f41..97dd533d3 100644 --- a/platform/linux-generic/include/odp_packet_internal.h +++ b/platform/linux-generic/include/odp_packet_internal.h @@ -197,7 +197,7 @@ static inline void packet_init(odp_packet_hdr_t *pkt_hdr, uint32_t len) uint32_t seg_len; int num = pkt_hdr->buf_hdr.segcount; - if (odp_likely(CONFIG_PACKET_MAX_SEGS == 1 || num == 1)) { + if (odp_likely(num == 1)) { seg_len = len; pkt_hdr->buf_hdr.seg[0].len = len; } else { diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c index c330c629e..bc71ee166 100644 --- a/platform/linux-generic/odp_packet.c +++ b/platform/linux-generic/odp_packet.c @@ -179,10 +179,7 @@ static inline void *packet_seg_data(odp_packet_hdr_t *pkt_hdr, uint32_t seg_idx) static inline uint16_t packet_last_seg(odp_packet_hdr_t *pkt_hdr) { - if (CONFIG_PACKET_MAX_SEGS == 1) - return 0; - else - return pkt_hdr->buf_hdr.segcount - 1; + return pkt_hdr->buf_hdr.segcount - 1; } static inline uint32_t packet_first_seg_len(odp_packet_hdr_t *pkt_hdr) @@ -291,7 +288,7 @@ static inline void *packet_map(odp_packet_hdr_t *pkt_hdr, if (odp_unlikely(offset >= pkt_hdr->frame_len)) return NULL; - if (odp_likely(CONFIG_PACKET_MAX_SEGS == 1 || seg_count == 1)) { + if (odp_likely(seg_count == 1)) { addr = pkt_hdr->buf_hdr.seg[0].data + offset; len = pkt_hdr->buf_hdr.seg[0].len - offset; } else { @@ -347,7 +344,7 @@ static inline void link_segments(odp_packet_hdr_t *pkt_hdr[], int num) while (1) { hdr = pkt_hdr[cur]; - for (i = 0; i < CONFIG_PACKET_MAX_SEGS; i++) { + for (i = 0; i < CONFIG_PACKET_SEGS_PER_HDR; i++) { odp_buffer_hdr_t *buf_hdr; buf_hdr = _hdr[cur]->buf_hdr; @@ -365,7 +362,7 @@ static inline void link_segments(odp_packet_hdr_t *pkt_hdr[], int num) } } - hdr->buf_hdr.num_seg
[lng-odp] [PATCH v1 4/5] linux-gen: pool: select packet pool segment size at runtime
From: Matias EloUse stored packet pool segment length (pool_t.seg_len) instead of a define. This enables creating packet pools with different segment sizes. Signed-off-by: Matias Elo --- /** Email created from pull request 233 (matiaselo:dev/pool_dyn_seg_len) ** https://github.com/Linaro/odp/pull/233 ** Patch: https://github.com/Linaro/odp/pull/233.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: 37a47554abc964ca3ddfe9eadca3d766d91c071d **/ .../linux-generic/include/odp_packet_internal.h| 6 ++-- platform/linux-generic/odp_packet.c| 33 +++--- platform/linux-generic/odp_pool.c | 27 -- platform/linux-generic/pktio/netmap.c | 2 +- 4 files changed, 44 insertions(+), 24 deletions(-) diff --git a/platform/linux-generic/include/odp_packet_internal.h b/platform/linux-generic/include/odp_packet_internal.h index 97dd533d3..5a050d9b9 100644 --- a/platform/linux-generic/include/odp_packet_internal.h +++ b/platform/linux-generic/include/odp_packet_internal.h @@ -194,6 +194,7 @@ static inline seg_entry_t *seg_entry_last(odp_packet_hdr_t *hdr) */ static inline void packet_init(odp_packet_hdr_t *pkt_hdr, uint32_t len) { + pool_t *pool = pool_entry_from_hdl(pkt_hdr->buf_hdr.pool_hdl); uint32_t seg_len; int num = pkt_hdr->buf_hdr.segcount; @@ -203,7 +204,7 @@ static inline void packet_init(odp_packet_hdr_t *pkt_hdr, uint32_t len) } else { seg_entry_t *last; - seg_len = len - ((num - 1) * CONFIG_PACKET_MAX_SEG_LEN); + seg_len = len - ((num - 1) * pool->seg_len); /* Last segment data length */ last = seg_entry_last(pkt_hdr); @@ -226,8 +227,7 @@ static inline void packet_init(odp_packet_hdr_t *pkt_hdr, uint32_t len) pkt_hdr->frame_len = len; pkt_hdr->shared_len = 0; pkt_hdr->headroom = CONFIG_PACKET_HEADROOM; - pkt_hdr->tailroom = CONFIG_PACKET_MAX_SEG_LEN - seg_len + -CONFIG_PACKET_TAILROOM; + pkt_hdr->tailroom = pool->seg_len - seg_len + CONFIG_PACKET_TAILROOM; pkt_hdr->input = ODP_PKTIO_INVALID; } diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c index ad2fed472..6937a2c77 100644 --- a/platform/linux-generic/odp_packet.c +++ b/platform/linux-generic/odp_packet.c @@ -23,9 +23,6 @@ #include #include -/* Initial packet segment data length */ -#define BASE_LEN CONFIG_PACKET_MAX_SEG_LEN - #include /* Fill in packet header field offsets for inline functions */ @@ -338,6 +335,7 @@ static inline void link_segments(odp_packet_hdr_t *pkt_hdr[], int num) int cur, i; odp_packet_hdr_t *hdr; odp_packet_hdr_t *head = pkt_hdr[0]; + uint32_t seg_len = pool_entry_from_hdl(head->buf_hdr.pool_hdl)->seg_len; cur = 0; @@ -350,7 +348,7 @@ static inline void link_segments(odp_packet_hdr_t *pkt_hdr[], int num) buf_hdr = _hdr[cur]->buf_hdr; hdr->buf_hdr.seg[i].hdr = buf_hdr; hdr->buf_hdr.seg[i].data = buf_hdr->base_data; - hdr->buf_hdr.seg[i].len = BASE_LEN; + hdr->buf_hdr.seg[i].len = seg_len; cur++; if (cur == num) { @@ -370,13 +368,15 @@ static inline void link_segments(odp_packet_hdr_t *pkt_hdr[], int num) static inline void init_segments(odp_packet_hdr_t *pkt_hdr[], int num) { odp_packet_hdr_t *hdr; + uint32_t seg_len; /* First segment is the packet descriptor */ hdr = pkt_hdr[0]; + seg_len = pool_entry_from_hdl(hdr->buf_hdr.pool_hdl)->seg_len; /* Defaults for single segment packet */ hdr->buf_hdr.seg[0].data = hdr->buf_hdr.base_data; - hdr->buf_hdr.seg[0].len = BASE_LEN; + hdr->buf_hdr.seg[0].len = seg_len; hdr->buf_hdr.segcount = num; hdr->buf_hdr.num_seg = 1; @@ -394,6 +394,7 @@ static inline void reset_seg(odp_packet_hdr_t *pkt_hdr, int first, int num) void *base; int i; seg_entry_t *seg; + uint32_t seg_len = pool_entry_from_hdl(hdr->buf_hdr.pool_hdl)->seg_len; uint8_t idx; seg_entry_find_idx(, , first); @@ -401,27 +402,25 @@ static inline void reset_seg(odp_packet_hdr_t *pkt_hdr, int first, int num) for (i = 0; i < num; i++) { base = hdr->buf_hdr.base_data; seg = seg_entry_next(, ); - seg->len = BASE_LEN; + seg->len = seg_len; seg->data = base; } } /* Calculate the number of segments */ -static inline int num_segments(uint32_t len) +static inline int num_segments(uint32_t len, uint32_t seg_len) { - uint32_t max_seg_len; int num; if
[lng-odp] [PATCH v1 1/5] linux-gen: pool: combine overlapping struct pool_t members
From: Matias EloStruct pool_t members 'data_size' and 'max_seg_len' were both used to store the same value. Replace them with a single 'seg_len' member. Signed-off-by: Matias Elo --- /** Email created from pull request 233 (matiaselo:dev/pool_dyn_seg_len) ** https://github.com/Linaro/odp/pull/233 ** Patch: https://github.com/Linaro/odp/pull/233.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: 37a47554abc964ca3ddfe9eadca3d766d91c071d **/ platform/linux-generic/include/odp_pool_internal.h | 3 +-- platform/linux-generic/odp_packet.c| 6 ++--- platform/linux-generic/odp_pool.c | 30 ++ platform/linux-generic/pktio/dpdk.c| 6 ++--- platform/linux-generic/pktio/socket_mmap.c | 2 +- 5 files changed, 21 insertions(+), 26 deletions(-) diff --git a/platform/linux-generic/include/odp_pool_internal.h b/platform/linux-generic/include/odp_pool_internal.h index edf75d6e0..48945ee1d 100644 --- a/platform/linux-generic/include/odp_pool_internal.h +++ b/platform/linux-generic/include/odp_pool_internal.h @@ -60,9 +60,8 @@ typedef struct pool_t { uint32_t align; uint32_t headroom; uint32_t tailroom; - uint32_t data_size; + uint32_t seg_len; uint32_t max_len; - uint32_t max_seg_len; uint32_t uarea_size; uint32_t block_size; uint32_t shm_size; diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c index fff01ad9d..c330c629e 100644 --- a/platform/linux-generic/odp_packet.c +++ b/platform/linux-generic/odp_packet.c @@ -476,8 +476,8 @@ static inline odp_packet_hdr_t *add_segments(odp_packet_hdr_t *pkt_hdr, if (new_hdr == NULL) return NULL; - seg_len = len - ((num - 1) * pool->max_seg_len); - offset = pool->max_seg_len - seg_len; + seg_len = len - ((num - 1) * pool->seg_len); + offset = pool->seg_len - seg_len; if (head) { /* add into the head*/ @@ -906,7 +906,7 @@ int odp_packet_reset(odp_packet_t pkt, uint32_t len) pool_t *pool = pkt_hdr->buf_hdr.pool_ptr; int num = pkt_hdr->buf_hdr.segcount; - if (odp_unlikely(len > (pool->max_seg_len * num))) + if (odp_unlikely(len > (pool->seg_len * num))) return -1; reset_seg(pkt_hdr, 0, num); diff --git a/platform/linux-generic/odp_pool.c b/platform/linux-generic/odp_pool.c index 40cbb397c..44a40e83e 100644 --- a/platform/linux-generic/odp_pool.c +++ b/platform/linux-generic/odp_pool.c @@ -285,7 +285,7 @@ static void init_buffers(pool_t *pool) memset(buf_hdr, 0, (uintptr_t)data - (uintptr_t)buf_hdr); - seg_size = pool->headroom + pool->data_size + pool->tailroom; + seg_size = pool->headroom + pool->seg_len + pool->tailroom; /* Initialize buffer metadata */ buf_hdr->index = i; @@ -305,13 +305,13 @@ static void init_buffers(pool_t *pool) /* Pointer to data start (of the first segment) */ buf_hdr->seg[0].hdr = buf_hdr; buf_hdr->seg[0].data = [offset]; - buf_hdr->seg[0].len = pool->data_size; + buf_hdr->seg[0].len = pool->seg_len; odp_atomic_init_u32(_hdr->ref_cnt, 0); /* Store base values for fast init */ buf_hdr->base_data = buf_hdr->seg[0].data; - buf_hdr->buf_end = [offset + pool->data_size + + buf_hdr->buf_end = [offset + pool->seg_len + pool->tailroom]; /* Store buffer index into the global pool */ @@ -341,8 +341,8 @@ static odp_pool_t pool_create(const char *name, odp_pool_param_t *params, pool_t *pool; uint32_t uarea_size, headroom, tailroom; odp_shm_t shm; - uint32_t data_size, align, num, hdr_size, block_size; - uint32_t max_len, max_seg_len; + uint32_t seg_len, align, num, hdr_size, block_size; + uint32_t max_len; uint32_t ring_size; uint32_t num_extra = 0; int name_len; @@ -371,15 +371,14 @@ static odp_pool_t pool_create(const char *name, odp_pool_param_t *params, headroom= 0; tailroom= 0; - data_size = 0; + seg_len = 0; max_len = 0; - max_seg_len = 0; uarea_size = 0; switch (params->type) { case ODP_POOL_BUFFER: num = params->buf.num; - data_size = params->buf.size; + seg_len = params->buf.size; break; case ODP_POOL_PACKET: @@ -387,9 +386,8 @@ static odp_pool_t pool_create(const char *name, odp_pool_param_t *params, tailroom=
[lng-odp] [PATCH v1 3/5] linux-gen: packet: fix build error with single segment packet header
From: Matias EloFix (invalid) gcc error when CONFIG_PACKET_SEGS_PER_HDR is set to one. Signed-off-by: Matias Elo --- /** Email created from pull request 233 (matiaselo:dev/pool_dyn_seg_len) ** https://github.com/Linaro/odp/pull/233 ** Patch: https://github.com/Linaro/odp/pull/233.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: 37a47554abc964ca3ddfe9eadca3d766d91c071d **/ platform/linux-generic/odp_packet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c index bc71ee166..ad2fed472 100644 --- a/platform/linux-generic/odp_packet.c +++ b/platform/linux-generic/odp_packet.c @@ -2146,7 +2146,7 @@ odp_packet_t odp_packet_ref(odp_packet_t pkt, uint32_t offset) link_hdr->buf_hdr.seg[0].len = seg->len - seg_offset; buffer_ref_inc(seg->hdr); - for (i = 1; i < num_copy; i++) { + for (i = 1; CONFIG_PACKET_SEGS_PER_HDR > 1 && i < num_copy; i++) { /* Update link header reference count */ if (idx == 0 && seg_is_link(hdr)) buffer_ref_inc((odp_buffer_hdr_t *)hdr);
[lng-odp] [PATCH API-NEXT v1 7/8] linux-gen: pool: implement max_num info
From: Petri SavolainenImplemented max_num info for packet pools. Signed-off-by: Petri Savolainen --- /** Email created from pull request 234 (psavol:next-pool-param) ** https://github.com/Linaro/odp/pull/234 ** Patch: https://github.com/Linaro/odp/pull/234.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069 **/ platform/linux-generic/odp_pool.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/platform/linux-generic/odp_pool.c b/platform/linux-generic/odp_pool.c index b0b1adafc..b8ab99d98 100644 --- a/platform/linux-generic/odp_pool.c +++ b/platform/linux-generic/odp_pool.c @@ -682,6 +682,9 @@ int odp_pool_info(odp_pool_t pool_hdl, odp_pool_info_t *info) info->name = pool->name; info->params = pool->params; + if (pool->params.type == ODP_POOL_PACKET) + info->pkt.max_num = pool->num; + return 0; }
[lng-odp] [PATCH v1 0/5] linux-gen: pool: select packet pool segment size at runtime
This patch set modifies packet pool implementation to select segment size at runtime based on the pool parameters. After this patch set an application is able to create multiple packet pools with varying segment sizes. github /** Email created from pull request 233 (matiaselo:dev/pool_dyn_seg_len) ** https://github.com/Linaro/odp/pull/233 ** Patch: https://github.com/Linaro/odp/pull/233.patch ** Base sha: ae4f1d82ed704992c1d8284c23795b9e076b33b9 ** Merge commit sha: 37a47554abc964ca3ddfe9eadca3d766d91c071d **/ /github checkpatch.pl total: 0 errors, 0 warnings, 0 checks, 151 lines checked to_send-p-000.patch has no obvious style problems and is ready for submission. total: 0 errors, 0 warnings, 0 checks, 165 lines checked to_send-p-001.patch has no obvious style problems and is ready for submission. total: 0 errors, 0 warnings, 0 checks, 8 lines checked to_send-p-002.patch has no obvious style problems and is ready for submission. total: 0 errors, 0 warnings, 0 checks, 194 lines checked to_send-p-003.patch has no obvious style problems and is ready for submission. total: 0 errors, 0 warnings, 0 checks, 55 lines checked to_send-p-004.patch has no obvious style problems and is ready for submission. /checkpatch.pl
[lng-odp] [PATCH API-NEXT v1 8/8] validation: pool: add packet info test
From: Petri SavolainenAdded odp_pool_info() test for packet pools. Signed-off-by: Petri Savolainen --- /** Email created from pull request 234 (psavol:next-pool-param) ** https://github.com/Linaro/odp/pull/234 ** Patch: https://github.com/Linaro/odp/pull/234.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069 **/ test/common_plat/validation/api/pool/pool.c | 28 test/common_plat/validation/api/pool/pool.h | 1 + 2 files changed, 29 insertions(+) diff --git a/test/common_plat/validation/api/pool/pool.c b/test/common_plat/validation/api/pool/pool.c index b4c2917b1..2be4f80a1 100644 --- a/test/common_plat/validation/api/pool/pool.c +++ b/test/common_plat/validation/api/pool/pool.c @@ -191,12 +191,40 @@ void pool_test_alloc_packet_subparam(void) CU_ASSERT(odp_pool_destroy(pool) == 0); } +void pool_test_info_packet(void) +{ + odp_pool_t pool; + odp_pool_info_t info; + odp_pool_param_t param; + const char pool_name[] = "test_pool_name"; + + odp_pool_param_init(); + + param.type = ODP_POOL_PACKET; + param.pkt.num = PKT_NUM; + param.pkt.len = PKT_LEN; + + pool = odp_pool_create(pool_name, ); + CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); + + CU_ASSERT_FATAL(odp_pool_info(pool, ) == 0); + + CU_ASSERT(strncmp(pool_name, info.name, sizeof(pool_name)) == 0); + CU_ASSERT(info.params.type== ODP_POOL_PACKET); + CU_ASSERT(info.params.pkt.num == param.pkt.num); + CU_ASSERT(info.params.pkt.len == param.pkt.len); + CU_ASSERT(info.pkt.max_num>= param.pkt.num); + + CU_ASSERT(odp_pool_destroy(pool) == 0); +} + odp_testinfo_t pool_suite[] = { ODP_TEST_INFO(pool_test_create_destroy_buffer), ODP_TEST_INFO(pool_test_create_destroy_packet), ODP_TEST_INFO(pool_test_create_destroy_timeout), ODP_TEST_INFO(pool_test_alloc_packet), ODP_TEST_INFO(pool_test_alloc_packet_subparam), + ODP_TEST_INFO(pool_test_info_packet), ODP_TEST_INFO(pool_test_lookup_info_print), ODP_TEST_INFO_NULL, }; diff --git a/test/common_plat/validation/api/pool/pool.h b/test/common_plat/validation/api/pool/pool.h index 3f8f5ebce..b284524e4 100644 --- a/test/common_plat/validation/api/pool/pool.h +++ b/test/common_plat/validation/api/pool/pool.h @@ -16,6 +16,7 @@ void pool_test_create_destroy_timeout(void); void pool_test_lookup_info_print(void); void pool_test_alloc_packet(void); void pool_test_alloc_packet_subparam(void); +void pool_test_info_packet(void); /* test arrays: */ extern odp_testinfo_t pool_suite[];
[lng-odp] [PATCH API-NEXT v1 3/8] validation: pool: add subparam test
From: Petri SavolainenTest packet pool subparameters when those are supported. Signed-off-by: Petri Savolainen --- /** Email created from pull request 234 (psavol:next-pool-param) ** https://github.com/Linaro/odp/pull/234 ** Patch: https://github.com/Linaro/odp/pull/234.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069 **/ test/common_plat/validation/api/pool/pool.c | 98 + test/common_plat/validation/api/pool/pool.h | 3 +- 2 files changed, 100 insertions(+), 1 deletion(-) diff --git a/test/common_plat/validation/api/pool/pool.c b/test/common_plat/validation/api/pool/pool.c index e633137ab..bffb6c2bb 100644 --- a/test/common_plat/validation/api/pool/pool.c +++ b/test/common_plat/validation/api/pool/pool.c @@ -10,6 +10,9 @@ #include "odp_cunit_common.h" #include "pool.h" +#define PKT_LEN 400 +#define PKT_NUM 500 + static const int default_buffer_size = 1500; static const int default_buffer_num = 1000; @@ -96,10 +99,105 @@ void pool_test_lookup_info_print(void) CU_ASSERT(odp_pool_destroy(pool) == 0); } +void pool_test_alloc_packet(void) +{ + odp_pool_t pool; + odp_pool_param_t param; + uint32_t i, num; + odp_packet_t pkt[PKT_NUM]; + + odp_pool_param_init(); + + param.type= ODP_POOL_PACKET, + param.pkt.num = PKT_NUM; + param.pkt.len = PKT_LEN; + + pool = odp_pool_create(NULL, ); + + CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); + + num = 0; + + for (i = 0; i < PKT_NUM; i++) { + pkt[num] = odp_packet_alloc(pool, PKT_LEN); + CU_ASSERT(pkt[num] != ODP_PACKET_INVALID); + + if (pkt[num] != ODP_PACKET_INVALID) + num++; + } + + for (i = 0; i < num; i++) + odp_packet_free(pkt[i]); + + CU_ASSERT(odp_pool_destroy(pool) == 0); +} + +void pool_test_alloc_packet_subparam(void) +{ + odp_pool_t pool; + odp_pool_capability_t capa; + odp_pool_param_t param; + uint32_t i, j, num, num_sub; + odp_packet_t pkt[PKT_NUM]; + + CU_ASSERT_FATAL(odp_pool_capability() == 0); + num_sub = capa.pkt.max_num_sub; + + CU_ASSERT_FATAL(num_sub <= ODP_POOL_MAX_SUBPARAMS); + + odp_pool_param_init(); + + param.type= ODP_POOL_PACKET, + param.pkt.num = PKT_NUM; + param.pkt.len = PKT_LEN; + param.pkt.num_sub = num_sub; + + for (i = 0; i < num_sub; i++) { + param.pkt.sub[i].num = PKT_NUM; + param.pkt.sub[i].len = PKT_LEN + (i * 100); + } + + pool = odp_pool_create(NULL, ); + + CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); + + num = 0; + + for (i = 0; i < PKT_NUM; i++) { + pkt[num] = odp_packet_alloc(pool, PKT_LEN); + CU_ASSERT(pkt[num] != ODP_PACKET_INVALID); + + if (pkt[num] != ODP_PACKET_INVALID) + num++; + } + + for (i = 0; i < num; i++) + odp_packet_free(pkt[i]); + + for (j = 0; j < num_sub; j++) { + num = 0; + + for (i = 0; i < param.pkt.sub[j].num; i++) { + pkt[num] = odp_packet_alloc(pool, param.pkt.sub[j].len); + CU_ASSERT(pkt[num] != ODP_PACKET_INVALID); + + if (pkt[num] != ODP_PACKET_INVALID) + num++; + } + + for (i = 0; i < num; i++) + odp_packet_free(pkt[i]); + } + + CU_ASSERT(odp_pool_destroy(pool) == 0); +} + odp_testinfo_t pool_suite[] = { ODP_TEST_INFO(pool_test_create_destroy_buffer), ODP_TEST_INFO(pool_test_create_destroy_packet), ODP_TEST_INFO(pool_test_create_destroy_timeout), + ODP_TEST_INFO(pool_test_alloc_packet), + ODP_TEST_INFO(pool_test_alloc_packet_subparam), ODP_TEST_INFO(pool_test_lookup_info_print), ODP_TEST_INFO_NULL, }; diff --git a/test/common_plat/validation/api/pool/pool.h b/test/common_plat/validation/api/pool/pool.h index 29e517633..3f8f5ebce 100644 --- a/test/common_plat/validation/api/pool/pool.h +++ b/test/common_plat/validation/api/pool/pool.h @@ -13,8 +13,9 @@ void pool_test_create_destroy_buffer(void); void pool_test_create_destroy_packet(void); void pool_test_create_destroy_timeout(void); -void pool_test_create_destroy_buffer_shm(void); void pool_test_lookup_info_print(void); +void pool_test_alloc_packet(void); +void pool_test_alloc_packet_subparam(void); /* test arrays: */ extern odp_testinfo_t pool_suite[];
[lng-odp] [PATCH API-NEXT v1 5/8] api: pool: remove union from params
From: Petri SavolainenRemove anonymous union from pool parameter structure. Union makes it impossible to initialize parameters per pool type (use other values than all zeros). This change is not visible to applications (union was anonymous). Signed-off-by: Petri Savolainen --- /** Email created from pull request 234 (psavol:next-pool-param) ** https://github.com/Linaro/odp/pull/234 ** Patch: https://github.com/Linaro/odp/pull/234.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069 **/ include/odp/api/spec/pool.h | 215 ++-- 1 file changed, 109 insertions(+), 106 deletions(-) diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h index 7c9bee8ee..7b1e2d467 100644 --- a/include/odp/api/spec/pool.h +++ b/include/odp/api/spec/pool.h @@ -195,112 +195,115 @@ typedef struct odp_pool_param_t { /** Pool type */ int type; - /** Variant parameters for different pool types */ - union { - /** Parameters for buffer pools */ - struct { - /** Number of buffers in the pool */ - uint32_t num; - - /** Buffer size in bytes. The maximum number of bytes - application will store in each buffer. */ - uint32_t size; - - /** Minimum buffer alignment in bytes. Valid values are - powers of two. Use 0 for default alignment. - Default will always be a multiple of 8. */ - uint32_t align; - } buf; - - /** Parameters for packet pools */ - struct { - /** Minimum number of 'len' byte packets. -* -* The pool must contain at least this many packets -* that are 'len' bytes or smaller. An implementation -* may round up the value, as long as the 'max_num' -* parameter below is not violated. The maximum value -* for this field is defined by pool capability -* pkt.max_num. -*/ - uint32_t num; - - /** Maximum number of packets. -* -* This is the maximum number of packets of any length -* that can be allocated from the pool. The maximum -* value is defined by pool capability pkt.max_num. -* Use 0 when there's no requirement for the maximum -* number of packets. The default value is 0. -*/ - uint32_t max_num; - - /** Minimum length of 'num' packets. -* -* The pool must contain at least 'num' packets up to -* this packet length (1 ... 'len' bytes). The maximum -* value for this field is defined by pool capability -* pkt.max_len. Use 0 for default. -*/ - uint32_t len; - - /** Maximum packet length that will be allocated from - the pool. The maximum value is defined by pool - capability pkt.max_len. Use 0 for default (the - pool maximum). */ - uint32_t max_len; - - /** Minimum number of packet data bytes that are stored - in the first segment of a packet. The maximum value - is defined by pool capability pkt.max_seg_len. - Use 0 for default. */ - uint32_t seg_len; - - /** User area size in bytes. The maximum value is - defined by pool capability pkt.max_uarea_size. - Specify as 0 if no user area is needed. */ - uint32_t uarea_size; - - /** Minimum Headroom size in bytes. Each newly allocated - packet from the pool must have at least this much - headroom. The maximum value is defined by pool - capability pkt.max_headroom. - Use zero if headroom is not needed. */ - uint32_t headroom; - - /** Number of subparameters -* -* The number of subparameter table entries used. -* The maximum value is defined by pool -* capability
[lng-odp] [PATCH API-NEXT v1 4/8] validation: pool: initialize params correctly
From: Petri SavolainenUse odp_pool_param_init() to initialize pool parameters. Signed-off-by: Petri Savolainen --- /** Email created from pull request 234 (psavol:next-pool-param) ** https://github.com/Linaro/odp/pull/234 ** Patch: https://github.com/Linaro/odp/pull/234.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069 **/ test/common_plat/validation/api/pool/pool.c | 87 ++--- 1 file changed, 43 insertions(+), 44 deletions(-) diff --git a/test/common_plat/validation/api/pool/pool.c b/test/common_plat/validation/api/pool/pool.c index bffb6c2bb..b4c2917b1 100644 --- a/test/common_plat/validation/api/pool/pool.c +++ b/test/common_plat/validation/api/pool/pool.c @@ -16,11 +16,11 @@ static const int default_buffer_size = 1500; static const int default_buffer_num = 1000; -static void pool_create_destroy(odp_pool_param_t *params) +static void pool_create_destroy(odp_pool_param_t *param) { odp_pool_t pool; - pool = odp_pool_create(NULL, params); + pool = odp_pool_create(NULL, param); CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); CU_ASSERT(odp_pool_to_u64(pool) != odp_pool_to_u64(ODP_POOL_INVALID)); @@ -29,42 +29,41 @@ static void pool_create_destroy(odp_pool_param_t *params) void pool_test_create_destroy_buffer(void) { - odp_pool_param_t params = { - .buf = { - .size = default_buffer_size, - .align = ODP_CACHE_LINE_SIZE, - .num = default_buffer_num, - }, - .type = ODP_POOL_BUFFER, - }; - - pool_create_destroy(); + odp_pool_param_t param; + + odp_pool_param_init(); + + param.type = ODP_POOL_BUFFER, + param.buf.size = default_buffer_size; + param.buf.align = ODP_CACHE_LINE_SIZE; + param.buf.num = default_buffer_num; + + pool_create_destroy(); } void pool_test_create_destroy_packet(void) { - odp_pool_param_t params = { - .pkt = { - .seg_len = 0, - .len = default_buffer_size, - .num = default_buffer_num, - }, - .type = ODP_POOL_PACKET, - }; - - pool_create_destroy(); + odp_pool_param_t param; + + odp_pool_param_init(); + + param.type= ODP_POOL_PACKET; + param.pkt.len = default_buffer_size; + param.pkt.num = default_buffer_num; + + pool_create_destroy(); } void pool_test_create_destroy_timeout(void) { - odp_pool_param_t params = { - .tmo = { - .num = default_buffer_num, - }, - .type = ODP_POOL_TIMEOUT, - }; - - pool_create_destroy(); + odp_pool_param_t param; + + odp_pool_param_init(); + + param.type= ODP_POOL_TIMEOUT; + param.tmo.num = default_buffer_num; + + pool_create_destroy(); } void pool_test_lookup_info_print(void) @@ -72,16 +71,16 @@ void pool_test_lookup_info_print(void) odp_pool_t pool; const char pool_name[] = "pool_for_lookup_test"; odp_pool_info_t info; - odp_pool_param_t params = { - .buf = { - .size = default_buffer_size, - .align = ODP_CACHE_LINE_SIZE, - .num = default_buffer_num, - }, - .type = ODP_POOL_BUFFER, - }; - - pool = odp_pool_create(pool_name, ); + odp_pool_param_t param; + + odp_pool_param_init(); + + param.type = ODP_POOL_BUFFER; + param.buf.size = default_buffer_size; + param.buf.align = ODP_CACHE_LINE_SIZE; + param.buf.num = default_buffer_num; + + pool = odp_pool_create(pool_name, ); CU_ASSERT_FATAL(pool != ODP_POOL_INVALID); pool = odp_pool_lookup(pool_name); @@ -89,10 +88,10 @@ void pool_test_lookup_info_print(void) CU_ASSERT_FATAL(odp_pool_info(pool, ) == 0); CU_ASSERT(strncmp(pool_name, info.name, sizeof(pool_name)) == 0); - CU_ASSERT(params.buf.size <= info.params.buf.size); - CU_ASSERT(params.buf.align <= info.params.buf.align); - CU_ASSERT(params.buf.num <= info.params.buf.num); - CU_ASSERT(params.type == info.params.type); + CU_ASSERT(param.buf.size <= info.params.buf.size); + CU_ASSERT(param.buf.align <= info.params.buf.align); + CU_ASSERT(param.buf.num <= info.params.buf.num); + CU_ASSERT(param.type == info.params.type); odp_pool_print(pool);
[lng-odp] [PATCH API-NEXT v1 1/8] api: pool: relax packet pool param num
From: Petri SavolainenAdded packet pool parameter 'max_num', so that 'num' parameter can be round up by the implementation. Most implementations have a fixed segment size, and need this flexibility. For example, when 'len' is larger than the pool segment size, there may be e.g. 2 x 'num' segments in the poool, and thus it would be able to allocate 2 x 'num' small packets. When application needs to limit maximum number of packets on a pool, it can use the new max_num param for that. Otherwise, it would leave 'max_num' to zero (== no limit). Signed-off-by: Petri Savolainen --- /** Email created from pull request 234 (psavol:next-pool-param) ** https://github.com/Linaro/odp/pull/234 ** Patch: https://github.com/Linaro/odp/pull/234.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069 **/ include/odp/api/spec/pool.h | 44 +++- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h index 221798ee8..f1c8b1158 100644 --- a/include/odp/api/spec/pool.h +++ b/include/odp/api/spec/pool.h @@ -164,10 +164,11 @@ int odp_pool_capability(odp_pool_capability_t *capa); /** * Pool parameters - * Used to communicate pool creation options. - * @note A single thread may not be able to allocate all 'num' elements - * from the pool at any particular time, as other threads or hardware - * blocks are allowed to keep some for caching purposes. + * + * A note for all pool types: a single thread may not be able to allocate all + * 'num' elements from the pool at any particular time, as implementations are + * allowed to store some elements (per thread and HW engine) for caching + * purposes. */ typedef struct odp_pool_param_t { /** Pool type */ @@ -192,17 +193,34 @@ typedef struct odp_pool_param_t { /** Parameters for packet pools */ struct { - /** The number of packets that the pool must provide - that are packet length 'len' bytes or smaller. - The maximum value is defined by pool capability - pkt.max_num. */ + /** Minimum number of 'len' byte packets. +* +* The pool must contain at least this many packets +* that are 'len' bytes or smaller. An implementation +* may round up the value, as long as the 'max_num' +* parameter below is not violated. The maximum value +* for this field is defined by pool capability +* pkt.max_num. +*/ uint32_t num; - /** Minimum packet length that the pool must provide - 'num' packets. The number of packets may be less - than 'num' when packets are larger than 'len'. - The maximum value is defined by pool capability - pkt.max_len. Use 0 for default. */ + /** Maximum number of packets. +* +* This is the maximum number of packets of any length +* that can be allocated from the pool. The maximum +* value is defined by pool capability pkt.max_num. +* Use 0 when there's no requirement for the maximum +* number of packets. The default value is 0. +*/ + uint32_t max_num; + + /** Minimum length of 'num' packets. +* +* The pool must contain at least 'num' packets up to +* this packet length (1 ... 'len' bytes). The maximum +* value for this field is defined by pool capability +* pkt.max_len. Use 0 for default. +*/ uint32_t len; /** Maximum packet length that will be allocated from
[lng-odp] [PATCH API-NEXT v1 6/8] api: pool: add max packet num info
From: Petri SavolainenPacket pool parameters does not require application to specify the maximum number of packet. Application is more portable, if it does not restrict max_num, but instead uses this info field after pool creation. Signed-off-by: Petri Savolainen --- /** Email created from pull request 234 (psavol:next-pool-param) ** https://github.com/Linaro/odp/pull/234 ** Patch: https://github.com/Linaro/odp/pull/234.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069 **/ include/odp/api/spec/pool.h | 21 ++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h index 7b1e2d467..40834524e 100644 --- a/include/odp/api/spec/pool.h +++ b/include/odp/api/spec/pool.h @@ -360,8 +360,24 @@ odp_pool_t odp_pool_lookup(const char *name); * Used to get information about a pool. */ typedef struct odp_pool_info_t { - const char *name; /**< pool name */ - odp_pool_param_t params; /**< pool parameters */ + /** Pool name */ + const char *name; + + /** Copy of pool parameters */ + odp_pool_param_t params; + + /** Additional info for packet pools */ + struct { + /** Maximum number of packets of any length +* +* This is the maximum number of packets that can be allocated +* from the pool at anytime. Application can use this e.g. +* to prepare enough per packet contexts. +*/ + uint32_t max_num; + + } pkt; + } odp_pool_info_t; /** @@ -375,7 +391,6 @@ typedef struct odp_pool_info_t { * @retval 0 Success * @retval -1 Failure. Info could not be retrieved. */ - int odp_pool_info(odp_pool_t pool, odp_pool_info_t *info); /**
[lng-odp] [PATCH API-NEXT v1 2/8] api: pool: add packet pool subparameters
From: Petri SavolainenAdditional packet length and number specification gives more information to implementation about intended packet length distribution in the pool. This enables e.g. correct initialization when pool implementation is based on multiple fixed packet / segment sizes (subpools). The specification does require subpool implementation but allows it. Signed-off-by: Petri Savolainen --- /** Email created from pull request 234 (psavol:next-pool-param) ** https://github.com/Linaro/odp/pull/234 ** Patch: https://github.com/Linaro/odp/pull/234.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069 **/ include/odp/api/spec/pool.h | 47 + 1 file changed, 47 insertions(+) diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h index f1c8b1158..7c9bee8ee 100644 --- a/include/odp/api/spec/pool.h +++ b/include/odp/api/spec/pool.h @@ -41,6 +41,9 @@ extern "C" { * Maximum pool name length in chars including null char */ +/** Maximum number of packet pool subparameters */ +#define ODP_POOL_MAX_SUBPARAMS 7 + /** * Pool capabilities */ @@ -134,6 +137,12 @@ typedef struct odp_pool_capability_t { * The value of zero means that limited only by the available * memory size for the pool. */ uint32_t max_uarea_size; + + /** Maximum number of subparameters +* +* Maximum number of packet pool subparameters. Valid range is +* 0 ... ODP_POOL_MAX_SUBPARAMS. */ + uint8_t max_num_sub; } pkt; /** Timeout pool capabilities */ @@ -163,6 +172,18 @@ typedef struct odp_pool_capability_t { int odp_pool_capability(odp_pool_capability_t *capa); /** + * Packet pool subparameters + */ +typedef struct odp_pool_pkt_subparam_t { + /** Number of 'len' byte packets. */ + uint32_t num; + + /** Packet length in bytes */ + uint32_t len; + +} odp_pool_pkt_subparam_t; + +/** * Pool parameters * * A note for all pool types: a single thread may not be able to allocate all @@ -246,6 +267,32 @@ typedef struct odp_pool_param_t { capability pkt.max_headroom. Use zero if headroom is not needed. */ uint32_t headroom; + + /** Number of subparameters +* +* The number of subparameter table entries used. +* The maximum value is defined by pool +* capability pkt.max_num_sub. The default value is 0. +*/ + uint8_t num_sub; + + /** Subparameter table +* +* Subparameters continue pool configuration with +* additional packet length requirements. The first +* table entry follows the num/len specification above. +* So that, sub[0].len > 'len', and sub[0].num refers +* to packet lengths between 'len' + 1 and sub[0].len. +* Similarly, sub[1] follows sub[0] specification, and +* so on. +* +* Each requirement is supported separately and may be +* rounded up, as long as the 'max_num' parameter is +* not violated. It's implementation specific if some +* requirements are supported simultaneously (e.g. +* due to subpool design). +*/ + odp_pool_pkt_subparam_t sub[ODP_POOL_MAX_SUBPARAMS]; } pkt; /** Parameters for timeout pools */
[lng-odp] [PATCH API-NEXT v1 0/8] api: pool subparameters
Added packet pool parameters for more fine grained pool configuration. The basic usage of the parameters is not changed, except that implementation may now round up 'num' by default. Application can limit the round up with new 'max_num' parameter. If application does not limit max_num (but is still interested on max_num value), it can check the new info.pkt.max_num. The new specification allows implementation to use sub-pools, also application is able to request e.g. this kind of pool: ^ | max_num | - - - - - - - - | | * NUM| * * | * * * | * * * * * | * * * * * * +---> LEN github /** Email created from pull request 234 (psavol:next-pool-param) ** https://github.com/Linaro/odp/pull/234 ** Patch: https://github.com/Linaro/odp/pull/234.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: 54f5fc670a7c125b6b0098e34e68fe3b45875069 **/ /github checkpatch.pl total: 0 errors, 0 warnings, 0 checks, 58 lines checked to_send-p-000.patch has no obvious style problems and is ready for submission. total: 0 errors, 0 warnings, 0 checks, 71 lines checked to_send-p-001.patch has no obvious style problems and is ready for submission. total: 0 errors, 0 warnings, 0 checks, 124 lines checked to_send-p-002.patch has no obvious style problems and is ready for submission. total: 0 errors, 0 warnings, 0 checks, 122 lines checked to_send-p-003.patch has no obvious style problems and is ready for submission. total: 0 errors, 0 warnings, 0 checks, 221 lines checked to_send-p-004.patch has no obvious style problems and is ready for submission. total: 0 errors, 0 warnings, 0 checks, 33 lines checked to_send-p-005.patch has no obvious style problems and is ready for submission. total: 0 errors, 0 warnings, 0 checks, 9 lines checked to_send-p-006.patch has no obvious style problems and is ready for submission. total: 0 errors, 0 warnings, 0 checks, 47 lines checked to_send-p-007.patch has no obvious style problems and is ready for submission. /checkpatch.pl
[lng-odp] [PATCH API-NEXT v1 2/3] linux-gen: pktio: tap: implement link status operation
From: Bogdan PricopeImplement link status tap pktio operation. Signed-off-by: Bogdan Pricope --- /** Email created from pull request 232 (bogdanPricope:tap_set_mac_pr) ** https://github.com/Linaro/odp/pull/232 ** Patch: https://github.com/Linaro/odp/pull/232.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: 8726d6c7a814c3380aacd18250194eae85ababb3 **/ platform/linux-generic/pktio/tap.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/platform/linux-generic/pktio/tap.c b/platform/linux-generic/pktio/tap.c index 8ddd757d9..2fda0b814 100644 --- a/platform/linux-generic/pktio/tap.c +++ b/platform/linux-generic/pktio/tap.c @@ -406,6 +406,12 @@ static int tap_mac_addr_get(pktio_entry_t *pktio_entry, void *mac_addr) return ETH_ALEN; } +static int tap_link_status(pktio_entry_t *pktio_entry) +{ + return link_status_fd(pktio_entry->s.pkt_tap.skfd, + pktio_entry->s.name + 4); +} + static int tap_capability(pktio_entry_t *pktio_entry ODP_UNUSED, odp_pktio_capability_t *capa) { @@ -438,6 +444,7 @@ const pktio_if_ops_t tap_pktio_ops = { .promisc_mode_get = tap_promisc_mode_get, .mac_get = tap_mac_addr_get, .mac_set = NULL, + .link_status = tap_link_status, .capability = tap_capability, .pktin_ts_res = NULL, .pktin_ts_from_ns = NULL,
[lng-odp] [PATCH API-NEXT v1 0/3] Implement start/stop/link status/MAC set operations of TAP pktio
Implement start/stop/link status/MAC address set operations of TAP interface.. github /** Email created from pull request 232 (bogdanPricope:tap_set_mac_pr) ** https://github.com/Linaro/odp/pull/232 ** Patch: https://github.com/Linaro/odp/pull/232.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: 8726d6c7a814c3380aacd18250194eae85ababb3 **/ /github checkpatch.pl total: 0 errors, 0 warnings, 0 checks, 97 lines checked to_send-p-000.patch has no obvious style problems and is ready for submission. total: 0 errors, 0 warnings, 0 checks, 19 lines checked to_send-p-001.patch has no obvious style problems and is ready for submission. total: 0 errors, 0 warnings, 0 checks, 73 lines checked to_send-p-002.patch has no obvious style problems and is ready for submission. /checkpatch.pl
[lng-odp] [PATCH API-NEXT v1 3/3] linux-gen: pktio: tap: implement MAC address set operation
From: Bogdan PricopeImplement MAC address set function and set corresponding capability flag. Signed-off-by: Bogdan Pricope --- /** Email created from pull request 232 (bogdanPricope:tap_set_mac_pr) ** https://github.com/Linaro/odp/pull/232 ** Patch: https://github.com/Linaro/odp/pull/232.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: 8726d6c7a814c3380aacd18250194eae85ababb3 **/ platform/linux-generic/include/odp_packet_socket.h | 5 + platform/linux-generic/pktio/socket.c | 25 ++ platform/linux-generic/pktio/tap.c | 13 ++- 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/platform/linux-generic/include/odp_packet_socket.h b/platform/linux-generic/include/odp_packet_socket.h index 0e61f6f0c..a05629ba5 100644 --- a/platform/linux-generic/include/odp_packet_socket.h +++ b/platform/linux-generic/include/odp_packet_socket.h @@ -99,6 +99,11 @@ ethaddrs_equal(unsigned char mac_a[], unsigned char mac_b[]) int mac_addr_get_fd(int fd, const char *name, unsigned char mac_dst[]); /** + * Write the MAC address for a packet socket + */ +int mac_addr_set_fd(int fd, const char *name, const unsigned char mac_dst[]); + +/** * Read the MTU from a packet socket */ uint32_t mtu_get_fd(int fd, const char *name); diff --git a/platform/linux-generic/pktio/socket.c b/platform/linux-generic/pktio/socket.c index 0a80035f5..447b02b20 100644 --- a/platform/linux-generic/pktio/socket.c +++ b/platform/linux-generic/pktio/socket.c @@ -125,6 +125,31 @@ int mac_addr_get_fd(int fd, const char *name, unsigned char mac_dst[]) return 0; } +/** + * ODP_PACKET_TAP: + */ +int mac_addr_set_fd(int fd, const char *name, const unsigned char mac_dst[]) +{ + struct ifreq ethreq; + int ret; + + memset(, 0, sizeof(ethreq)); + snprintf(ethreq.ifr_name, IF_NAMESIZE, "%s", name); + + ethreq.ifr_hwaddr.sa_family = AF_UNIX; + memcpy(ethreq.ifr_hwaddr.sa_data, mac_dst, ETH_ALEN); + + ret = ioctl(fd, SIOCSIFHWADDR, ); + if (ret != 0) { + __odp_errno = errno; + ODP_ERR("ioctl(SIOCSIFHWADDR): %s: \"%s\".\n", strerror(errno), + ethreq.ifr_name); + return -1; + } + + return 0; +} + /* * ODP_PACKET_SOCKET_MMSG: * ODP_PACKET_SOCKET_MMAP: diff --git a/platform/linux-generic/pktio/tap.c b/platform/linux-generic/pktio/tap.c index 2fda0b814..841631d9b 100644 --- a/platform/linux-generic/pktio/tap.c +++ b/platform/linux-generic/pktio/tap.c @@ -412,6 +412,16 @@ static int tap_link_status(pktio_entry_t *pktio_entry) pktio_entry->s.name + 4); } +static int tap_mac_addr_set(pktio_entry_t *pktio_entry, const void *mac_addr) +{ + pkt_tap_t *tap = _entry->s.pkt_tap; + + memcpy(tap->if_mac, mac_addr, ETH_ALEN); + + return mac_addr_set_fd(tap->fd, (char *)pktio_entry->s.name + 4, + tap->if_mac); +} + static int tap_capability(pktio_entry_t *pktio_entry ODP_UNUSED, odp_pktio_capability_t *capa) { @@ -420,6 +430,7 @@ static int tap_capability(pktio_entry_t *pktio_entry ODP_UNUSED, capa->max_input_queues = 1; capa->max_output_queues = 1; capa->set_op.op.promisc_mode = 1; + capa->set_op.op.mac_addr = 1; odp_pktio_config_init(>config); capa->config.pktin.bit.ts_all = 1; @@ -443,7 +454,7 @@ const pktio_if_ops_t tap_pktio_ops = { .promisc_mode_set = tap_promisc_mode_set, .promisc_mode_get = tap_promisc_mode_get, .mac_get = tap_mac_addr_get, - .mac_set = NULL, + .mac_set = tap_mac_addr_set, .link_status = tap_link_status, .capability = tap_capability, .pktin_ts_res = NULL,
[lng-odp] [PATCH API-NEXT v1 1/3] linux-gen: pktio: tap: implement start/stop operations
From: Bogdan PricopeImplement start/stop tap pktio operations. Signed-off-by: Bogdan Pricope --- /** Email created from pull request 232 (bogdanPricope:tap_set_mac_pr) ** https://github.com/Linaro/odp/pull/232 ** Patch: https://github.com/Linaro/odp/pull/232.patch ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf ** Merge commit sha: 8726d6c7a814c3380aacd18250194eae85ababb3 **/ platform/linux-generic/pktio/tap.c | 72 +++--- 1 file changed, 59 insertions(+), 13 deletions(-) diff --git a/platform/linux-generic/pktio/tap.c b/platform/linux-generic/pktio/tap.c index ed4479445..8ddd757d9 100644 --- a/platform/linux-generic/pktio/tap.c +++ b/platform/linux-generic/pktio/tap.c @@ -134,8 +134,30 @@ static int tap_pktio_open(odp_pktio_t id ODP_UNUSED, goto sock_err; } - /* Up interface by default. */ - if (ioctl(skfd, SIOCGIFFLAGS, ) < 0) { + tap->fd = fd; + tap->skfd = skfd; + tap->mtu = mtu; + tap->pool = pool; + return 0; +sock_err: + close(skfd); +tap_err: + close(fd); + ODP_ERR("Tap device alloc failed.\n"); + return -1; +} + +static int tap_pktio_start(pktio_entry_t *pktio_entry) +{ + struct ifreq ifr; + pkt_tap_t *tap = _entry->s.pkt_tap; + + odp_memset(, 0, sizeof(ifr)); + snprintf(ifr.ifr_name, IF_NAMESIZE, "%s", +(char *)pktio_entry->s.name + 4); + + /* Up interface by default. */ + if (ioctl(tap->skfd, SIOCGIFFLAGS, ) < 0) { __odp_errno = errno; ODP_ERR("ioctl(SIOCGIFFLAGS) failed: %s\n", strerror(errno)); goto sock_err; @@ -144,22 +166,46 @@ static int tap_pktio_open(odp_pktio_t id ODP_UNUSED, ifr.ifr_flags |= IFF_UP; ifr.ifr_flags |= IFF_RUNNING; - if (ioctl(skfd, SIOCSIFFLAGS, ) < 0) { + if (ioctl(tap->skfd, SIOCSIFFLAGS, ) < 0) { __odp_errno = errno; ODP_ERR("failed to come up: %s\n", strerror(errno)); goto sock_err; } - tap->fd = fd; - tap->skfd = skfd; - tap->mtu = mtu; - tap->pool = pool; return 0; sock_err: - close(skfd); -tap_err: - close(fd); - ODP_ERR("Tap device alloc failed.\n"); + ODP_ERR("Tap device open failed.\n"); + return -1; +} + +static int tap_pktio_stop(pktio_entry_t *pktio_entry) +{ + struct ifreq ifr; + pkt_tap_t *tap = _entry->s.pkt_tap; + + odp_memset(, 0, sizeof(ifr)); + snprintf(ifr.ifr_name, IF_NAMESIZE, "%s", +(char *)pktio_entry->s.name + 4); + + /* Up interface by default. */ + if (ioctl(tap->skfd, SIOCGIFFLAGS, ) < 0) { + __odp_errno = errno; + ODP_ERR("ioctl(SIOCGIFFLAGS) failed: %s\n", strerror(errno)); + goto sock_err; + } + + ifr.ifr_flags &= ~IFF_UP; + ifr.ifr_flags &= ~IFF_RUNNING; + + if (ioctl(tap->skfd, SIOCSIFFLAGS, ) < 0) { + __odp_errno = errno; + ODP_ERR("failed to come up: %s\n", strerror(errno)); + goto sock_err; + } + + return 0; +sock_err: + ODP_ERR("Tap device open failed.\n"); return -1; } @@ -383,8 +429,8 @@ const pktio_if_ops_t tap_pktio_ops = { .term = NULL, .open = tap_pktio_open, .close = tap_pktio_close, - .start = NULL, - .stop = NULL, + .start = tap_pktio_start, + .stop = tap_pktio_stop, .recv = tap_pktio_recv, .send = tap_pktio_send, .mtu_get = tap_mtu_get,
[lng-odp] [Bug 3337] ./test/linux-generic/run-test is not used
https://bugs.linaro.org/show_bug.cgi?id=3337 Dmitry Eremin-Solenikovchanged: What|Removed |Added CC||dmitry.ereminsolenikov@lina ||ro.org --- Comment #1 from Dmitry Eremin-Solenikov --- run-test should not be used while running `make check'. It is used only during `make installcheck'. IIRC, `V=1' does not change `make check' behaviour. That is by design of Automake's test drivers. -- You are receiving this mail because: You are on the CC list for the bug.
Re: [lng-odp] [PATCH v1] add sample shippable.yml and Dockerfile for Aarch64 builds
muvarov replied on github web page: shippable.yml line 19 @@ -0,0 +1,81 @@ + +language: c + +compiler: + - gcc + - clang + +env: + matrix: +- CONF="" +# - CONF="--disable-abi-compat" +# - CONF="--enable-schedule-sp" +# - CONF="--enable-schedule-iquery" +# - CONF="--enable-dpdk-zero-copy" +- CROSS_ARCH="arm64" +# - CROSS_ARCH="armhf" CFLAGS="-march=armv7-a" +# - CROSS_ARCH="powerpc" +# - CROSS_ARCH="i386" + global: Comment: Coverity I also thing should go away. This script does not send results to Coverity. > muvarov wrote > this needs to be alphabetic sorted. https://github.com/Linaro/odp/pull/231#discussion_r144815223 updated_at 2017-10-16 10:59:50
Re: [lng-odp] [PATCH v1] add sample shippable.yml and Dockerfile for Aarch64 builds
muvarov replied on github web page: Dockerfile line 8 @@ -0,0 +1,23 @@ +FROM drydockaarch64/u16:v5.10.1 + +RUN if $(sudo update-alternatives --list gcc); \ + then sudo update-alternatives --remove-all gcc; \ +fi + +RUN sudo apt-get update && sudo apt-get install -yy \ + gcc-4.8 \ Comment: this needs to be alphabetic sorted. https://github.com/Linaro/odp/pull/231#discussion_r144815055 updated_at 2017-10-16 10:59:50
[lng-odp] [Bug 3337] New: ./test/linux-generic/run-test is not used
https://bugs.linaro.org/show_bug.cgi?id=3337 Bug ID: 3337 Summary: ./test/linux-generic/run-test is not used Product: OpenDataPlane - linux- generic reference Version: v1.15.0.0 Hardware: Other OS: Linux Status: UNCONFIRMED Severity: enhancement Priority: --- Component: Build system Assignee: maxim.uva...@linaro.org Reporter: maxim.uva...@linaro.org CC: lng-odp@lists.linaro.org Target Milestone: --- make check V=1 does not produce any verbose test runs. Looks like it's caused by wrong LOG_COMPILER usage in autoconf. File ./test/linux-generic/run-test is not used while doing make check. -- You are receiving this mail because: You are on the CC list for the bug.
Re: [lng-odp] api-next merge with ODP 2.0
bootstrap generates a lot of errors, I can reproduce them locally also https://travis-ci.org/nagarahalli/odp/jobs/287783022 On 16 October 2017 at 09:21, Maxim Uvarovwrote: > I will take a look. But please check that you added this 3 commits. > > > c16af648 travis: purge dpdk cache on version change > 3cb45201 travis: build dpdk for general cpu > 73bc4619 travis: temporary turn off dpdk caching > > In general Travis stopped due to no output. You can make tests more > verbose with make check V=1 > > But I would start with adding dpdk commits because without them result was > also unclear. > > Maxim. > > > On 16 October 2017 at 06:45, Honnappa Nagarahalli < > honnappa.nagaraha...@linaro.org> wrote: > >> Hi Maxim, >> The test cases validation/api/pktio_run.sh and >> validation/api/pktio_run_tap.sh are failing on Travis for the following >> configurations: >> >> [image: Inline images 1] >> >> I am not able to reproduce these issues on my local machine. How do I >> debug these? Is there any more log information that I can get from Travis? >> >> The merge is available at: https://github.com/nagarah >> alli/odp/tree/2.0-api-next-merge-11Oct2017. >> >> Thank you, >> Honnappa >> > >
Re: [lng-odp] [PATCH API-NEXT v1 1/1] api: ipsec: return maximum antireplay window size via capability
Git log entry is missing. Update with some rationale why this change is needed. -Petri > -Original Message- > From: lng-odp [mailto:lng-odp-boun...@lists.linaro.org] On Behalf Of > Github ODP bot > Sent: Sunday, October 15, 2017 9:00 AM > To: lng-odp@lists.linaro.org > Subject: [lng-odp] [PATCH API-NEXT v1 1/1] api: ipsec: return maximum > antireplay window size via capability > > From: Dmitry Eremin-Solenikov> > Signed-off-by: Dmitry Eremin-Solenikov > --- > /** Email created from pull request 230 (lumag:ipsec-rws-cap) > ** https://github.com/Linaro/odp/pull/230 > ** Patch: https://github.com/Linaro/odp/pull/230.patch > ** Base sha: afeda4d14bb6f449cb269680cdbd56b26726eedf > ** Merge commit sha: bb52bccf08a68ec2e1c3988539a0295d79ebd5bd > **/ > include/odp/api/spec/ipsec.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/include/odp/api/spec/ipsec.h b/include/odp/api/spec/ipsec.h > index 3bd80b266..ddcdf75bb 100644 > --- a/include/odp/api/spec/ipsec.h > +++ b/include/odp/api/spec/ipsec.h > @@ -282,6 +282,9 @@ typedef struct odp_ipsec_capability_t { >* be used for many SAs. */ > uint32_t max_queues; > > + /** Maximum anti-replay window size. */ > + uint32_t max_antireplay_ws; > + > /** Supported cipher algorithms */ > odp_crypto_cipher_algos_t ciphers; >
Re: [lng-odp] api-next merge with ODP 2.0
I will take a look. But please check that you added this 3 commits. c16af648 travis: purge dpdk cache on version change 3cb45201 travis: build dpdk for general cpu 73bc4619 travis: temporary turn off dpdk caching In general Travis stopped due to no output. You can make tests more verbose with make check V=1 But I would start with adding dpdk commits because without them result was also unclear. Maxim. On 16 October 2017 at 06:45, Honnappa Nagarahalli < honnappa.nagaraha...@linaro.org> wrote: > Hi Maxim, > The test cases validation/api/pktio_run.sh and > validation/api/pktio_run_tap.sh are failing on Travis for the following > configurations: > > [image: Inline images 1] > > I am not able to reproduce these issues on my local machine. How do I > debug these? Is there any more log information that I can get from Travis? > > The merge is available at: https://github.com/ > nagarahalli/odp/tree/2.0-api-next-merge-11Oct2017. > > Thank you, > Honnappa >