[26442] 2021-05-28_万字整理,肝翻Linux内存管理所有知识点

文档创建者:s7ckTeam
浏览次数:4
最后更新:2025-01-19
2021-05-28_万字整理,肝翻Linux内存管理所有知识点 L i n u x P e t e r   L i n u x   2 0 2 1 - 0 5 - 2 8 L i n u x L i n u x L i n u x L i n u x L i n u x 西 L i n u x L i n u x 西 L i n u x L i n u x C P U 访 访 c p u c p u 访 1 .   T L B M M U 访 T L B 2 .   C a c h e s c p u 访 a r m v 8 c a c h e s L 2   C a c h e C O N F I G _ A R M 6 4 _ V A _ B I T S 4 8 A R M v 8 K e r n e l   S p a c e T T B R 1 _ E L 1 U s e r   S p a c e T T B R 0 _ E L 0 1 ( 0 x F F F F 0 0 0 0 _ 0 0 0 0 0 0 0 0   ~   0 x F F F F F F F F _ F F F F F F F F ) 0 ( 0 x 0 0 0 0 0 0 0 0 _ 0 0 0 0 0 0 0 0   ~ 0 x 0 0 0 0 F F F F _ F F F F F F F F )
l i n u x ( P G D ) ( P U D ) ( P M D ) ( P T E ) 1 .   C R 3 ( ) 线
2 .   p g d _ t 3 .   线 4 .   p u d _ t 5 .   线 6 .   p m d _ t 7 .   线 8 .   p t e _ t 9 .   线 1 0 .   访 线 访 访 访 ( ) 访 线 L i n u x a r m v 8 访 l i n u x h e a d . S c r e a t e _ p a g e _ t a b l e s c r e a t e _ p a g e _ t a b l e s i d e n t i t y m a p p i n g k e r n e l   i m a g e   m a p p i n g i d e n t i t y   m a p i d m a p _ t e x t i d m a p _ t e x t M M U k e r n e l   i m a g e   m a p k e r n e l k e r n e l   t x t r o d a t a d a t a b s s
_ _ c r e a t e _ p a g e _ t a b l e s i d e n t i t y   m a p k e r n e l   i m a g e   m a p a r c h / a r m 6 4 / k e r n e l / h e a d . S : E N T R Y ( s t e x t )                 b l             p r e s e r v e _ b o o t _ a r g s                 b l             e l 2 _ s e t u p                                               / /   D r o p   t o   E L 1 ,   w 0 = c p u _ b o o t _ m o d e                 a d r p         x 2 3 ,   _ _ P H Y S _ O F F S E T                 a n d           x 2 3 ,   x 2 3 ,   M I N _ K I M G _ A L I G N   -   1         / /   K A S L R   o f f s e t ,   d e f a u l t s   t o   0                 b l             s e t _ c p u _ b o o t _ m o d e _ f l a g                 b l             _ _ c r e a t e _ p a g e _ t a b l e s                 / *                   *   T h e   f o l l o w i n g   c a l l s   C P U   s e t u p   c o d e ,   s e e   a r c h / a r m 6 4 / m m / p r o c . S   f o r                   *   d e t a i l s .                   *   O n   r e t u r n ,   t h e   C P U   w i l l   b e   r e a d y   f o r   t h e   M M U   t o   b e   t u r n e d   o n   a n d                   *   t h e   T C R   w i l l   h a v e   b e e n   s e t .                   * /                 b l             _ _ c p u _ s e t u p                                           / /   i n i t i a l i s e   p r o c e s s o r                 b               _ _ p r i m a r y _ s w i t c h E N D P R O C ( s t e x t )
c r e a t e _ p g d _ e n t r y P G D l e v e l ( P U D ,   P M D ) c r e a t e _ b l o c k _ m a p P T E 1 .   2 .   m e m b l o c k 3 .   4 .   z o n e   _ _ c r e a t e _ p a g e _ t a b l e s : . . . . . .                 c r e a t e _ p g d _ e n t r y   x 0 ,   x 3 ,   x 5 ,   x 6                 m o v           x 5 ,   x 3                                                     / /   _ _ p a ( _ _ i d m a p _ t e x t _ s t a r t )                 a d r _ l       x 6 ,   _ _ i d m a p _ t e x t _ e n d                         / /   _ _ p a ( _ _ i d m a p _ t e x t _ e n d )                 c r e a t e _ b l o c k _ m a p   x 0 ,   x 7 ,   x 3 ,   x 5 ,   x 6                 / *                   *   M a p   t h e   k e r n e l   i m a g e   ( s t a r t i n g   w i t h   P H Y S _ O F F S E T ) .                   * /                 a d r p         x 0 ,   s w a p p e r _ p g _ d i r                 m o v _ q       x 5 ,   K I M A G E _ V A D D R   +   T E X T _ O F F S E T     / /   c o m p i l e   t i m e   _ _ v a ( _ t e x t )                 a d d           x 5 ,   x 5 ,   x 2 3                                           / /   a d d   K A S L R   d i s p l a c e m e n t                 c r e a t e _ p g d _ e n t r y   x 0 ,   x 5 ,   x 3 ,   x 6                 a d r p         x 6 ,   _ e n d                                                 / /   r u n t i m e   _ _ p a ( _ e n d )                 a d r p         x 3 ,   _ t e x t                                               / /   r u n t i m e   _ _ p a ( _ t e x t )                 s u b           x 6 ,   x 6 ,   x 3                                             / /   _ e n d   -   _ t e x t                 a d d           x 6 ,   x 6 ,   x 5                                             / /   r u n t i m e   _ _ v a ( _ e n d )                 c r e a t e _ b l o c k _ m a p   x 0 ,   x 7 ,   x 3 ,   x 5 ,   x 6   . . . . . .
L i n u x n o d e   1 .   访   N U M A N o n - U n i f o r m   M e m o r y   A c c e s s n o d e 访 n o d e C P U n o d e c p u n o d e 访 n o d e 访 n o d e 2 .   访   U M A U n i f o r m   M e m o r y   A c c e s s S M P S y m m e t r i c M u l t i - P r o c e s s 访 n o d e z o n e Z O N E p a g e s t r u c t   p a g e p a g e   f r a m e p a g e 使 s t r u c t   p a g e p a g e 4 K 4 K 4 K p a g e   f r a m e p a g e   f r a m e   n u m ( p f n ) p f n p a g e   f r a m e p f n > > P A G E _ S H I F T   =   p f n p f n p a g e
C O N F I G _ F L A T M E M C O N F I G _ D I S C O N T I G M E M C O N F I G _ S P A R S E M E M _ V M E M M A P A R M 6 4 使 s t r u c t   p a g e v m e m m a p s t r u c t   p a g e v m e m m a p v m e m m a p + p f n s t r u c t   p a g e L i n u x ( z o n e d   p a g e   f r a m e   a l l o c a t o r ) l i n u x 使 D M A Z O N E _ D M A   Z O N E _ N O R M A L   - > Z O N E _ D M A   H I G H M E M   Z O N E _ H I G H M E M   - > Z O N E _ N O R M A L   - >   Z O N E _ D M A   6 _ _ a l l o c _ p a g e s _ n o d e m a s k
1 .   p e r   C P U 2 .   1 .   L i n u x s t r u c t   p a g e   * _ _ a l l o c _ p a g e s _ n o d e m a s k ( g f p _ t   g f p _ m a s k ,   u n s i g n e d   i n t   o r d e r ,   i n t   p r e f e r r e d _ n i d ,               n o d e m a s k _ t   * n o d e m a s k ) {     p a g e   =   g e t _ p a g e _ f r o m _ f r e e l i s t ( a l l o c _ m a s k ,   o r d e r ,   a l l o c _ f l a g s ,   & a c ) ; / / f a s t p a t h p c p ( p e r _ c p u _ p a g e s )     . . . . . .     p a g e   =   _ _ a l l o c _ p a g e s _ s l o w p a t h ( a l l o c _ m a s k ,   o r d e r ,   & a c ) ; / / s l o w p a t h     . . . . . . }
z o n e H I G H M E M - > N O R M A L z o n e f r e e   m e m o r y l o w   w a t e r   m a r k l o w w a t e r   m a r k z o n e r m q u e u e B u d d y   s t a t i c   s t r u c t   p a g e   * g e t _ p a g e _ f r o m _ f r e e l i s t ( g f p _ t   g f p _ m a s k ,   u n s i g n e d   i n t   o r d e r ,   i n t   a l l o c _ f l a g s ,             c o n s t   s t r u c t   a l l o c _ c o n t e x t   * a c ) {     f o r _ n e x t _ z o n e _ z o n e l i s t _ n o d e m a s k ( z o n e ,   z ,   a c - > z o n e l i s t ,   a c - > h i g h _ z o n e i d x ,   a c - > n o d e m a s k )     {         i f   ( ! z o n e _ w a t e r m a r k _ f a s t ( z o n e ,   o r d e r ,   m a r k ,   a c _ c l a s s z o n e _ i d x ( a c ) ,   a l l o c _ f l a g s ) )         {             r e t   =   n o d e _ r e c l a i m ( z o n e - > z o n e _ p g d a t ,   g f p _ m a s k ,   o r d e r ) ;               s w i t c h   ( r e t )   {             c a s e   N O D E _ R E C L A I M _ N O S C A N :                 c o n t i n u e ;             c a s e   N O D E _ R E C L A I M _ F U L L :                 c o n t i n u e ;             d e f a u l t :                 i f   ( z o n e _ w a t e r m a r k _ o k ( z o n e ,   o r d e r ,   m a r k ,   a c _ c l a s s z o n e _ i d x ( a c ) ,   a l l o c _ f l a g s ) )                     g o t o   t r y _ t h i s _ z o n e ;                 c o n t i n u e ;             }         }         t r y _ t h i s _ z o n e :   / / z o n e         p a g e   =   r m q u e u e ( a c - > p r e f e r r e d _ z o n e r e f - > z o n e ,   z o n e ,   o r d e r ,   g f p _ m a s k ,   a l l o c _ f l a g s ,   a c - > m i g r a t e t y p e ) ;     }         r e t u r n   N U L L ; }
使 5 5 5 L i n u x ( B u d d y   s y s t e m ) 1 1 1 2 4 8 1 6 3 2 6 4 1 2 8 2 5 6 5 1 2 1 0 2 4 1 0 2 4 4 M B 2 5 6 2 5 6 5 1 2 2 2 5 6 2 5 6 5 1 2 1 0 2 4 B u d d y B u d d y 2 ^ n B u d d y e c h o   m   >   / p r o c / s y s r q - t r i g g e r b u d d y / p r o c / b u d d y i n f o B u d d y  
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则