On 04/04 22:27:54, Maxim Uvarov wrote:
> On 04/04/17 21:48, Brian Brooks wrote:
> > Add queue getters and setters to provide an abstraction over more than one
> > internal queue data structure.
> > 
> > Use buffer handles instead of pointer to internal object in pktio and tm 
> > code.
> > 
> > Increase the running time of odp_sched_latency to get more stable numbers
> > across multiple runs. This is not done for SP scheduler because it is too 
> > slow.
> > 
> > Use an explicit scheduler group in odp_sched_latency.
> > 
> > Add scalable queue and scheduler implementation.
> > 
> > Signed-off-by: Brian Brooks <brian.bro...@arm.com>
> > Signed-off-by: Kevin Wang <kevin.w...@arm.com>
> > Signed-off-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com>
> > Signed-off-by: Ola Liljedahl <ola.liljed...@arm.com>
> > ---
> >  platform/linux-generic/Makefile.am                 |   21 +-
> >  .../include/odp/api/plat/schedule_types.h          |   20 +-
> >  .../linux-generic/include/odp_queue_internal.h     |  122 +-
> >  platform/linux-generic/include/odp_schedule_if.h   |  166 +-
> >  .../include/odp_schedule_ordered_internal.h        |  150 ++
> >  platform/linux-generic/m4/odp_schedule.m4          |   55 +-
> >  platform/linux-generic/odp_classification.c        |    4 +-
> >  platform/linux-generic/odp_packet_io.c             |   88 +-
> >  platform/linux-generic/odp_queue.c                 |    2 +-
> >  platform/linux-generic/odp_queue_scalable.c        |  883 +++++++++
> >  platform/linux-generic/odp_schedule_if.c           |   36 +-
> >  platform/linux-generic/odp_schedule_scalable.c     | 1922 
> > ++++++++++++++++++++
> >  .../linux-generic/odp_schedule_scalable_ordered.c  |  285 +++
> >  platform/linux-generic/odp_traffic_mngr.c          |    7 +-
> >  platform/linux-generic/pktio/loop.c                |   10 +-
> >  test/common_plat/performance/odp_sched_latency.c   |   68 +-
> >  16 files changed, 3754 insertions(+), 85 deletions(-)
> >  create mode 100644 
> > platform/linux-generic/include/odp_schedule_ordered_internal.h
> >  create mode 100644 platform/linux-generic/odp_queue_scalable.c
> >  create mode 100644 platform/linux-generic/odp_schedule_scalable.c
> >  create mode 100644 platform/linux-generic/odp_schedule_scalable_ordered.c
> > 
> > diff --git a/platform/linux-generic/Makefile.am 
> > b/platform/linux-generic/Makefile.am
> > index 70683cac..8c263b99 100644
> > --- a/platform/linux-generic/Makefile.am
> > +++ b/platform/linux-generic/Makefile.am
> > @@ -151,6 +151,8 @@ noinst_HEADERS = \
> >               ${srcdir}/include/odp_debug_internal.h \
> >               ${srcdir}/include/odp_forward_typedefs_internal.h \
> >               ${srcdir}/include/odp_internal.h \
> > +             ${srcdir}/include/odp_llqueue.h \
> > +             ${srcdir}/include/odp_llsc.h \
> >               ${srcdir}/include/odp_name_table_internal.h \
> >               ${srcdir}/include/odp_packet_internal.h \
> >               ${srcdir}/include/odp_packet_io_internal.h \
> > @@ -219,13 +221,9 @@ __LIB__libodp_linux_la_SOURCES = \
> >                        pktio/ring.c \
> >                        odp_pkt_queue.c \
> >                        odp_pool.c \
> > -                      odp_queue.c \
> >                        odp_rwlock.c \
> >                        odp_rwlock_recursive.c \
> > -                      odp_schedule.c \
> >                        odp_schedule_if.c \
> > -                      odp_schedule_sp.c \
> > -                      odp_schedule_iquery.c \
> >                        odp_shared_memory.c \
> >                        odp_sorted_list.c \
> >                        odp_spinlock.c \
> > @@ -250,6 +248,21 @@ __LIB__libodp_linux_la_SOURCES = \
> >                        arch/@ARCH_DIR@/odp_cpu_arch.c \
> >                        arch/@ARCH_DIR@/odp_sysinfo_parse.c
> >  
> > +if ODP_SCHEDULE_SP
> 
> can that ifs be removed here? I commented about that in previous patch set.

My understanding is that conditional compilation is sufficient
for linux-generic. That is what this is. This form of conditional
compilation does not require a queue interface or akwardly appending
'scalable' to every global symbol that pertains to this queue and
scheduler implementation.

The path that we are headed down is much improved extensibility and
proper run-time interfaces, which would take a bit of time and might
not be easy to review. Not to mention a non-objective in linux-generic.

> Maxim.
> 
> > +__LIB__libodp_linux_la_SOURCES += odp_schedule_sp.c
> > +endif
> > +
> > +if ODP_SCHEDULE_IQUERY
> > +__LIB__libodp_linux_la_SOURCES += odp_schedule_iquery.c
> > +endif
> > +
> > +if ODP_SCHEDULE_SCALABLE
> > +__LIB__libodp_linux_la_SOURCES += odp_queue_scalable.c 
> > odp_schedule_scalable.c \
> > +                             odp_schedule_scalable_ordered.c
> > +else
> > +__LIB__libodp_linux_la_SOURCES += odp_queue.c odp_schedule.c
> > +endif
> > +
> >  if HAVE_PCAP
> >  __LIB__libodp_linux_la_SOURCES += pktio/pcap.c
> >  endif

Reply via email to