Commit 3f4e1d2
net/intel: do not bypass mbuf lib for buffer fast-free
Freeing mbufs directly into the mempool meant that mbuf instrumentation,
including mbuf history marking, was omitted. The mbufs are now freed
via the rte_mbuf_raw_free_bulk() function instead.
Added a static_assert to ensure that type casting the array of struct
ci_tx_entry_vec to an array of rte_mbuf pointers remains sound.
Performance note:
The (n & 31) condition was not removed. For the default tx_rs_thresh
value (32), the condition will be true. And due to inlining, the
rte_mbuf_raw_free_bulk() ends up in an rte_memcpy(), where the
optimizer takes advantage of knowing that the lower bits are not set.
This should compensate somewhat for removing the handcoded
optimization of copying in chunks of 32 mbufs.
Signed-off-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Tested-by: Bruce Richardson <bruce.richardson@intel.com>1 parent b3a9569 commit 3f4e1d2
1 file changed
Lines changed: 3 additions & 33 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
279 | 279 | | |
280 | 280 | | |
281 | 281 | | |
282 | | - | |
283 | | - | |
284 | | - | |
285 | | - | |
286 | | - | |
287 | | - | |
288 | | - | |
289 | | - | |
290 | | - | |
291 | | - | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
314 | 285 | | |
315 | 286 | | |
316 | 287 | | |
317 | | - | |
318 | 288 | | |
319 | 289 | | |
320 | 290 | | |
| |||
0 commit comments