Yes. This is an implementation bug. Will fix the bug. Minor correction, when classifier_enabled is set the current design is to create all the queues in a single shot rather than as needed since it will create network jitter if queues are created at random.
Regards, Bala On 3 October 2017 at 09:59, Bill Fischofer <bill.fischo...@linaro.org> wrote: > Thanks Liron, I've checked the code and that seems to be another issue. The > intent is that when classifier_enable is set the ODP classifier creates > queues as needed. > > +cc Bala for additional commentary. > > On Tue, Oct 3, 2017 at 8:48 AM, Liron Himi <lir...@marvell.com> wrote: >> >> Hi Bill, >> >> >> >> I opened ‘https://bugs.linaro.org/show_bug.cgi?id=3289’ for this issue. >> >> >> >> I think there is another issue related to this topic in case PKTIO was >> configure in schedule mode. >> >> The ‘start’ function assumes ‘num_in_queue’ is bigger than ‘0’ but in the >> classifier_enable case it is ‘0’ so pktio is register with no real indexes, >> actually in ‘index’ array there is garbage. (see code below) >> >> >> >> If I want to have a local fix, what do you think should be the number of >> queues? ‘max_input_queues’ in capabilities ? >> >> >> >> Regards, >> >> Liron >> >> >> >> >> >> int odp_pktio_start(odp_pktio_t hdl) >> >> { >> >> … >> >> mode = entry->s.param.in_mode; >> >> >> >> if (mode == ODP_PKTIN_MODE_SCHED) { >> >> unsigned i; >> >> unsigned num = entry->s.num_in_queue; >> >> int index[num]; >> >> >> >> for (i = 0; i < num; i++) { >> >> index[i] = i; >> >> >> >> if >> (entry->s.in_queue[i].queue == ODP_QUEUE_INVALID) { >> >> >> ODP_ERR("No input queue\n"); >> >> return -1; >> >> } >> >> } >> >> >> >> sched_fn->pktio_start(pktio_to_id(hdl), >> num, index); >> >> } >> >> >> >> return res; >> >> } >> >> From: Bill Fischofer [mailto:bill.fischo...@linaro.org] >> Sent: Monday, October 02, 2017 14:52 >> To: Liron Himi <lir...@marvell.com> >> Cc: lng-odp@lists.linaro.org >> Subject: [EXT] Re: [lng-odp] odp_pktin_queue_param_t - classifier_enable & >> num_queues >> >> >> >> External Email >> >> ________________________________ >> >> Thanks Liron. This appears to be a bug in the implementation. It's only an >> error for num_queues to be zero if hash_enabled is set. >> >> >> >> On Mon, Oct 2, 2017 at 6:02 AM, Liron Himi <lir...@marvell.com> wrote: >> >> Hi, >> >> According to the API if 'classifier_enable' is enabled than 'num_queues' >> and 'queue_param' should be ignored. >> But looking at linux-generic implementation those parameters are always >> being checked regardless of 'classifier_enable' value. >> 'classifier_enable' is actually ignore at linux-generic implementation. >> The main problem is if 'num_queues' is '0' than 'odp_pktin_queue_config' >> return an error although it can be '0' if 'classifier_enable' is enabled. >> >> Regards, >> Liron >> >> > >