[dpdk-dev] [PATCH v4 1/2] librte_headroom: New library for checking core/system/app load

De Lara Guarch, Pablo pablo.de.lara.guarch at intel.com
Wed Feb 18 14:36:15 CET 2015


Hi Pawel,

A few things to fix in this patch:

> -----Original Message-----
> From: Wodkowski, PawelX
> Sent: Tuesday, February 17, 2015 4:42 PM
> To: dev at dpdk.org
> Cc: De Lara Guarch, Pablo
> Subject: [PATCH v4 1/2] librte_headroom: New library for checking
> core/system/app load
> 
> This library provide API to measure time spend in particular parts of
> code and to calculate optimal polling time.
> 
> To calculate a those statistics application code need to be devided into

Typo in "devided"

> parts (called jobs) that do something. It is up to application to decide
> what is considered a job.
> 
> Series of jobs must be surrounded with the rte_headroom_start_loop() and
> rte_headroom_finish_loop() calls. After that, jobs might be started.
> Each job must be surrounded with rte_headroom_start_job() and
> rte_headroom_finish_job() calls.
> 
> After job finish its execution, period in which it should be called

Finishes

> again is adjusted to minimize time wasted on unnecessary polls/calls.
> Adjustmend is based on data provided by job itself (ex: number of
> packets it processed).

Adjustment

> 
> After all jobs in serie are executed fallowing statistics are updated
> and might be used by application. Statistics can be reset. Some of
> provided statistic data:
>  - total/min/max execution - time spent in executing jobs.
>  - total/min/max management - time spent outside execution area. This
> value might used to measure overhead of sheduling jobs. This time also

Be used, scheduling

> contains overhead of headroom library itself.
>  - number of loops that executed at least one job
>  - executed jobs
>  - time when statistics were reset.
> 
> Each job provide total/min/max execution time and execution count
> statistics.
> 
> Signed-off-by: Pawel Wodkowski <pawelx.wodkowski at intel.com>
> ---
>  config/common_bsdapp                         |   5 +
>  config/common_linuxapp                       |   5 +
>  lib/Makefile                                 |   1 +
>  lib/librte_headroom/Makefile                 |  54 +++++
>  lib/librte_headroom/rte_headroom.c           | 271
> ++++++++++++++++++++++
>  lib/librte_headroom/rte_headroom.h           | 324
> +++++++++++++++++++++++++++
>  lib/librte_headroom/rte_headroom_version.map |  20 ++
>  7 files changed, 680 insertions(+)
>  create mode 100644 lib/librte_headroom/Makefile
>  create mode 100644 lib/librte_headroom/rte_headroom.c
>  create mode 100644 lib/librte_headroom/rte_headroom.h
>  create mode 100644 lib/librte_headroom/rte_headroom_version.map
> 

[...]

> diff --git a/lib/librte_headroom/rte_headroom_version.map
> b/lib/librte_headroom/rte_headroom_version.map
> new file mode 100644
> index 0000000..1f20016
> --- /dev/null
> +++ b/lib/librte_headroom/rte_headroom_version.map
> @@ -0,0 +1,20 @@
> +DPDK_2.0 {
> +	global:
> +
> +	rte_headroom_init;
> +	rte_headroom_start_loop;
> +	rte_headroom_finish_loop;
> +	rte_headroom_job_init;
> +	rte_headroom_set_job_target;
> +	rte_headroom_start_job;
> +	rte_headroom_finish_job;
> +	rte_headroom_job_set_period;
> +	rte_headroom_set_min_period;
> +	rte_headroom_set_max_period;
> +	rte_headroom_set_update_period_function;
> +	rte_headroom_reset_job_stats;
> +	rte_headroom_reset_stats;
> +

Trailing whitespaces here.

> +	local: *;
> +};
> +

Trailing whitespaces here.
> \ No newline at end of file
> --
> 1.9.1



More information about the dev mailing list