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?
302 Views Asked by Chan Kim At
0
There are 0 best solutions below
Related Questions in LINUX-KERNEL
- kernel module does not print packet info
- android linux kernel communicate with user space about NETLINK_USER
- How to offload NAPI poll function to workqueue
- Why Device Tree Structure (DTS) file is needed both in bootloader and kernel source code?
- Bootloader in Assembly with Linux kernel
- pktgen not sending packets more than 1kb big
- Use static analysis tools to check null pointers and memory leaks in Linux device drivers
- How to build Linux kernel to support SO_ATTACH_BPF socket option?
- How do I know the last sched time of a process
- linux kernel compile error....udevd[63]: error getting socket
- Process in background mode trying to read from stdin
- board firmware update through uefi capsule feature from Linux
- spin_lock before writing status register
- Kernel module configuration locked built in?
- Install Subversion 1.7 on Debian jessie
Related Questions in EMBEDDED-LINUX
- How to offload NAPI poll function to workqueue
- Why Device Tree Structure (DTS) file is needed both in bootloader and kernel source code?
- Qtwebengine on Embedded linux, with qtwayland and OpenGL not working, black rectangles seen on browser
- board firmware update through uefi capsule feature from Linux
- How to get list of programs which can open a particular file extension in Linux?
- u-boot select boot partition based on GPIO state
- Bit Bang with SPI (fwirte, write performance)
- How to setup test SMTP server for devices on local network
- Documentation for regulator framework with device tree
- TechWell TW6869 driver does not generate interrupts on embedded device
- How to change tty group on Linux (build with buildroot)
- How to save console log from chrome in local file without any third party tool?
- Raw access on eMMC with alternating speeds
- Qt application randomly failing to properly paint the interface showing black screen instead
- Trouble implementing android_serialport_api into my own application
Related Questions in DMA
- STM32F4 Handling peripheral error while making a DMA Transfer (RX)
- disabling CONFIG_NET_DMA
- how is DMA-capable memory defined?
- Need Help to Develop Linux PCIe Driver using DMA Concept
- STM32F4 TIM6 interruption doesn't happen while DMA working
- Linux DMA from User Space Bus Error
- What does DMA Channel virtualization mean?
- What is the use of the DMA controller in a processor?
- C++: Using dynamic memory allocation to write a function similar to the C realloc() function (i.e. change it's size)
- Is there a way to read a file into memory using DMA in Linux?
- Direct Memory Access with JTAG in Trust Zone
- FAST DMA benefit from FPGA using threads in C++
- I'm looking for sample code to service the USCI (UART) on an MSP430 via DMA not interrupts
- UART DMA for varying sized arrays
- How to benchmark PCIe and DMA?
Related Questions in IOMMU
- Cannot open /dev/vfio/noiommu-0: Operation not permitted
- Linux DMA 32-bit dma_alloc_coherent wrong behavior when intel_iommu=on
- INTEL VT-D Root table and context table relationship
- Is an address in a PCI transaction translated by IOMMU by default on x86 platform?
- What's the purpose of bypassing remapping in Thunderbolt driver?
- Address Translation in a Bus hierarchy
- how is 'stream ID' or 'iommu specifier' determined in PCIe root complex mode?
- Reading 0 when reading SMMUv2 registers from user space in Linux
- How to add VFIO-IOMMU in KVM virtual machine (Aarch64)?
- No Host Display After GPU Passthrough
- check for IOMMU support on linux
- IOMMU initialization without BIOS support
- with IOMMU, why don't we have to pin the DMA buffer pages?
- kernelstub can't find kernel or initrd image on Ubuntu 21.04
- Why does my host OS experience high system cpu usage on cores performing networking when using SR-IOV?
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 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?