I have come across a term - holes in the memory in Linux. I believe this is the memory that is I/O remapped. Is my understanding correct?
What is meant by holes in the memory Linux?
2.4k Views Asked by dexterous At
1
There are 1 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 LINUX-DEVICE-DRIVER
- How to offload NAPI poll function to workqueue
- Kernel module configuration locked built in?
- I want to sleep while holding a mutex
- Insmod is not working
- USB Full Speed polling interval
- disabling CONFIG_NET_DMA
- Measure memory usage of a certain Linux driver module
- Documentation for regulator framework with device tree
- how is DMA-capable memory defined?
- TechWell TW6869 driver does not generate interrupts on embedded device
- How to share same header files between kernel modules and userspace applications.
- Detect active touchscreen on Linux (and if multitouch)
- how to use single platform device driver for multiple devices
- When to Update ALSA Audio Driver Buffer Pointer
- How to print kernel stack's lower and upper address in linux for process using pid and without using pid
Related Questions in MEMORY-MAPPING
- uEFI Virtual to Physical Memory translation
- Using memcpy and friends with memory-mapped I/O
- Why is my Rust executable mapped to such high addresses (near the stack) instead of 0x400000?
- Save NSData when memory mapped
- linux kernel preallocated non mapped virtual memory
- How to access memory mapped file created by parent process in C (Windows)
- how to access a user space buffer from kernel
- How does an OS find a peripheral's assigned address(es)?
- Identifying memory-mapped files
- Mapping files bigger than 2GB with Java
- vxWorks 6.8 mapping physical to virtual memory
- How are memory mapped devices allocated an address and how does the CPU know what it is
- How do you create a reference to an array at a certain address?
- What is the benefit of having the registers as a part of memory in AVR microcontrollers?
- Who loads the BIOS and the memory map during boot-up
Related Questions in IOREMAP
- reserve system memory, ioremap()?
- Kernel driver, ioremap necessary in MMU-less system?
- Using physical address as sk_buff data fragment
- LINUX KERNEL driver hangs/freeze after handling mapped register
- Reading block from MTD flash with ioremap
- Can you mmap (user) and ioremap_nocache (kernal) the same phys address?
- Can only read 0 from ioremap() memory
- ioremap returns abnormal virtual address
- ioremap_wc sending 64 bytes only
- ioremap - Unable to handle kernel paging request at virtual address XXXXXXXX
- Why ioremap allocated areas have such large aligment?
- what is the meaning of mapping virtual address to physical address?
- map reserver memory at boot to user space using remap_pfn_range
- using ioremap over kernel memory boot time reservation
- Why PAGE_SIZE is often used in ioremap?
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?
Holes in memory can mean different things:
It can refer to physical memory addressing: For historical and boot-strapping reasons, in the "standard PC" (x86) architecture, all of system RAM is not contiguous. There are "holes" in the address space where memory-mapped I/O resides. For example, from the earliest days, there has been an area reserved for boot ROM (BIOS) and video memory. Also, there is a large area of the address space which is reserved for dynamic assignment to PCI (and PCI-X or PCI-Express) peripherals. These areas are often mapped as needed into kernel virtual address space by device drivers (which may be referred to as "I/O remapping").
Memory controllers built-in to the motherboard allow the physical address of the RAM to be configured (this is typically handled by the BIOS in the standard PC architecture). Other [non-x86] architectures often have similar holes in the physical address space.
The term can also refer to unassigned regions in the virtual address space. Both kernel virtual address space and user processes' virtual address space typically have "holes" in them. For example, Linux doesn't map any physical memory corresponding to virtual address 0 (i.e. the first page of the address space never has valid memory) -- this allows null pointer references to be trapped.
In some kinds of memory allocations, the Linux kernel maintains unmapped areas between properly allocated virtual memory regions in order to trap faulty memory references (i.e. that stray beyond the end of the allocated space).