DPDK HPET support has been disabled for many years and superceded by
other timer options such as TSC. Mark HPET support as deprecated
allowing for future removal.

As part of marking the feature as deprecated, remove documentation
instructions as to how to use and configure it, since we do not want to
encourage further use of this feature in new development

Signed-off-by: Bruce Richardson <[email protected]>
---
 doc/guides/linux_gsg/enable_func.rst | 32 ----------------------------
 doc/guides/linux_gsg/sys_reqs.rst    |  3 ---
 doc/guides/rel_notes/deprecation.rst |  6 ++++++
 meson_options.txt                    |  2 +-
 4 files changed, 7 insertions(+), 36 deletions(-)

diff --git a/doc/guides/linux_gsg/enable_func.rst 
b/doc/guides/linux_gsg/enable_func.rst
index d99fafbde0..4c3dffee60 100644
--- a/doc/guides/linux_gsg/enable_func.rst
+++ b/doc/guides/linux_gsg/enable_func.rst
@@ -88,8 +88,6 @@ See :ref:`eal_hugepage_mapping` section to learn how these 
limits affect EAL.
 Device Control
 ~~~~~~~~~~~~~~
 
-If the HPET is to be used, ``/dev/hpet`` permissions must be adjusted.
-
 For ``vfio-pci`` kernel driver, the following Linux file system objects'
 permissions should be adjusted:
 
@@ -159,33 +157,3 @@ one can look into "Linux cgroups",
 Also see
 `CPU isolation example 
<https://www.suse.com/c/cpu-isolation-practical-example-part-5/>`_
 and `systemd core isolation example 
<https://www.rcannings.com/systemd-core-isolation/>`_.
-
-.. _linux_gsg_high_precision_event_timer:
-
-High Precision Event Timer (HPET) Functionality
------------------------------------------------
-
-DPDK can support the system HPET as a timer source rather than the system 
default timers,
-such as the core Time-Stamp Counter (TSC) on x86 systems.
-To enable HPET support in DPDK:
-
-#. Ensure that HPET is enabled in BIOS settings.
-#. Enable ``HPET_MMAP`` support in kernel configuration.
-   Note that this may involve doing a kernel rebuild,
-   as many common linux distributions do *not* have this setting
-   enabled by default in their kernel builds.
-#. Enable DPDK support for HPET by using the build-time meson option 
``use_hpet``,
-   for example, ``meson configure -Duse_hpet=true``
-
-For an application to use the ``rte_get_hpet_cycles()`` and 
``rte_get_hpet_hz()`` API calls,
-and optionally to make the HPET the default time source for the rte_timer 
library,
-the ``rte_eal_hpet_init()`` API call should be called at application 
initialization.
-This API call will ensure that the HPET is accessible,
-returning an error to the application if it is not.
-
-For applications that require timing APIs, but not the HPET timer specifically,
-it is recommended that the ``rte_get_timer_cycles()`` and 
``rte_get_timer_hz()``
-API calls be used instead of the HPET-specific APIs.
-These generic APIs can work with either TSC or HPET time sources,
-depending on what is requested by an application call to 
``rte_eal_hpet_init()``,
-if any, and on what is available on the system at runtime.
diff --git a/doc/guides/linux_gsg/sys_reqs.rst 
b/doc/guides/linux_gsg/sys_reqs.rst
index 2a55301893..a3b23e8168 100644
--- a/doc/guides/linux_gsg/sys_reqs.rst
+++ b/doc/guides/linux_gsg/sys_reqs.rst
@@ -130,9 +130,6 @@ System Software
 
     *   PROC_PAGE_MONITOR support
 
-    *   HPET and HPET_MMAP configuration options should also be enabled if 
HPET support is required.
-        See the section on :ref:`linux_gsg_high_precision_event_timer` for 
more details.
-
 .. _linux_gsg_hugepages:
 
 Use of Hugepages in the Linux Environment
diff --git a/doc/guides/rel_notes/deprecation.rst 
b/doc/guides/rel_notes/deprecation.rst
index ae2205827b..88c90fb60d 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -20,6 +20,7 @@ Deprecation Notices
 
   - ``kernel_dir``: option unused as Linux kernel drivers are in a separate 
``dpdk-kmods`` repository.
   - ``tests``: disabling tests can be achieved by using the ``enable_apps`` / 
``disable_apps`` options instead.
+  - ``use_hpet``: option option will be removed as HPET support itself is 
deprecated (see below).
 
 * kvargs: The function ``rte_kvargs_process`` will get a new parameter
   for returning key match count. It will ease handling of no-match case.
@@ -34,6 +35,11 @@ Deprecation Notices
   Use the ``-S <service-corelist>`` parameter instead
   to specify the cores to be used for background services in DPDK.
 
+* hpet: HPET support is deprecated and will be removed in a future release.
+  Support has been disabled by default for many years.
+  Applications should use the generic timer APIs,
+  such as ``rte_get_timer_cycles()`` and ``rte_get_timer_hz()`` instead of 
HPET-specific APIs.
+
 * lib: will fix extending some enum/define breaking the ABI. There are multiple
   samples in DPDK that enum/define terminated with a ``.*MAX.*`` value which is
   used by iterators, and arrays holding these values are sized with this
diff --git a/meson_options.txt b/meson_options.txt
index 323a3901e1..340d9d0a9a 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -57,4 +57,4 @@ option('enable_trace_fp', type: 'boolean', value: false, 
description:
 option('tests', type: 'boolean', value: true, description:
        '[Deprecated] Value unused. Add "tests" to disable_apps setting to 
disable the unit tests')
 option('use_hpet', type: 'boolean', value: false, description:
-       'use HPET timer in EAL')
+       '[Deprecated] use HPET timer in EAL')
-- 
2.55.0

Reply via email to