[6/6] Section 6: Glossary

Message ID 20230920154817.617-7-dave@youngcopy.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series docs: Unify Getting Started Guides |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/intel-Functional success Functional PASS
ci/github-robot: build fail github build: failed
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-compile-amd64-testing success Testing PASS
ci/iol-compile-arm64-testing success Testing PASS
ci/iol-unit-amd64-testing success Testing PASS
ci/iol-unit-arm64-testing success Testing PASS
ci/iol-sample-apps-testing success Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS

Commit Message

Dave Young Sept. 20, 2023, 3:48 p.m. UTC
  ---
 doc/guides/getting_started_guide/glossary.rst | 75 +++++++++++++++++++
 1 file changed, 75 insertions(+)
 create mode 100644 doc/guides/getting_started_guide/glossary.rst
  

Comments

Ferruh Yigit Sept. 25, 2023, 11:43 a.m. UTC | #1
On 9/20/2023 4:48 PM, David Young wrote:
> ---
>  doc/guides/getting_started_guide/glossary.rst | 75 +++++++++++++++++++
>  1 file changed, 75 insertions(+)
>  create mode 100644 doc/guides/getting_started_guide/glossary.rst
> 
> diff --git a/doc/guides/getting_started_guide/glossary.rst b/doc/guides/getting_started_guide/glossary.rst
> new file mode 100644
> index 0000000000..7fcfe16f38
> --- /dev/null
> +++ b/doc/guides/getting_started_guide/glossary.rst
> @@ -0,0 +1,75 @@
> +..  SPDX-License-Identifier: BSD-3-Clause
> +    Copyright(c) 2010-2025 Intel Corporation.
> +
> +Glossary
> +========
> +
> +This glossary provides definitions for key terms and concepts used within DPDK. Understanding these terms will help in comprehending the functionality and architecture of DPDK.
> +
> +**BIOS (Basic Input/Output System)**
> +
> +The firmware used to perform hardware initialization during the booting process and to provide runtime services for operating systems and programs.
> +

BIOS seems a little too generic for DPDK context, not sure.



> +**Bifurcated Driver**
> +
> +A driver model that splits functionality between kernel and userspace, often used in high-performance networking.
> +
> +**Clang-LLVM**
> +
> +A compiler toolchain that includes the Clang C compiler and LLVM linker, used for building DPDK on Windows.
> +
> +**contigmem Module**
> +
> +A module in FreeBSD that provides physically contiguous memory allocation used by DPDK.
> +
> +**DMA (Direct Memory Access)**
> +
> +A feature that allows hardware devices to access the main system memory directly, without involving the CPU.
> +
> +**EAL (Environment Abstraction Layer)**
> +
> +The layer within DPDK that abstracts environmental specifics and provides a standard programming interface.
> +
> +**hugepages**
> +
> +Large memory pages used by the operating system to manage memory more efficiently, especially in high-performance applications like DPDK.
> +
> +**IOMMU (Input-Output Memory Management Unit)**
> +
> +A hardware component that translates device-visible virtual addresses to physical addresses, providing memory protection and isolation.
> +
> +**MinGW-w64 Toolchain**
> +
> +A development environment for creating Windows applications, used as an option for compiling DPDK on Windows.
> +

"on Windows" vs "for Windows" ?



> +**NIC (Network Interface Card)**
> +
> +A hardware component that connects a computer to a network.
> +
> +**nic_uio Module**
> +
> +A UIO driver for network devices in FreeBSD, used by DPDK.
> +
> +**NUMA (Non-Uniform Memory Access)**
> +
> +A computer memory design used in multiprocessing where the memory access time depends on the memory location relative to the processor.
> +
> +**PMD (POLL Mode Driver)**
> +
> +A type of driver in DPDK that continuously polls for events rather than relying on interrupts, often used for high-performance networking.
> +

This is the only type of driver that DPDK has, and at this point term
kind of tied to DPDK, in case above can be read as this is one of the
driver types in DPDK.



