[21834] 2021-04-02_浅析Linux中的零拷贝技术

文档创建者:s7ckTeam
浏览次数:5
最后更新:2025-01-18
2021-04-02_浅析Linux中的零拷贝技术   L i n u x   L e m o n S e c   2 0 2 1 - 0 4 - 0 2 h t t p s : / / r e u r l . c c / W E D d 6 5 L i n u x         W e b   S e r v e r s o c k e t s o c k e t L i n u x I / O I / O 使 r e a d w r i t e I / O 访 访 r e a d b u f b u f D M A w h i l e ( ( n   =   r e a d ( d i s k f d ,   b u f ,   B U F _ S I Z E ) )   >   0 )         w r i t e ( s o c k f d ,   b u f   ,   n ) ;
w r i t e s o c k e t 使 使 D M A C P U C P U z e r o - c o p y C P U C P U C P U   u s e r   s p a c e 使 使   m m a p m m a p ( ) r e a d
m m a p ( ) D M A w r i t e ( ) , s o c k e t s o c k e t m m a p 使 m m a p r e a d 使 m m a p 使 m m a p m a p ( t r u n c a t e ) ,   w r i t e 访 S I G B U S S I G B U S c o r e d u m p , 使 1 .   S I G B U S S I G B U S w r i t e e r r n o s u c c e s s , 2 .   使 使 使 b u f   =   m m a p ( d i s k f d ,   l e n ) ; w r i t e ( s o c k f d ,   b u f ,   l e n ) ;
R T S I G N A L L E A S E 访 S I G B U S w r i t e w r i t e e r r n o s u c c e s s m m a p
使 使 s e n d f i l e ( f c n t l ( d i s k f d ,   F _ S E T S I G ,   R T _ S I G N A L _ L E A S E )   = =   - 1 )   {         p e r r o r ( " k e r n e l   l e a s e   s e t   s i g n a l " ) ; r e t u r n   - 1 ; / *   l _ t y p e   c a n   b e   F _ R D L C K   F _ W R L C K     * / / *   l _ t y p e   c a n   b e     F _ U N L C K   * / ( f c n t l ( d i s k f d ,   F _ S E T L E A S E ,   l _ t y p e ) ) {         p e r r o r ( " k e r n e l   l e a s e   s e t   t y p e " ) ; r e t u r n   - 1 ;
2 . 1 L i n u x s e n d f i l e : s e n d f i l e ( ) i n f d o u t f d o u t f d i n f d m m a p s e n d f i l e 使 使 s e n d f i l e 使 s e n d f i l e k e r n e l   s p a c e s e n d f i l e s e n d f i l e s e n d f i l e e r r n o s u c c e s s s e n d f i l e s e n d f i l e R T S I G N A L L E A S E s o c k e t s o c k e t s o c k e t D M A s e n d f i l e D M A s o c k e t s o c k e t D M A # i n c l u d e < s y s / s e n d f i l e . h > s s i z e _ t   s e n d f i l e ( i n t   o u t _ f d ,   i n t   i n _ f d ,   o f f _ t   * o f f s e t ,   s i z e _ t   c o u n t ) ;
D M A s e n d f i l e 使 使 s p l i c e s e n d f i l e 使 L i n u x 2 . 6 . 1 7 s p l i c e s p l i c e f d i n l e n f d o u t s p l i c e f l a g s S P L I C E F M O V E   p i p e p i p e L i n u x 2 . 6 . 2 1 L i n u x S P L I C E F N O N B L O C K   s p l i c e     I / O     s p l i c e   S P L I C E F M O R E s p l i c e # d e f i n e   _ G N U _ S O U R C E                   / *   S e e   f e a t u r e _ t e s t _ m a c r o s ( 7 )   * / # i n c l u d e < f c n t l . h > s s i z e _ t   s p l i c e ( i n t   f d _ i n ,   l o f f _ t   * o f f _ i n ,   i n t   f d _ o u t ,   l o f f _ t   * o f f _ o u t ,   s i z e _ t   l e n ,  
s p l i c e L i n u x   L i n u x ( c o p y   o n   w r i t e ) C O W 访 L i n u x   I / O O _ D I R E C T I / O f b u f s I / O L e m o n S e c
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则