mem: use memfd for no-huge mode
[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: Segment fd API on Linux now sets error code to ``ENOTSUP`` in more cases
118   where segment fd API is not expected to be supported:
119
120   - On attempt to get segment fd for an externally allocated memory segment
121   - In cases where memfd support would have been required to provide segment
122     fd's (such as in-memory or no-huge mode)
123
124 * pdump: The ``rte_pdump_set_socket_dir()``, the parameter ``path`` of
125   ``rte_pdump_init()`` and enum ``rte_pdump_socktype`` were deprecated
126   since 18.05 and are removed in this release.
127
128
129 ABI Changes
130 -----------
131
132 .. This section should contain ABI changes. Sample format:
133
134    * sample: Add a short 1-2 sentence description of the ABI change
135      which was announced in the previous releases and made in this release.
136      Start with a scope label like "ethdev:".
137      Use fixed width quotes for ``function_names`` or ``struct_names``.
138      Use the past tense.
139
140    This section is a comment. Do not overwrite or remove it.
141    Also, make sure to start the actual text at the margin.
142    =========================================================
143
144
145 Shared Library Versions
146 -----------------------
147
148 .. Update any library version updated in this release
149    and prepend with a ``+`` sign, like this:
150
151      libfoo.so.1
152    + libupdated.so.2
153      libbar.so.1
154
155    This section is a comment. Do not overwrite or remove it.
156    =========================================================
157
158 The libraries prepended with a plus sign were incremented in this version.
159
160 .. code-block:: diff
161
162      librte_acl.so.2
163      librte_bbdev.so.1
164      librte_bitratestats.so.2
165      librte_bpf.so.1
166      librte_bus_dpaa.so.2
167      librte_bus_fslmc.so.2
168      librte_bus_ifpga.so.2
169      librte_bus_pci.so.2
170      librte_bus_vdev.so.2
171      librte_bus_vmbus.so.2
172      librte_cfgfile.so.2
173      librte_cmdline.so.2
174      librte_compressdev.so.1
175      librte_cryptodev.so.5
176      librte_distributor.so.1
177      librte_eal.so.9
178      librte_efd.so.1
179      librte_ethdev.so.11
180      librte_eventdev.so.6
181      librte_flow_classify.so.1
182      librte_gro.so.1
183      librte_gso.so.1
184      librte_hash.so.2
185      librte_ip_frag.so.1
186      librte_jobstats.so.1
187      librte_kni.so.2
188      librte_kvargs.so.1
189      librte_latencystats.so.1
190      librte_lpm.so.2
191      librte_mbuf.so.4
192      librte_member.so.1
193      librte_mempool.so.5
194      librte_meter.so.2
195      librte_metrics.so.1
196      librte_net.so.1
197      librte_pci.so.1
198    + librte_pdump.so.3
199      librte_pipeline.so.3
200      librte_pmd_bnxt.so.2
201      librte_pmd_bond.so.2
202      librte_pmd_i40e.so.2
203      librte_pmd_ixgbe.so.2
204      librte_pmd_dpaa2_qdma.so.1
205      librte_pmd_ring.so.2
206      librte_pmd_softnic.so.1
207      librte_pmd_vhost.so.2
208      librte_port.so.3
209      librte_power.so.1
210      librte_rawdev.so.1
211      librte_reorder.so.1
212      librte_ring.so.2
213      librte_sched.so.1
214      librte_security.so.1
215      librte_table.so.3
216      librte_timer.so.1
217      librte_vhost.so.4
218
219
220 Known Issues
221 ------------
222
223 .. This section should contain new known issues in this release. Sample format:
224
225    * **Add title in present tense with full stop.**
226
227      Add a short 1-2 sentence description of the known issue
228      in the present tense. Add information on any known workarounds.
229
230    This section is a comment. Do not overwrite or remove it.
231    Also, make sure to start the actual text at the margin.
232    =========================================================
233
234
235 Tested Platforms
236 ----------------
237
238 .. This section should contain a list of platforms that were tested
239    with this release.
240
241    The format is:
242
243    * <vendor> platform with <vendor> <type of devices> combinations
244
245      * List of CPU
246      * List of OS
247      * List of devices
248      * Other relevant details...
249
250    This section is a comment. Do not overwrite or remove it.
251    Also, make sure to start the actual text at the margin.
252    =========================================================