[26455] 2021-06-17_Linux进程管理之任务绑定

文档创建者:s7ckTeam
浏览次数:1
最后更新:2025-01-19
2021-06-17_Linux进程管理之任务绑定 L i n u x   L i n u x   2 0 2 1 - 0 6 - 1 7   P e t e r   C P U   L 1 c l u s t e r c l u s t e r L 2   C P U     C P U     C P U     C P U   L i n u x     s c h e d _ s e t a f f i n i t y     C P U   p i d   C P U   I D c p u s e t s i z e   m a s k     C P U   m a s k   C P U   c p u _ s e t _ t     C P U   C P U     C P U   C P U 线   C P U     . P e t e r   L i u N X P C S D N A R M L i n u x A n d r o i d s c h e d _ s e t a f f i n i t y ( p i d _ t   p i d ,   s i z e _ t   c p u s e t s i z e ,   c o n s t   c p u _ s e t _ t   * m a s k ) / / v o i d   C P U _ Z E R O   ( c p u _ s e t _ t   * s e t ) ;   / / c p u c p u   v o i d   C P U _ S E T   ( i n t   c p u ,   c p u _ s e t _ t   * s e t ) ;   / / c p u c p u   v o i d   C P U _ C L R   ( i n t   c p u ,   c p u _ s e t _ t   * s e t ) ;   / / c p u c p u   i n t   C P U _ I S S E T   ( i n t   c p u ,   c o n s t   c p u _ s e t _ t   * s e t ) ;
  s c h e d _ s e t a f f i n i t y     C P U 2   C P U     C P U     C P U     C F S     C P U     C P U   # d e f i n e   _ G N U _ S O U R C E # i n c l u d e   < s c h e d . h > # i n c l u d e   < s t d i o . h > # i n c l u d e   < s t r i n g . h > # i n c l u d e   < s t d l i b . h > # i n c l u d e   < u n i s t d . h > # i n c l u d e   < e r r n o . h > i n t   m a i n ( i n t   a r g c ,   c h a r   * * a r g v ) {         i n t   c p u s   =   0 ;         i n t     i   =   0 ;         c p u _ s e t _ t   m a s k ;         c p u _ s e t _ t   g e t ;         c p u s   =   s y s c o n f ( _ S C _ N P R O C E S S O R S _ O N L N ) ;         p r i n t f ( " c p u s :   % d n " ,   c p u s ) ;         C P U _ Z E R O ( & m a s k ) ;         / *   s e t s e t * /         C P U _ S E T ( 2 ,   & m a s k ) ;     / * C P U 2 * /         i f   ( s c h e d _ s e t a f f i n i t y ( 0 ,   s i z e o f ( m a s k ) ,   & m a s k )   = =   - 1 )   {                 p r i n t f ( " S e t   C P U   a f f i n i t y   f a i l u e ,   E R R O R : % s n " ,   s t r e r r o r ( e r r n o ) ) ;                 r e t u r n   - 1 ;           }                             r e t u r n   0 ; }
  s c h e d _ s e t a f f i n i t y     C P U   _ _ s e t _ c p u s _ a l l o w e d _ p t r     C P U   1 .   s t o p _ o n e _ c p u ( c p u _ o f ( r q ) ,   m i g r a t i o n _ c p u _ s t o p ,   & a r g )   C P U   2 .   m o v e _ q u e u e d _ t a s k ( r q ,   & r f ,   p ,   d e s t _ c p u )   C P U     m o v e _ q u e u e d _ t a s k S Y S C A L L _ D E F I N E 3 ( s c h e d _ s e t a f f i n i t y ,   p i d _ t ,   p i d ,   u n s i g n e d   i n t ,   l e n ,   u n s i g n e d   l o n g   _ _ u s e r   * ,   u s e r _ m a s k _ p t r ) - -   s c h e d _ s e t a f f i n i t y ( p i d _ t   p i d ,   c o n s t   s t r u c t   c p u m a s k   * i n _ m a s k ) - - -   _ _ s e t _ c p u s _ a l l o w e d _ p t r ( s t r u c t   t a s k _ s t r u c t   * p ,   c o n s t   s t r u c t   c p u m a s k   * n e w _ m a s k ,   b o o l   c h e c k ) - - - -   s t o p _ o n e _ c p u ( u n s i g n e d   i n t   c p u ,   c p u _ s t o p _ f n _ t   f n ,   v o i d   * a r g ) - - - - -   m i g r a t i o n _ c p u _ s t o p ( v o i d   * d a t a ) - - - - - -   _ _ m i g r a t e _ t a s k ( s t r u c t   r q   * r q ,   s t r u c t   t a s k _ s t r u c t   * p ,   i n t   d e s t _ c p u ) - - - - - - -   m o v e _ q u e u e d _ t a s k ( s t r u c t   r q   * r q ,   s t r u c t   t a s k _ s t r u c t   * p ,   i n t   n e w _ c p u ) - - - - - - - -   e n q u e u e _ t a s k ( s t r u c t   r q   * r q ,   s t r u c t   t a s k _ s t r u c t   * p ,   i n t   f l a g s ) - - - - - - - - -   r e t u r n s   t h e   n e w   r u n   q u e u e   o f   d e s t i n a t i o n   C P U
  C P U     r q   e n q u e u e _ t a s k     C P U   C F S     e n q u e u e _ t a s k _ f a i r e n q u e u e _ t a s k _ f a i r   1 .   s t r u c t   s c h e d _ e n t i t y     o n _ r q   ,   2 .   ,     e n q u e u e _ e n t i t y   C F S   - - -   E O F   - - - s t a t i c   s t r u c t   r q   * m o v e _ q u e u e d _ t a s k ( s t r u c t   r q   * r q ,   s t r u c t   r q _ f l a g s   * r f ,               s t r u c t   t a s k _ s t r u c t   * p ,   i n t   n e w _ c p u ) {   l o c k d e p _ a s s e r t _ h e l d ( & r q - > l o c k ) ;   p - > o n _ r q   =   T A S K _ O N _ R Q _ M I G R A T I N G ;   d e q u e u e _ t a s k ( r q ,   p ,   D E Q U E U E _ N O C L O C K ) ;   s e t _ t a s k _ c p u ( p ,   n e w _ c p u ) ;   r q _ u n l o c k ( r q ,   r f ) ;   r q   =   c p u _ r q ( n e w _ c p u ) ;   r q _ l o c k ( r q ,   r f ) ;   B U G _ O N ( t a s k _ c p u ( p )   ! =   n e w _ c p u ) ;   e n q u e u e _ t a s k ( r q ,   p ,   0 ) ;   p - > o n _ r q   =   T A S K _ O N _ R Q _ Q U E U E D ;   c h e c k _ p r e e m p t _ c u r r ( r q ,   p ,   0 ) ;   r e t u r n   r q ; }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则