aboutsummaryrefslogtreecommitdiff
path: root/config/odp-linux-generic.conf
blob: 4db9ed489b21ea161d77958a0e8787b6f898982c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# ODP runtime configuration options
#
# This template configuration file (odp-linux-generic.conf) is hardcoded
# during configure/build phase and the values defined here are used if
# optional ODP_CONFIG_FILE is not set. This configuration file MUST
# include all configuration options.
#
# ODP_CONFIG_FILE can be used to override default values and it doesn't
# have to include all available options. The missing options are
# replaced with hardcoded default values.
#
# The options defined here are implementation specific and valid option
# values should be checked from the implementation code.
#
# See libconfig syntax: https://hyperrealm.github.io/libconfig/libconfig_manual.html#Configuration-Files

# Mandatory fields
odp_implementation = "linux-generic"
config_file_version = "0.1.0"

# Shared memory options
shm: {
	# Number of cached default size huge pages. These pages are allocated
	# during odp_init_global() and freed back to the kernel in
	# odp_term_global(). A value of zero means no pages are cached.
	# No negative values should be used here, they are reserved for future
	# implementations.
	#
	# ODP will reserve as many huge pages as possible, which may be less
	# than requested here if the system does not have enough huge pages
	# available.
	#
	# When using process mode threads, this value should be set to 0
	# because the current implementation won't work properly otherwise.
	num_cached_hp = 0

	# Allocate internal shared memory using a single virtual address space.
	# Set to 1 to enable using process mode.
	single_va = 0
}

# DPDK pktio options
pktio_dpdk: {
	# Default options
	num_rx_desc = 128
	num_tx_desc = 512
	rx_drop_en = 0

	# Driver specific options (use PMD names from DPDK)
	net_ixgbe: {
		rx_drop_en = 1
	}
}

# netmap pktio options
pktio_netmap: {
	# Interface specific options
	virt: {
		nr_rx_slots = 0
		nr_tx_slots = 0
	}
}

queue_basic: {
	# Maximum queue size. Value must be a power of two.
	max_queue_size = 8192

	# Default queue size. Value must be a power of two.
	default_queue_size = 4096
}

sched_basic: {
	# Priority level spread. Each priority level is spread into multiple
	# scheduler internal queues. A higher spread value typically improves
	# parallelism and thus is better for high thread counts, but causes
	# uneven service level for low thread counts. Typically, optimal
	# value is the number of threads using the scheduler.
	prio_spread = 4

	# Burst size configuration per priority. The first array element
	# represents the highest queue priority. The scheduler tries to get
	# burst_size_default[prio] events from a queue and stashes those that
	# cannot be passed to the application immediately. More events than the
	# default burst size may be returned from application request, but no
	# more than burst_size_max[prio].
	#
	# Large burst sizes improve throughput, but decrease application
	# responsiveness to higher priority events due to head of line blocking
	# caused by a burst of lower priority events.
	burst_size_default = [ 32,  32,  32,  32,  32, 16,  8, 4]
	burst_size_max     = [255, 255, 255, 255, 255, 16, 16, 8]

}