Lines Matching +full:per +full:- +full:context

1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
3 * Copyright(c) 2015-2017 Intel Corporation.
8 /* send context types */
13 #define SC_MAX 4 /* count of send context types */
15 /* invalid send context index */
21 /* PIO release codes - in bits, as there could more than one that apply */
28 #define PRC_SC_DISABLE 0x20 /* clean-up after a context disable */
39 struct send_context *sc;/* back pointer to owning send context */
43 void __iomem *end; /* context end address */
55 /* per-NUMA send context */
57 /* read-only after init */
62 u32 size; /* context size, in bytes */
64 int node; /* context home node */
67 u8 type; /* context type */
69 u8 hw_context; /* hardware context number */
78 u32 credits; /* number of blocks in context */
94 struct work_struct halt_work; /* halted context work queue entry */
97 /* send context flags */
105 struct send_context *sc; /* allocated working context */
107 u16 type; /* context type */
112 /* DMA credit return, index is always (context & 0x7) */
123 /* send context configuration sizes (one per type) */
132 * Since the mapping now allows for non-uniform send contexts per vl, the
145 * in a round robin fashion wrapping back to the first send context
148 * dd->pio_map
150 * | +--------------------+
152 * pio_vl_map |--------------------|
153 * +--------------------------+ | ksc[0] -> sc 1 |
154 * | list (RCU) | |--------------------|
155 * |--------------------------| ->| ksc[1] -> sc 2 |
156 * | mask | --/ |--------------------|
157 * |--------------------------| -/ | * |
158 * | actual_vls (max 8) | -/ |--------------------|
159 * |--------------------------| --/ | ksc[n-1] -> sc n |
160 * | vls (max 8) | -/ +--------------------+
161 * |--------------------------| --/
162 * | map[0] |-/
163 * |--------------------------| +--------------------+
164 * | map[1] |--- | mask |
165 * |--------------------------| \---- |--------------------|
166 * | * | \-- | ksc[0] -> sc 1+n |
167 * | * | \---- |--------------------|
168 * | * | \->| ksc[1] -> sc 2+n |
169 * |--------------------------| |--------------------|
170 * | map[vls - 1] |- | * |
171 * +--------------------------+ \- |--------------------|
172 * \- | ksc[m-1] -> sc m+n |
173 * \ +--------------------+
174 * \-
176 * \- +----------------------+
177 * \- | mask |
178 * \ |----------------------|
179 * \- | ksc[0] -> sc 1+m+n |
180 * \- |----------------------|
181 * >| ksc[1] -> sc 2+m+n |
182 * |----------------------|
184 * |----------------------|
185 * | ksc[o-1] -> sc o+m+n |
186 * +----------------------+
190 /* Initial number of send contexts per VL */
194 * struct pio_map_elem - mapping for a vl
195 * @mask - selector mask
196 * @ksc - array of kernel send contexts for this vl
208 * struct pio_vl_map - mapping for a vl
209 * @list - rcu head for free callback
210 * @mask - vl mask to "mod" the vl to produce an index to map array
211 * @actual_vls - number of vls
212 * @vls - numbers of vls rounded to next power of 2
213 * @map - array of pio_map_elem entries
235 /* send context functions */