On Mon, Jun 27, 2016 at 2:39 AM, Savolainen, Petri (Nokia - FI/Espoo) <
[email protected]> wrote:

>
>
> > -----Original Message-----
> > From: lng-odp [mailto:[email protected]] On Behalf Of
> Bill
> > Fischofer
> > Sent: Monday, June 27, 2016 5:09 AM
> > To: [email protected]
> > Subject: [lng-odp] [PATCH 2/2] validation: queue: use malloc to avoid
> > artificial limits on max_queues
> >
> > odp_queue_capability() returns max_queues which may be more than 64K.
> > Use malloc to allocate an array of queue handles to test the ability to
> > create max_queues to avoid limiting the test to 64K queues.
> >
> > Signed-off-by: Bill Fischofer <[email protected]>
> > ---
> >  test/validation/queue/queue.c | 12 ++++++------
> >  1 file changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/test/validation/queue/queue.c
> b/test/validation/queue/queue.c
> > index c21897b..9af8c9c 100644
> > --- a/test/validation/queue/queue.c
> > +++ b/test/validation/queue/queue.c
> > @@ -11,7 +11,6 @@
> >  #define MAX_BUFFER_QUEUE        (8)
> >  #define MSG_POOL_SIZE           (4 * 1024 * 1024)
> >  #define CONFIG_MAX_ITERATION    (100)
> > -#define MAX_QUEUES              (64 * 1024)
> >
> >  static int queue_context = 0xff;
> >  static odp_pool_t pool;
> > @@ -55,7 +54,7 @@ void queue_test_capa(void)
> >       odp_queue_capability_t capa;
> >       odp_queue_param_t qparams;
> >       char name[ODP_QUEUE_NAME_LEN];
> > -     odp_queue_t queue[MAX_QUEUES];
> > +     odp_queue_t *queue;
> >       int num_queues, i;
> >
> >       memset(&capa, 0, sizeof(odp_queue_capability_t));
> > @@ -71,10 +70,9 @@ void queue_test_capa(void)
> >
> >       name[ODP_QUEUE_NAME_LEN - 1] = 0;
> >
> > -     if (capa.max_queues > MAX_QUEUES)
> > -             num_queues = MAX_QUEUES;
> > -     else
> > -             num_queues = capa.max_queues;
> > +     num_queues = capa.max_queues;
> > +     queue = malloc(num_queues * sizeof(odp_queue_t));
>
> Num_queues may be large. E.g. a malloc of 100M * 8 bytes may jam a system
> which is light on DRAM but has a hard disk, etc. I think it's better to
> limit the test to some number which will run sanely on any system.
>

If the purpose of the test is to verify that an application can allocate
the max_queues number of queues, then this is the way to do that. You're
suggesting that a platform would support a number of queues that cannot
actually be allocated because is would have insufficient memory to support
the maximum?  That doesn't sound like a reasonable design. If there is to
be a "cap" it should be in the implementation of odp_queue_capability().


>
> Isn't there a less intrusive workaround for the coverity issue.
>

The Coverity issue is legitimate and changing from uint32_t to int is the
simplest (and most correct) solution. In what way is that intrusive?


>
> -Petri
>
>
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to