From e3e363a2d192d6d0cf801a123f002dfa35c25b43 Mon Sep 17 00:00:00 2001 From: Thomas Monjalon Date: Thu, 22 Nov 2018 15:18:35 +0100 Subject: [PATCH] doc: remove PCI-specific details from EAL guide The PCI bus is an independent driver and not part of EAL as it was in the early days. EAL must be understood as a generic layer. Signed-off-by: Thomas Monjalon Acked-by: John McNamara --- doc/guides/prog_guide/env_abstraction_layer.rst | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/doc/guides/prog_guide/env_abstraction_layer.rst b/doc/guides/prog_guide/env_abstraction_layer.rst index 4f8612a241..8b5d050c76 100644 --- a/doc/guides/prog_guide/env_abstraction_layer.rst +++ b/doc/guides/prog_guide/env_abstraction_layer.rst @@ -9,7 +9,7 @@ Environment Abstraction Layer The Environment Abstraction Layer (EAL) is responsible for gaining access to low-level resources such as hardware and memory space. It provides a generic interface that hides the environment specifics from the applications and libraries. It is the responsibility of the initialization routine to decide how to allocate these resources -(that is, memory space, PCI devices, timers, consoles, and so on). +(that is, memory space, devices, timers, consoles, and so on). Typical services expected from the EAL are: @@ -22,8 +22,6 @@ Typical services expected from the EAL are: * System Memory Reservation: The EAL facilitates the reservation of different memory zones, for example, physical memory areas for device interactions. -* PCI Address Abstraction: The EAL provides an interface to access PCI address space. - * Trace and Debug Functions: Logs, dump_stack, panic and so on. * Utility Functions: Spinlocks and atomic counters that are not provided in libc. @@ -39,8 +37,6 @@ EAL in a Linux-userland Execution Environment --------------------------------------------- In a Linux user space environment, the DPDK application runs as a user-space application using the pthread library. -PCI information about devices and address space is discovered through the /sys kernel interface and through kernel modules such as uio_pci_generic, or igb_uio. -Refer to the UIO: User-space drivers documentation in the Linux kernel. This memory is mmap'd in the application. The EAL performs physical memory allocation using mmap() in hugetlbfs (using huge page sizes to increase performance). This memory is exposed to DPDK service layers such as the :ref:`Mempool Library `. @@ -250,15 +246,6 @@ The expected workflow is as follows: For more information, please refer to ``rte_malloc`` API documentation, specifically the ``rte_malloc_heap_*`` family of function calls. -PCI Access -~~~~~~~~~~ - -The EAL uses the /sys/bus/pci utilities provided by the kernel to scan the content on the PCI bus. -To access PCI memory, a kernel module called uio_pci_generic provides a /dev/uioX device file -and resource files in /sys -that can be mmap'd to obtain access to PCI address space from the application. -The DPDK-specific igb_uio module can also be used for this. Both drivers use the uio kernel feature (userland driver). - Per-lcore and Shared Variables ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- 2.20.1