u s e r s p a c e n v m e d r i v e r i n q e m u
play

U s e r s p a c e N V M e D r i v e r i n Q E - PowerPoint PPT Presentation

U s e r s p a c e N V M e D r i v e r i n Q E M U F a m Z h e n g S e n i o r S o f t w a r e E n g i n e e r K V M F o r m 2 0 1 7 , P r a g u e A b o u t N V M e


  1. U s e r s p a c e N V M e D r i v e r i n Q E M U F a m Z h e n g S e n i o r S o f t w a r e E n g i n e e r K V M F o r m 2 0 1 7 , P r a g u e

  2. A b o u t N V M e ● N o n - V o l a t i l e M e m o r y E x p r e s s ● A s c a l a b l e h o s t i n t e r f a c e s p e c i fi c a t i o n l i k e S C S I a n d v i r t i o ● U p t o 6 4 k I / O q u e u e s , 6 4 k c o m m a n d s p e r q u e u e ● E f fi c i e n t c o m m a n d i s s u i n g a n d c o m p l e t i o n h a n d l i n g ● E x t e n s i b l e c o m m a n d s e t s ● A t t a c h e d o v e r P C I e , M . 2 a n d f a b r i c s ( F C , R D M A ) 2 I N S E R T D E S I G N A T O R , I F N E E D E D

  3. W h y ?

  4. O v e r h e a d

  5. 6 I N S E R T D E S I G N A T O R , I F N E E D E D

  6. 7 I N S E R T D E S I G N A T O R , I F N E E D E D

  7. 8 I N S E R T D E S I G N A T O R , I F N E E D E D

  8. 9 I N S E R T D E S I G N A T O R , I F N E E D E D

  9. 1 0 I N S E R T D E S I G N A T O R , I F N E E D E D

  10. 1 1 I N S E R T D E S I G N A T O R , I F N E E D E D

  11. 1 2 I N S E R T D E S I G N A T O R , I F N E E D E D

  12. 1 3 I N S E R T D E S I G N A T O R , I F N E E D E D

  13. 1 4 I N S E R T D E S I G N A T O R , I F N E E D E D

  14. L a t e n c y r e d u c i n g ● K V M o p t i m i z a t i o n s ● k v m _ h a l t _ p o l l b y P a o l o B o n z i n i ● Q E M U I O T h r e a d p o l l b y S t e f a n H a j n o c z i ● K e r n e l o p t i m i z a t i o n s ● / s y s / b l o c k / n v m e 0 n 1 / q u e u e / i o _ p o l l b y J e n s A x b o e ● D e v i c e a s s i g n m e n t ● Q E M U : - d e v i c e v fi o - p c i ● U s e r s p a c e d e v i c e d r i v e r b a s e d o n V F I O ● D P D K / S P D K : v h o s t - u s e r - b l k ● Q E M U : V F I O d r i v e r i n t h i s t a l k 1 5 I N S E R T D E S I G N A T O R , I F N E E D E D

  15. A r c h i t e c t u r e F r o m Q E M U P o V G u e s t k e r n e l V I R T I O B l o c k B a c k e n d Q E M U B l o c k l a y e r Q C O W 2 P O S I X V / F l i I n O u x - a i o V F S H o s t k e r n e l … v fi o - p c i . k o n v m e . k o 1 6 I N S E R T D E S I G N A T O R , I F N E E D E D

  16. I m p l e m e n t a t i o n ● $ Q E M U _ S R C / u t i l / v fi o - h e l p e r s . c ● A g e n e r i c h e l p e r l i b r a r y f o r u s e r s p a c e d r i v e r s ● M a n a g e s p e r d e v i c e D M A R a d d r e s s s p a c e ● O p t i m i z e d f o r I / O o p e r a t i o n s : ● P r e - a l l o c a t e I O V A f o r a l l g u e s t r a m ● E f fi c i e n t o n e s h o t I O V A a l l o c a t i o n f o r b o u n c e b u f f e r I / O ● $ Q E M U _ S R C / b l o c k / n v m e . c ● R e g i s t e r s a n e w B l o c k D r i v e r ( n v m e : / / ) ● H a n d l e s N V M e l o g i c ● I n t e g r a t e s w i t h I O T h r e a d p o l l i n g ● P r e p a r e d f o r Q E M U m u l t i q u e u e b l o c k l a y e r 1 7 I N S E R T D E S I G N A T O R , I F N E E D E D

  17. C h a r a c t e r i s t i c s ● C o m m a n d s : R E A D , W R I T E ( w i t h F U A ) , F L U S H ● I O V b a s e d ( z e r o - c o p y ) ● O n e I O q u e u e p a i r f o r n o w ● M o r e e f fi c i e n t f o r g u e s t I / O ● L e s s e f fi c i e n t f o r b o u n c e b u f f e r e d I / O a n d u t i l i t y ● M o r e o n t h i s l a t e r … ● D e v i c e i s e x c l u s i v e l y u s e d b y o n e V M s i m i l a r t o d e v i c e a s s i g n m e n t 1 8 I N S E R T D E S I G N A T O R , I F N E E D E D

  18. I / O . . 1 ) q u e u e s v i r t i o r e q i n c l . I / O v e c t o r s ( G P A , o r v I O V A i f v I O M M U G u e s t e n a b l e d ) 2 ) p a r s e s r e q a n d m a p s I / O a d d r e s s e s t o H V A , p r e p a r i n g f o r V i r t I O f r o n t e n d D M A f r o m / t o g u e s t 3 ) F r o n t e n d c a l l s i n t o f o r I / O : b l o c k b a c k e n d b l k _ a i o _ { p r e a d v , p w r i t e v } , w i t h H V A 4 ) h a n d s o v e r t h e r e q t o b l o c k d r i v e r : B l o c k l a y e r b d r v _ n v m e . n v m e _ c o _ { p r e a d v , p w r i t e v } 5 ) fi n i s h e s t h e I / O a n d c a l l s b a c k t o f r o n t e n d B l o c k d r i v e r 6 ) v i r t q u e u e _ p u s h ( ) a n d v i r t i o _ n o t i f y ( ) 1 9 I N S E R T D E S I G N A T O R , I F N E E D E D

  19. S t e p 5 ) D r i v e r o p e r a t i o n s ( 1 ) C h e c k t h a t t h e H V A s ( o f f s e t s a n d l e n g t h s ) a r e a l i g n e d I f n o t , a l l o c a t e a n a l i g n e d b o u n c e b u f f e r t o d o n e x t s t e p s ( 2 ) T r a n s l a t e h o s t H V A s t o t h e I O V A s i n t h e u n d e r l y i n g h o s t I O M M U c o n t e x t , i n p a g e u n i t ( 3 ) P r e p a r e a n N V M e R e q u e s t s t r u c t u r e t h a t c o n t a i n s t h e p a g e l i s t a n d p u t i t o n t h e N V M e I / O q u e u e ( 4 ) K i c k d e v i c e b y w r i t i n g t o d o o r b e l l ( 5 ) P o l l f o r c o m p l e t i o n s o f e a r l i e r r e q u e s t s ( 6 ) Y i e l d u n t i l i r q e v e n t f d i s r e a d a b l e 2 0 I N S E R T D E S I G N A T O R , I F N E E D E D

  20. A d d r t r a n s l a t i o n s G u e s t a p p b u f f e r 6 7 8 9 G u e s t p h y s i c a l a d d r 0 1 6 1 0 1 1 H o s t v i r t u a l a d d r e s s . . . 9 8 9 9 1 0 0 1 0 1 1 0 6 1 1 0 1 1 1 ( n o v I O M M U ) P R P l i s t s u b m i s s i o n q u e u e I O V A ? ? ? ? R R W R ? ? . . . i o v a N V M e I O M M U 2 1 I N S E R T D E S I G N A T O R , I F N E E D E D

  21. I O V A m a p p i n g struct vfio_iommu_type1_dma_map dma_map = { struct vfio_iommu_type1_dma_map dma_map = { .argsz = sizeof(dma_map), .argsz = sizeof(dma_map), .flags = VFIO_DMA_MAP_FLAG_READ | .flags = VFIO_DMA_MAP_FLAG_READ | VFIO_DMA_MAP_FLAG_WRITE, VFIO_DMA_MAP_FLAG_WRITE, .vaddr = (uintptr_t)host, .vaddr = (uintptr_t)host, .size = size, .size = size, .iova = iova, .iova = iova, }; }; ioctl(vfio_fd, VFIO_IOMMU_MAP_DMA, &dma_map); ioctl(vfio_fd, VFIO_IOMMU_MAP_DMA, &dma_map); 2 2 I N S E R T D E S I G N A T O R , I F N E E D E D

  22. A d d r t r a n s l a t i o n s G u e s t a p p b u f f e r 6 7 8 9 G u e s t p h y s i c a l a d d r 0 1 6 1 0 1 1 . . . H o s t v i r t u a l a d d r e s s . . . 9 8 9 9 1 0 0 1 0 1 1 0 6 1 1 0 1 1 1 . . . ( n o v I O M M U ) I O V A a d d r s p a c e 1 0 1 1 1 6 2 0 2 1 . . . P R P l i s t I / O q u e u e ✓ 2 0 1 6 1 1 2 1 R R W R ? . . . i o v a 2 3 I N S E R T D E S I G N A T O R , I F N E E D E D

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend