Can't I just use memblock in the end?
Is it not possible to skip memblock and directly set buddy?
The difference between memblock and buddy
Why is buddy the basis of memory manager and other managers?
Why do we need to create slab and vmalloc after creating buddy?
What are the characteristics of these memory managers???
The third stage consumer
The third stage is to establish a buddy
Alloc_pages requests are continuous pages of physical memory.
Physical addresses are continuous, virtual addresses must be continuous
But at least one page or more
question:
1. The minimum memory size that can be requested by the buddy API is one page, and it cannot be smaller
2.alloc_pages If you apply for 2 or more pages, it will return correctly only when there are 2 consecutive pages in physical memory; otherwise, it returns 0
The fourth stage consumer
Used to solve buddy's first problem
solution:
Think of buddy as a big memory wholesale agent (buddy memory allocator) and build a small agent (slab memory allocator)
slba buys memory from buddy, divides the memory into smaller blocks (A) (less than 1 page), and manages them.
Users wholesale A from slab
other:
Because the second problem is not solved, as long as the application is successful (no matter how big it is), it will definitely be the following status:
Physical addresses are continuous, virtual addresses are continuous
The fifth stage consumer
Used to solve buddy's second problem
solution:
Instead of building a distributor based on buddy
Instead, it encapsulates a layer
This extra layer mainly uses the page table to map discontinuous physical memory into the virtual kernel address space to make it appear continuous.
Previous article:OK6410A Development Board (VIII) 39 linux-5.11 OK6410A memblock alloc and free
Next article:OK6410A Development Board (VIII) 37 linux-5.11 OK6410A Memory Management Phase 5
- Popular Resources
- Popular amplifiers
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- Huawei's Strategic Department Director Gai Gang: The cumulative installed base of open source Euler operating system exceeds 10 million sets
- Download from the Internet--ARM Getting Started Notes
- Learn ARM development(22)
- Learn ARM development(21)
- Learn ARM development(20)
- Learn ARM development(19)
- Learn ARM development(14)
- Learn ARM development(15)
- Analysis of the application of several common contact parts in high-voltage connectors of new energy vehicles
- Wiring harness durability test and contact voltage drop test method
- 【FAQ】Microchip Live: Wi-Fi Security for Enterprise
- EEWORLD University Hall----Microelectronics Technology (Harbin Institute of Technology)
- About the voltage spike problem of MOS in motor driver
- [ESP32-S2-Kaluga-1 Review] Running ESP32 II Development Environment and Configuration
- Schematic diagram - the function of connecting the output of the comparator LM393 to the in-phase input terminal
- How can this power supply be used to charge a 48V battery car?
- TI - MCU - MSP430 User Guide 34 -> USS Module
- Simplifying Your Ethernet Design, Part 1: Ethernet PHY Basics and the Selection Process
- MSP432E401Y MCU intelligent car PID speed control code
- Embedded processors face side-channel attacks