Looks like the issue is that the name change from core_count to cpu_count went in ahead of this patch.
On Thu, Jan 8, 2015 at 4:55 PM, Bill Fischofer <[email protected]> wrote: > This patch does not apply to the current ODP tip: > > error: patch failed: example/packet/odp_pktio.c:65 > Hunk #2 succeeded at 77 (offset 1 line). > Hunk #3 succeeded at 100 (offset 1 line). > Hunk #4 succeeded at 142 (offset 1 line). > Hunk #5 succeeded at 219 (offset 1 line). > Hunk #6 succeeded at 226 (offset 1 line). > Hunk #7 succeeded at 343 (offset 1 line). > Hunk #8 succeeded at 359 (offset 1 line). > Applying patch example/packet/odp_pktio.c with 1 reject... > Rejected hunk #1. > Hunk #2 applied cleanly. > Hunk #3 applied cleanly. > Hunk #4 applied cleanly. > Hunk #5 applied cleanly. > Hunk #6 applied cleanly. > Hunk #7 applied cleanly. > Hunk #8 applied cleanly. > Patch failed at 0001 example: packet: single instance per interface > The copy of the patch that failed is found in: > /home/bill/linaro/stuart/.git/rebase-apply/patch > > > On Thu, Jan 8, 2015 at 10:07 AM, Stuart Haslam <[email protected]> > wrote: > >> Signed-off-by: Stuart Haslam <[email protected]> >> --- >> example/packet/odp_pktio.c | 129 >> +++++++++++++++++---------------------------- >> 1 file changed, 49 insertions(+), 80 deletions(-) >> >> diff --git a/example/packet/odp_pktio.c b/example/packet/odp_pktio.c >> index 0a38ec2..ee84c4a 100644 >> --- a/example/packet/odp_pktio.c >> +++ b/example/packet/odp_pktio.c >> @@ -65,11 +65,10 @@ >> * Parsed command line application arguments >> */ >> typedef struct { >> - int core_count; >> + int core_count; /**< Number of cores to use */ >> int if_count; /**< Number of interfaces to be used */ >> char **if_names; /**< Array of pointers to interface names >> */ >> int mode; /**< Packet IO mode */ >> - odp_buffer_pool_t pool; /**< Buffer pool for packet IO */ >> } appl_args_t; >> >> /** >> @@ -77,7 +76,6 @@ typedef struct { >> */ >> typedef struct { >> char *pktio_dev; /**< Interface name to use */ >> - odp_buffer_pool_t pool; /**< Buffer pool for packet IO */ >> int mode; /**< Thread mode */ >> } thread_args_t; >> >> @@ -101,6 +99,40 @@ static void parse_args(int argc, char *argv[], >> appl_args_t *appl_args); >> static void print_info(char *progname, appl_args_t *appl_args); >> static void usage(char *progname); >> >> +static odp_pktio_t create_pktio(const char *dev, odp_buffer_pool_t pool) >> +{ >> + odp_pktio_t pktio; >> + odp_queue_t inq_def; >> + odp_queue_param_t qparam; >> + char inq_name[ODP_QUEUE_NAME_LEN]; >> + int ret; >> + >> + /* Open a packet IO instance */ >> + pktio = odp_pktio_open(dev, pool); >> + if (pktio == ODP_PKTIO_INVALID) >> + EXAMPLE_ABORT("Error: pktio create failed for %s\n", dev); >> + >> + qparam.sched.prio = ODP_SCHED_PRIO_DEFAULT; >> + qparam.sched.sync = ODP_SCHED_SYNC_ATOMIC; >> + qparam.sched.group = ODP_SCHED_GROUP_DEFAULT; >> + snprintf(inq_name, sizeof(inq_name), "%i-pktio_inq_def", >> (int)pktio); >> + inq_name[ODP_QUEUE_NAME_LEN - 1] = '\0'; >> + >> + inq_def = odp_queue_create(inq_name, ODP_QUEUE_TYPE_PKTIN, >> &qparam); >> + if (inq_def == ODP_QUEUE_INVALID) >> + EXAMPLE_ABORT("Error: pktio inq create failed for %s\n", >> dev); >> + >> + ret = odp_pktio_inq_setdef(pktio, inq_def); >> + if (ret != 0) >> + EXAMPLE_ABORT("Error: default input-Q setup for %s\n", >> dev); >> + >> + printf(" created pktio:%02i, dev:%s, queue mode (ATOMIC >> queues)\n" >> + " \tdefault pktio%02i-INPUT queue:%u\n", >> + pktio, dev, pktio, inq_def); >> + >> + return pktio; >> +} >> + >> /** >> * Packet IO loopback worker thread using ODP queues >> * >> @@ -109,73 +141,27 @@ static void usage(char *progname); >> static void *pktio_queue_thread(void *arg) >> { >> int thr; >> - odp_buffer_pool_t pkt_pool; >> odp_pktio_t pktio; >> thread_args_t *thr_args; >> odp_queue_t outq_def; >> - odp_queue_t inq_def; >> - char inq_name[ODP_QUEUE_NAME_LEN]; >> - odp_queue_param_t qparam; >> odp_packet_t pkt; >> odp_buffer_t buf; >> - int ret; >> unsigned long pkt_cnt = 0; >> unsigned long err_cnt = 0; >> - int mtu = 0; >> >> thr = odp_thread_id(); >> thr_args = arg; >> >> - printf("Pktio thread [%02i] starts, pktio_dev:%s\n", thr, >> - thr_args->pktio_dev); >> - >> - /* Lookup the packet pool */ >> - pkt_pool = odp_buffer_pool_lookup("packet_pool"); >> - if (pkt_pool == ODP_BUFFER_POOL_INVALID || pkt_pool != >> thr_args->pool) { >> - EXAMPLE_ERR(" [%02i] Error: pkt_pool not found\n", thr); >> - return NULL; >> - } >> - >> - /* Open a packet IO instance for this thread */ >> - pktio = odp_pktio_open(thr_args->pktio_dev, pkt_pool); >> + pktio = odp_pktio_lookup(thr_args->pktio_dev); >> if (pktio == ODP_PKTIO_INVALID) { >> - EXAMPLE_ERR(" [%02i] Error: pktio create failed\n", thr); >> + EXAMPLE_ERR(" [%02i] Error: lookup of pktio %s failed\n", >> + thr, thr_args->pktio_dev); >> return NULL; >> } >> >> - mtu = odp_pktio_mtu(pktio); >> - if (mtu > 0) >> - printf("PKTIO: %d, dev %s, MTU: %d\n", >> - pktio, thr_args->pktio_dev, mtu); >> - else >> - EXAMPLE_ERR("odp_pktio_mtu: unable to get MTU\n"); >> - >> - /* >> - * Create and set the default INPUT queue associated with the >> 'pktio' >> - * resource >> - */ >> - qparam.sched.prio = ODP_SCHED_PRIO_DEFAULT; >> - qparam.sched.sync = ODP_SCHED_SYNC_ATOMIC; >> - qparam.sched.group = ODP_SCHED_GROUP_DEFAULT; >> - snprintf(inq_name, sizeof(inq_name), "%i-pktio_inq_def", >> (int)pktio); >> - inq_name[ODP_QUEUE_NAME_LEN - 1] = '\0'; >> - >> - inq_def = odp_queue_create(inq_name, ODP_QUEUE_TYPE_PKTIN, >> &qparam); >> - if (inq_def == ODP_QUEUE_INVALID) { >> - EXAMPLE_ERR(" [%02i] Error: pktio queue creation >> failed\n", >> - thr); >> - return NULL; >> - } >> - >> - ret = odp_pktio_inq_setdef(pktio, inq_def); >> - if (ret != 0) { >> - EXAMPLE_ERR(" [%02i] Error: default input-Q setup\n", >> thr); >> - return NULL; >> - } >> - >> - printf(" [%02i] created pktio:%02i, queue mode (ATOMIC queues)\n" >> - " default pktio%02i-INPUT queue:%u\n", >> - thr, pktio, pktio, inq_def); >> + printf(" [%02i] looked up pktio:%02i, queue mode (ATOMIC >> queues)\n" >> + " default pktio%02i-INPUT queue:%u\n", >> + thr, pktio, pktio, odp_pktio_inq_getdef(pktio)); >> >> /* Loop packets */ >> for (;;) { >> @@ -232,7 +218,6 @@ static void *pktio_queue_thread(void *arg) >> static void *pktio_ifburst_thread(void *arg) >> { >> int thr; >> - odp_buffer_pool_t pkt_pool; >> odp_pktio_t pktio; >> thread_args_t *thr_args; >> int pkts, pkts_ok; >> @@ -240,37 +225,18 @@ static void *pktio_ifburst_thread(void *arg) >> unsigned long pkt_cnt = 0; >> unsigned long err_cnt = 0; >> unsigned long tmp = 0; >> - int mtu; >> >> thr = odp_thread_id(); >> thr_args = arg; >> >> - printf("Pktio thread [%02i] starts, pktio_dev:%s\n", thr, >> - thr_args->pktio_dev); >> - >> - /* Lookup the packet pool */ >> - pkt_pool = odp_buffer_pool_lookup("packet_pool"); >> - if (pkt_pool == ODP_BUFFER_POOL_INVALID || pkt_pool != >> thr_args->pool) { >> - EXAMPLE_ERR(" [%02i] Error: pkt_pool not found\n", thr); >> - return NULL; >> - } >> - >> - /* Open a packet IO instance for this thread */ >> - pktio = odp_pktio_open(thr_args->pktio_dev, pkt_pool); >> + pktio = odp_pktio_lookup(thr_args->pktio_dev); >> if (pktio == ODP_PKTIO_INVALID) { >> - EXAMPLE_ERR(" [%02i] Error: pktio create failed.\n", >> thr); >> + EXAMPLE_ERR(" [%02i] Error: lookup of pktio %s failed\n", >> + thr, thr_args->pktio_dev); >> return NULL; >> } >> >> - mtu = odp_pktio_mtu(pktio); >> - if (mtu > 0) >> - printf("PKTIO: %d, dev %s, MTU: %d\n", >> - pktio, thr_args->pktio_dev, mtu); >> - else >> - EXAMPLE_ERR("odp_pktio_mtu: unable to get mtu\n"); >> - >> - printf(" [%02i] created pktio:%02i, burst mode\n", >> - thr, pktio); >> + printf(" [%02i] looked up pktio:%02i, burst mode\n", thr, pktio); >> >> /* Loop packets */ >> for (;;) { >> @@ -376,6 +342,10 @@ int main(int argc, char *argv[]) >> } >> odp_buffer_pool_print(pool); >> >> + /* Create a pktio instance for each interface */ >> + for (i = 0; i < args->appl.if_count; ++i) >> + create_pktio(args->appl.if_names[i], pool); >> + >> /* Create and init worker threads */ >> memset(thread_tbl, 0, sizeof(thread_tbl)); >> for (i = 0; i < num_workers; ++i) { >> @@ -388,7 +358,6 @@ int main(int argc, char *argv[]) >> if_idx = i % args->appl.if_count; >> >> args->thread[i].pktio_dev = args->appl.if_names[if_idx]; >> - args->thread[i].pool = pool; >> args->thread[i].mode = args->appl.mode; >> >> if (args->appl.mode == APPL_MODE_PKT_BURST) >> -- >> 2.1.1 >> >> >> >> _______________________________________________ >> lng-odp mailing list >> [email protected] >> http://lists.linaro.org/mailman/listinfo/lng-odp >> > >
_______________________________________________ lng-odp mailing list [email protected] http://lists.linaro.org/mailman/listinfo/lng-odp
