malloc: fix deadlock when reading stats
[dpdk.git] / doc / guides / rel_notes / release_19_02.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright 2018 The DPDK contributors
3
4 DPDK Release 19.02
5 ==================
6
7 .. **Read this first.**
8
9    The text in the sections below explains how to update the release notes.
10
11    Use proper spelling, capitalization and punctuation in all sections.
12
13    Variable and config names should be quoted as fixed width text:
14    ``LIKE_THIS``.
15
16    Build the docs and view the output file to ensure the changes are correct::
17
18       make doc-guides-html
19
20       xdg-open build/doc/html/guides/rel_notes/release_19_02.html
21
22
23 New Features
24 ------------
25
26 .. This section should contain new features added in this release.
27    Sample format:
28
29    * **Add a title in the past tense with a full stop.**
30
31      Add a short 1-2 sentence description in the past tense.
32      The description should be enough to allow someone scanning
33      the release notes to understand the new feature.
34
35      If the feature adds a lot of sub-features you can use a bullet list
36      like this:
37
38      * Added feature foo to do something.
39      * Enhanced feature bar to do something else.
40
41      Refer to the previous release notes for examples.
42
43      Suggested order in release notes items:
44      * Core libs (EAL, mempool, ring, mbuf, buses)
45      * Device abstraction libs and PMDs
46        - ethdev (lib, PMDs)
47        - cryptodev (lib, PMDs)
48        - eventdev (lib, PMDs)
49        - etc
50      * Other libs
51      * Apps, Examples, Tools (if significant)
52
53      This section is a comment. Do not overwrite or remove it.
54      Also, make sure to start the actual text at the margin.
55      =========================================================
56
57 * **Added support to free hugepages exactly as originally allocated.**
58
59   Some applications using memory event callbacks (especially for managing
60   RDMA memory regions) require that memory be freed back to the system
61   exactly as it was originally allocated. These applications typically
62   also require that a malloc allocation not span across two separate
63   hugepage allocations.  A new ``--match-allocations`` EAL init flag has
64   been added to fulfill both of these requirements.
65
66 * **Added API to register external memory in DPDK.**
67
68   A new ``rte_extmem_register``/``rte_extmem_unregister`` API was added to allow
69   chunks of external memory to be registered with DPDK without adding them to
70   the malloc heap.
71
72 * **Support for using virtio-user without hugepages**
73
74   The --no-huge mode was augmented to use memfd-backed memory (on systems that
75   support memfd), to allow using virtio-user-based NICs without hugepages.
76
77 * **Updated the enic driver.**
78
79   * Added support for ``RTE_ETH_DEV_CLOSE_REMOVE`` flag.
80   * Added the handler to get firmware version string.
81   * Added support for multicast filtering.
82
83 * **Added a compression performance test tool.**
84
85   Added a new performance test tool to test the compressdev PMD. The tool tests
86   compression ratio and compression throughput.
87
88
89 Removed Items
90 -------------
91
92 .. This section should contain removed items in this release. Sample format:
93
94    * Add a short 1-2 sentence description of the removed item
95      in the past tense.
96
97    This section is a comment. Do not overwrite or remove it.
98    Also, make sure to start the actual text at the margin.
99    =========================================================
100
101
102 API Changes
103 -----------
104
105 .. This section should contain API changes. Sample format:
106
107    * sample: Add a short 1-2 sentence description of the API change
108      which was announced in the previous releases and made in this release.
109      Start with a scope label like "ethdev:".
110      Use fixed width quotes for ``function_names`` or ``struct_names``.
111      Use the past tense.
112
113    This section is a comment. Do not overwrite or remove it.
114    Also, make sure to start the actual text at the margin.
115    =========================================================
116
117 * eal: Function ``rte_bsf64`` in ``rte_bitmap.h`` has been renamed to
118   ``rte_bsf64_safe`` and moved to ``rte_common.h``. A new ``rte_bsf64`` function
119   has been added in ``rte_common.h`` that follows convention set by existing
120   ``rte_bsf32`` function.
121
122 * eal: Segment fd API on Linux now sets error code to ``ENOTSUP`` in more cases
123   where segment fd API is not expected to be supported:
124
125   - On attempt to get segment fd for an externally allocated memory segment
126   - In cases where memfd support would have been required to provide segment
127     fd's (such as in-memory or no-huge mode)
128
129 * eal: Functions ``rte_malloc_dump_stats()``, ``rte_malloc_dump_heaps()`` and
130   ``rte_malloc_get_socket_stats()`` are no longer safe to call concurrently with
131   ``rte_malloc_heap_create()`` or ``rte_malloc_heap_destroy()`` function calls.
132
133 * pdump: The ``rte_pdump_set_socket_dir()``, the parameter ``path`` of
134   ``rte_pdump_init()`` and enum ``rte_pdump_socktype`` were deprecated
135   since 18.05 and are removed in this release.
136
137
138 ABI Changes
139 -----------
140
141 .. This section should contain ABI changes. Sample format:
142
143    * sample: Add a short 1-2 sentence description of the ABI change
144      which was announced in the previous releases and made in this release.
145      Start with a scope label like "ethdev:".
146      Use fixed width quotes for ``function_names`` or ``struct_names``.
147      Use the past tense.
148
149    This section is a comment. Do not overwrite or remove it.
150    Also, make sure to start the actual text at the margin.
151    =========================================================
152
153
154 Shared Library Versions
155 -----------------------
156
157 .. Update any library version updated in this release
158    and prepend with a ``+`` sign, like this:
159
160      libfoo.so.1
161    + libupdated.so.2
162      libbar.so.1
163
164    This section is a comment. Do not overwrite or remove it.
165    =========================================================
166
167 The libraries prepended with a plus sign were incremented in this version.
168
169 .. code-block:: diff
170
171      librte_acl.so.2
172      librte_bbdev.so.1
173      librte_bitratestats.so.2
174      librte_bpf.so.1
175      librte_bus_dpaa.so.2
176      librte_bus_fslmc.so.2
177      librte_bus_ifpga.so.2
178      librte_bus_pci.so.2
179      librte_bus_vdev.so.2
180      librte_bus_vmbus.so.2
181      librte_cfgfile.so.2
182      librte_cmdline.so.2
183      librte_compressdev.so.1
184      librte_cryptodev.so.5
185      librte_distributor.so.1
186      librte_eal.so.9
187      librte_efd.so.1
188      librte_ethdev.so.11
189      librte_eventdev.so.6
190      librte_flow_classify.so.1
191      librte_gro.so.1
192      librte_gso.so.1
193      librte_hash.so.2
194      librte_ip_frag.so.1
195      librte_jobstats.so.1
196      librte_kni.so.2
197      librte_kvargs.so.1
198      librte_latencystats.so.1
199      librte_lpm.so.2
200      librte_mbuf.so.4
201      librte_member.so.1
202      librte_mempool.so.5
203      librte_meter.so.2
204      librte_metrics.so.1
205      librte_net.so.1
206      librte_pci.so.1
207    + librte_pdump.so.3
208      librte_pipeline.so.3
209      librte_pmd_bnxt.so.2
210      librte_pmd_bond.so.2
211      librte_pmd_i40e.so.2
212      librte_pmd_ixgbe.so.2
213      librte_pmd_dpaa2_qdma.so.1
214      librte_pmd_ring.so.2
215      librte_pmd_softnic.so.1
216      librte_pmd_vhost.so.2
217      librte_port.so.3
218      librte_power.so.1
219      librte_rawdev.so.1
220      librte_reorder.so.1
221      librte_ring.so.2
222      librte_sched.so.1
223      librte_security.so.1
224      librte_table.so.3
225      librte_timer.so.1
226      librte_vhost.so.4
227
228
229 Known Issues
230 ------------
231
232 .. This section should contain new known issues in this release. Sample format:
233
234    * **Add title in present tense with full stop.**
235
236      Add a short 1-2 sentence description of the known issue
237      in the present tense. Add information on any known workarounds.
238
239    This section is a comment. Do not overwrite or remove it.
240    Also, make sure to start the actual text at the margin.
241    =========================================================
242
243
244 Tested Platforms
245 ----------------
246
247 .. This section should contain a list of platforms that were tested
248    with this release.
249
250    The format is:
251
252    * <vendor> platform with <vendor> <type of devices> combinations
253
254      * List of CPU
255      * List of OS
256      * List of devices
257      * Other relevant details...
258
259    This section is a comment. Do not overwrite or remove it.
260    Also, make sure to start the actual text at the margin.
261    =========================================================