API Reference Manual  1.47.0
odp_schedule_group_param_t Struct Reference

Schedule group parameters. More...

#include <schedule_types.h>

Collaboration diagram for odp_schedule_group_param_t:
[legend]

Data Fields

struct {
   odp_cache_stash_config_t   common
 Common group specific cache stashing hints. More...
 
   struct {
      const odp_cache_stash_prio_config_t *   prio
 Pointer to 'num' entries of priority specific configuration. More...
 
      uint32_t   num
 Number of entries in 'prio' array. More...
 
   } 
 Priority specific cache stashing hints. More...
 
cache_stash_hints
 Group specific cache stashing hints. More...
 

Detailed Description

Schedule group parameters.

Definition at line 373 of file api/spec/schedule_types.h.

Field Documentation

◆ common

odp_cache_stash_config_t odp_schedule_group_param_t::common

Common group specific cache stashing hints.

Configures cache stashing for each priority under the group. By default, all regions are disabled (see odp_cache_stash_config_t::regions).

Definition at line 452 of file api/spec/schedule_types.h.

◆ prio

const odp_cache_stash_prio_config_t* odp_schedule_group_param_t::prio

Pointer to 'num' entries of priority specific configuration.

The field is ignored if 'num' is 0.

Definition at line 466 of file api/spec/schedule_types.h.

◆ num

uint32_t odp_schedule_group_param_t::num

Number of entries in 'prio' array.

0 by default.

Definition at line 472 of file api/spec/schedule_types.h.

◆ 

struct { ... } odp_schedule_group_param_t::cache_stash_hints

Group specific cache stashing hints.

Depending on the implementation, configuring these may improve performance. Cache stashing hints can be configured with a group-wide configuration using 'common' and with optional priority specific exceptions using 'prio' and 'num'. For example:

...
odp_schedule_group_param_t param;
odp_cache_stash_prio_config_t prio;
odp_schedule_group_param_init(&param);
prio.prio = 3;
prio.config.regions.event_user_area_l2 = 1;
prio.config.event_user_area.l2.offset = 0;
prio.config.event_user_area.l2.len = 64;
param.cache_stash_hints.prio = &prio;
param.cache_stash_hints.num = 1;
...

would disable cache stashing entirely for the group except priority 3 would have event user area L2 cache stashing enabled.

...
odp_schedule_group_param_t param;
odp_cache_stash_prio_config_t prio;
odp_schedule_group_param_init(&param);
param.cache_stash_hints.common.regions.event_data_l2 = 1;
param.cache_stash_hints.common.event_data.l2.offset = 0;
param.cache_stash_hints.common.event_data.l2.len = 128;
prio.prio = 3;
prio.config.regions.all = 0;
param.cache_stash_hints.prio = &prio;
param.cache_stash_hints.num = 1;
...

would enable event data L2 cache stashing entirely for the group except disable cache stashing for priority 3.

...
odp_schedule_group_param_t param;
odp_cache_stash_prio_config_t prio[2];
odp_schedule_group_param_init(&param);
param.cache_stash_hints.common.regions.event_data_l2 = 1;
param.cache_stash_hints.common.event_data.l2.offset = 0;
param.cache_stash_hints.common.event_data.l2.len = 128;
prio[0].prio = 3;
prio[0].config.regions.event_data_l2 = 1;
prio[0].config.event_data.l2.offset = 64;
prio[0].config.event_data.l2.len = 128;
prio[1].prio = 4;
prio[1].config.regions.event_data_l2 = 1;
prio[1].config.event_data.l2.offset = 64;
prio[1].config.event_data.l2.len = 128;
param.cache_stash_hints.prio = prio;
param.cache_stash_hints.num = 2;
...

would enable event data L2 cache stashing entirely for the group but priorities 3 and 4 would have event data cache stashing beginning from offset 64 instead of 0.


The documentation for this struct was generated from the following file: