[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [UNIKRAFT PATCH v3 5/5] lib/ukring: Register ukring with Unikraft



Hi Alexander,

I'm gonna drop both LIBUKRING_CACHE_LINE_SIZE and
CONFIG_LIBUKRING_DEBUG_BUFRING on upstreaming.

Reviewed-by: Costin Lupu <costin.lupu@xxxxxxxxx>

On 7/23/20 3:49 PM, Alexander Jung wrote:
> This commit registers the ring buffer implementation micro-library
> with Unikraft by including it in the global library list, exports
> the ring buffer's main functions and includes the relevant initial
> Makefile.uk and Config.uk library files.
> 
> Signed-off-by: Alexander Jung <alexander.jung@xxxxxxxxx>
> ---
>  lib/Makefile.uk          |  1 +
>  lib/ukring/Config.uk     | 23 +++++++++++++++++++++++
>  lib/ukring/Makefile.uk   |  6 ++++++
>  lib/ukring/exportsyms.uk | 12 ++++++++++++
>  4 files changed, 42 insertions(+)
>  create mode 100644 lib/ukring/Config.uk
>  create mode 100644 lib/ukring/Makefile.uk
>  create mode 100644 lib/ukring/exportsyms.uk
> 
> diff --git a/lib/Makefile.uk b/lib/Makefile.uk
> index 360fcd8..4fd222d 100644
> --- a/lib/Makefile.uk
> +++ b/lib/Makefile.uk
> @@ -25,6 +25,7 @@ $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/devfs))
>  $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/9pfs))
>  $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/uklock))
>  $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/ukmpi))
> +$(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/ukring))
>  $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/ukbus))
>  $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/uksglist))
>  $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/uknetdev))
> diff --git a/lib/ukring/Config.uk b/lib/ukring/Config.uk
> new file mode 100644
> index 0000000..2481c62
> --- /dev/null
> +++ b/lib/ukring/Config.uk
> @@ -0,0 +1,23 @@
> +menuconfig LIBUKRING
> +  bool "ukring: Ring buffer interface"
> +  select LIBUKALLOC
> +  select LIBUKLOCK
> +  default n
> +  help
> +    Provide ring interface for handling object references.
> +
> +if LIBUKRING
> +
> +config LIBUKRING_CACHE_LINE_SIZE
> +  int "Cache line size"
> +  default 32
> +  help
> +    Size in bytes of a CPU d-cache line.
> +
> +config CONFIG_LIBUKRING_DEBUG_BUFRING
> +  bool "Debug the ring interface"
> +  default n
> +  help
> +    When debugging, this library stores some per-ring statistic counters 
> about the number of enqueues/dequeues.  These statistics require a mutex to 
> avoid concurrent accesses or atomic operations.
> +
> +endif
> diff --git a/lib/ukring/Makefile.uk b/lib/ukring/Makefile.uk
> new file mode 100644
> index 0000000..7874ca2
> --- /dev/null
> +++ b/lib/ukring/Makefile.uk
> @@ -0,0 +1,6 @@
> +$(eval $(call addlib_s,libukring,$(CONFIG_LIBUKRING)))
> +
> +CINCLUDES-$(CONFIG_LIBUKRING)   += -I$(LIBUKRING_BASE)/include
> +CXXINCLUDES-$(CONFIG_LIBUKRING) += -I$(LIBUKRING_BASE)/include
> +
> +LIBUKRING_SRCS-y += $(LIBUKRING_BASE)/ring.c
> diff --git a/lib/ukring/exportsyms.uk b/lib/ukring/exportsyms.uk
> new file mode 100644
> index 0000000..098f25a
> --- /dev/null
> +++ b/lib/ukring/exportsyms.uk
> @@ -0,0 +1,12 @@
> +uk_ring_alloc
> +uk_ring_free
> +uk_ring_enqueue
> +uk_ring_dequeue_mc
> +uk_ring_dequeue_sc
> +uk_ring_advance_sc
> +uk_ring_putback_sc
> +uk_ring_peek
> +uk_ring_peek_clear_sc
> +uk_ring_full
> +uk_ring_empty
> +uk_ring_count
> 



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.