I heard from somewhere, without IOMMU, the S/W should pin the DMA buffer until the DMA is complete because the physical page can be assigned to another processor in the mean time. And I heard that if we have IOMMU for the device, we don't need to pin the page (the DMA buffer). But I think even with IOMMU, the pages can still be allocated to another process before DMA is complete so problem can arise. Why don't we have to pin the pages when we have IOMMU? Does the iommu subsystem pin the page?
with IOMMU, why don't we have to pin the DMA buffer pages?
304 Views Asked by Chan Kim At
0
There are 0 best solutions below
Related Questions in LINUX-KERNEL
- Android kernel error: undefined reference to `get_hw_version_platform'
- Is there a need for BPF Linux namespace?
- Facing fatal errors while running "yum update" command on CentOS 7/Cloudlinux 7
- crash utility itself crashes while decoding kdump generated from null pointer dereference in kernel module
- How to compile the Linux kernel with -O0 for more detailed debug?
- Linux support for parallel Pixel data Image sensor
- Can't upgrade to newest version of linux-image-6.5.0-26-generic
- How to protect a page so that it cannot be write in mips arch?
- How to extract the .img file into normal kernel source file in the linux?
- Storage size of struct hash_desc desc; isn't known
- How can I intercept failed file openning calls?
- struct nameidata-Linux Kernel Module
- How to modify a 'struct msghdr' in Linux Kernel Module?
- How to allocate 500MB+ physically contiguous memory in a Linux kernel module and copy data to that memory from a userspace process?
- Hyper Threading: nosmt in grub configuration
Related Questions in EMBEDDED-LINUX
- Touch calibration error when using Avalonia UI with Raspberry PI 4 (lite) DRM Mode
- Can't ping to 8.8.8.8 and google.com in beaglebone black
- How to extract the .img file into normal kernel source file in the linux?
- Using C++ libgpiod to calculate interval and speed between events
- yocto bitbake 'python3 setup.py bdist_wheel ' execution failed
- How to reduce cached memory used by Linux kernel on embedded linux platform
- Unable to parse input tree, possibly due to dash
- How to add a button handler to GPIO pin through a push button
- Linux of_platform_depopulate() does not remove drivers
- Filling a sk_buff with content of recieved frame
- How to reduce reserved memory allocated by Linux kernel during boot time
- embedded linux buildroot how to work with axi-gpio?
- How do I know when the dsa_loop and dsa_loop_bdinfo linux kernel modules are working?
- buildroot for zedboard, how to enable axi-gpio in device tree?
- Driver is not loading when there 2 or more source files
Related Questions in DMA
- STM32 ADC DMA low raw/Voltage readings
- the end of the I/O operation is notified to the system by an interrupt.how much system time do the mentioned operations occupy?
- Use Nvidia as DMA devices is possible?
- Does the Direct Memory Access (DMA) interfere with the execution of user program execution?
- A breakpoint instruction (__debugbreak() statement or a similar call) was executed in p.exe
- How to use DMAMUX generated events to trigger another DMA request?
- How to use DMA memory to memory in stm32h723zgt6?
- Cache issue when creating shared memory between kernel space and user space
- DMA buf import into Vulkan
- stm32 cubeIDE DMA DAC noise on DAC output
- STM32F4 Serial Port Forwarding Architecture
- STM32 ADC: Continuous conversion (DMA) vs. discontinuous conversion accuracy
- AMD IOMMU IO_PAGE_FAULT
- T-Display-S3-long FreeRTOS Memory allocation fails while there is heap space available
- Arduino Pro Portenta H7 I2S and DMA
Related Questions in IOMMU
- PCIe MSI Interrupts directly into Userspace with VFIO & IOMMU
- AMD IOMMU IO_PAGE_FAULT
- Cannot open /dev/vfio/noiommu-0: Operation not permitted
- How to ensure continuous physical memory address with IOMMU?
- DPDK EAL error when using IOVA-VA memory mode
- VFIO PCIe BAR write won't work. Register value falls back when program execution finished
- I'm a bit confused how memory mapped I/O works on a Raspberry pi
- How to add VFIO-IOMMU in KVM virtual machine (Aarch64)?
- Reading 0 when reading SMMUv2 registers from user space in Linux
- How does memory mapped I/O (MMIO) work on ARM architectures?
- Create an IOMMU entry in Linux
- how is 'stream ID' or 'iommu specifier' determined in PCIe root complex mode?
- How to configure IOMMU protection for my hypervisor?
- PCIe DMA aarch64 0x10 Translation Fault
- with IOMMU, why don't we have to pin the DMA buffer pages?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?