On Tue, Mar 28, 2017 at 2:23 PM, Brian Brooks <[email protected]> wrote:
> Signed-off-by: Brian Brooks <[email protected]>
> ---
>  include/odp/api/spec/queue.h | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/include/odp/api/spec/queue.h b/include/odp/api/spec/queue.h
> index 7972feac..1cec4773 100644
> --- a/include/odp/api/spec/queue.h
> +++ b/include/odp/api/spec/queue.h
> @@ -124,6 +124,11 @@ typedef struct odp_queue_param_t {
>           * the queue type. */
>         odp_queue_type_t type;
>
> +       /** Queue size
> +         *
> +         * Indicates the max ring size of the ring buffer. */
> +       uint32_t ring_size;

ODP queues have historically been of unspecified size. If we're going
to introduce the notion of explicitly limited sized queues this has
additional implications.

First, ring_size is an inappropriate choice of name here since a ring
is an implementation model, not a specification. The documentation
says "Queue size", so

uint32_t size;

is sufficient here. We should document that size = 0 requests a queue
of default size (which may be unbounded).

Second, if we're going to allow a queue size to be specified then this
needs to be added as an output to odp_queue_capability() so the
application knows the max_size supported (again 0 = unbounded).

A larger question, however, is why is this being introduced at all
since this field is only used in the modified
odph_cuckoo_table_create() helper routine and this, in turn, is only
used within the cuckootable test module? This seems an extraneous and
unnecessary change and has no relationship to the rest of this patch
series.

So Parts 1 and 3 of this series don't seem to have anything to do with
the scalable scheduler. As a minor point, the order of these needs to
be reversed to preserve bisectability since Part 1 can't reference the
new field before Part 3 defines it.

> +
>         /** Enqueue mode
>           *
>           * Default value for both queue types is ODP_QUEUE_OP_MT. Application
> --
> 2.12.1
>

Reply via email to