> +**SoC (System on a Chip)**
> +
> +An integrated circuit that integrates all components of a computer or other electronic system into a single chip.
> +
> +**UIO (Userspace I/O)**
> +
> +A Linux kernel module that enables user-space applications to access hardware devices directly.
> +
> +**VFIO (Virtual Function I/O)**
> +
> +A kernel driver that allows a virtual machine to access physical devices directly, used in DPDK for device assignment.
> +

I am not sure if this is accurate, although it is not exactly wrong,
vfio.ko is a kernel module implementation for below 'vfio platform', and
allows "userspace applications (including virtual machine)" to access
physical device. Enables DPDK to directly access to the physical devices.

To prevent duplication, perhaps easier to first describe the "VFIO
Platform" and later describe vfio.ko as kernel module implementation for
"VFIO Platform" used by DPDK?



> +**VFIO Platform**
> +
> +A framework in Linux that allows exposing direct device access to userspace, in a secure, IOMMU-protected way.
> \ No newline at end of file

What do you think to add 'RTE' too, it may confuse some newcomers?
  

Patch

diff --git a/doc/guides/getting_started_guide/glossary.rst b/doc/guides/getting_started_guide/glossary.rst
new file mode 100644
index 0000000000..7fcfe16f38
--- /dev/null
+++ b/doc/guides/getting_started_guide/glossary.rst
@@ -0,0 +1,75 @@ 
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright(c) 2010-2025 Intel Corporation.
+
+Glossary
+========
+
+This glossary provides definitions for key terms and concepts used within DPDK. Understanding these terms will help in comprehending the functionality and architecture of DPDK.
+
+**BIOS (Basic Input/Output System)**
+
+The firmware used to perform hardware initialization during the booting process and to provide runtime services for operating systems and programs.
+
+**Bifurcated Driver**
+
+A driver model that splits functionality between kernel and userspace, often used in high-performance networking.
+
+**Clang-LLVM**
+
+A compiler toolchain that includes the Clang C compiler and LLVM linker, used for building DPDK on Windows.
+
+**contigmem Module**
+
+A module in FreeBSD that provides physically contiguous memory allocation used by DPDK.
+
+**DMA (Direct Memory Access)**
+
+A feature that allows hardware devices to access the main system memory directly, without involving the CPU.
+
+**EAL (Environment Abstraction Layer)**
+
+The layer within DPDK that abstracts environmental specifics and provides a standard programming interface.
+
+**hugepages**
+
+Large memory pages used by the operating system to manage memory more efficiently, especially in high-performance applications like DPDK.
+
+**IOMMU (Input-Output Memory Management Unit)**
+
+A hardware component that translates device-visible virtual addresses to physical addresses, providing memory protection and isolation.
+
+**MinGW-w64 Toolchain**
+
+A development environment for creating Windows applications, used as an option for compiling DPDK on Windows.
+
+**NIC (Network Interface Card)**
+
+A hardware component that connects a computer to a network.
+
+**nic_uio Module**
+
+A UIO driver for network devices in FreeBSD, used by DPDK.
+
+**NUMA (Non-Uniform Memory Access)**
+
+A computer memory design used in multiprocessing where the memory access time depends on the memory location relative to the processor.
+
+**PMD (POLL Mode Driver)**
+
+A type of driver in DPDK that continuously polls for events rather than relying on interrupts, often used for high-performance networking.
+
+**SoC (System on a Chip)**
+
+An integrated circuit that integrates all components of a computer or other electronic system into a single chip.
+
+**UIO (Userspace I/O)**
+
+A Linux kernel module that enables user-space applications to access hardware devices directly.
+
+**VFIO (Virtual Function I/O)**
+
+A kernel driver that allows a virtual machine to access physical devices directly, used in DPDK for device assignment.
+
+**VFIO Platform**
+
+A framework in Linux that allows exposing direct device access to userspace, in a secure, IOMMU-protected way.
\ No newline at end of file