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
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 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

  • r

S

  • f

t w a r e E n g i n e e r K V M F

  • r

m 2 1 7 , P r a g u e

slide-2
SLIDE 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 2

A b

  • u

t N V M e

  • N
  • n
  • V
  • l

a t i l e M e m

  • r

y E x p r e s s

  • A

s c a l a b l e h

  • s

t i n t e r f a c e s p e c i fi c a t i

  • n

l i k e S C S I a n d v i r t i

  • U

p t

  • 6

4 k I / O q u e u e s , 6 4 k c

  • m

m a n d s p e r q u e u e

  • E

f fi c i e n t c

  • m

m a n d i s s u i n g a n d c

  • m

p l e t i

  • n

h a n d l i n g

  • E

x t e n s i b l e c

  • m

m a n d s e t s

  • A

t t a c h e d

  • 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 )

slide-3
SLIDE 3
slide-4
SLIDE 4

W h y ?

slide-5
SLIDE 5

O v e r h e a d

slide-6
SLIDE 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

slide-7
SLIDE 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

slide-8
SLIDE 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

slide-9
SLIDE 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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

slide-15
SLIDE 15

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

L a t e n c y r e d u c i n g

  • K

V M

  • p

t i m i z a t i

  • n

s

  • k

v m _ h a l t _ p

  • l

l b y P a

  • l
  • B
  • n

z i n i

  • Q

E M U I O T h r e a d p

  • l

l b y S t e f a n H a j n

  • c

z i

  • K

e r n e l

  • p

t i m i z a t i

  • n

s

  • /

s y s / b l

  • c

k / n v m e n 1 / q u e u e / i

  • _

p

  • l

l b y J e n s A x b

  • 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

  • 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

  • n

V F I O

  • D

P D K / S P D K : v h

  • 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

slide-16
SLIDE 16

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

A r c h i t e c t u r e

F r

  • m

Q E M U P

  • V

G u e s t k e r n e l Q E M U

V I R T I O B l

  • c

k B a c k e n d B l

  • c

k l a y e r Q C O W 2

H

  • s

t k e r n e l

P O S I X / l i n u x

  • a

i

  • V

F I O n v m e . k

V F S v fi

  • p

c i . k

slide-17
SLIDE 17

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

I m p l e m e n t a t i

  • n
  • $

Q E M U _ S R C / u t i l / v fi

  • 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

  • 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

  • r

I / O

  • p

e r a t i

  • n

s :

  • P

r e

  • a

l l

  • c

a t e I O V A f

  • r

a l l g u e s t r a m

  • E

f fi c i e n t

  • n

e s h

  • t

I O V A a l l

  • c

a t i

  • n

f

  • r

b

  • u

n c e b u f f e r I / O

  • $

Q E M U _ S R C / b l

  • c

k / n v m e . c

  • R

e g i s t e r s a n e w B l

  • c

k D r i v e r ( n v m e : / / )

  • H

a n d l e s N V M e l

  • 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

  • l

l i n g

  • P

r e p a r e d f

  • r

Q E M U m u l t i q u e u e b l

  • c

k l a y e r

slide-18
SLIDE 18

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

C h a r a c t e r i s t i c s

  • C
  • 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

  • c
  • p

y )

  • O

n e I O q u e u e p a i r f

  • r

n

  • w
  • M
  • r

e e f fi c i e n t f

  • r

g u e s t I / O

  • L

e s s e f fi c i e n t f

  • r

b

  • 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
  • r

e

  • 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

  • n

e V M s i m i l a r t

  • d

e v i c e a s s i g n m e n t

slide-19
SLIDE 19

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

I / O . .

1 ) G u e s t q u e u e s v i r t i

  • r

e q i n c l . I / O v e c t

  • r

s ( G P A ,

  • r

v I O V A i f v I O M M U e n a b l e d ) 2 ) V i r t I O f r

  • n

t e n d 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

  • H

V A , p r e p a r i n g f

  • r

D M A f r

  • m

/ t

  • g

u e s t 3 ) F r

  • n

t e n d c a l l s i n t

  • b

l

  • c

k b a c k e n d f

  • r

I / O : b l k _ a i

  • _

{ p r e a d v , p w r i t e v } , w i t h H V A 4 ) B l

  • c

k l a y e r h a n d s

  • v

e r t h e r e q t

  • b

l

  • c

k d r i v e r : b d r v _ n v m e . n v m e _ c

  • _

{ p r e a d v , p w r i t e v } 5 ) B l

  • c

k d r i v e r 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

  • f

r

  • n

t e n d 6 ) v i r t q u e u e _ p u s h ( ) a n d v i r t i

  • _

n

  • t

i f y ( )

slide-20
SLIDE 20

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

S t e p 5 ) D r i v e r

  • p

e r a t i

  • n

s

( 1 ) C h e c k t h a t t h e H V A s (

  • 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

  • t

, a l l

  • c

a t e a n a l i g n e d b

  • u

n c e b u f f e r t

  • d
  • n

e x t s t e p s ( 2 ) T r a n s l a t e h

  • s

t H V A s t

  • t

h e I O V A s i n t h e u n d e r l y i n g h

  • s

t I O M M U c

  • 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

  • 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

  • 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

  • d
  • r

b e l l ( 5 ) P

  • l

l f

  • r

c

  • m

p l e t i

  • n

s

  • 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

slide-21
SLIDE 21

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

A d d r t r a n s l a t i

  • n

s

6 7 8 9 1 6 1 1 1 1 0 1 1 1 6 1 1 0 1 1 1 9 9 9 8 . . .

I O V A

? ? ? ?

N V M e

? i

  • v

a

I O M M U R W R R ? . . .

s u b m i s s i

  • n

q u e u e P R P l i s t

G u e s t a p p b u f f e r G u e s t p h y s i c a l a d d r H

  • s

t v i r t u a l a d d r e s s ( n

  • v

I O M M U )

slide-22
SLIDE 22

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

I O V A m a p p i n g

struct vfio_iommu_type1_dma_map dma_map = { .argsz = sizeof(dma_map), .flags = VFIO_DMA_MAP_FLAG_READ | VFIO_DMA_MAP_FLAG_WRITE, .vaddr = (uintptr_t)host, .size = size, .iova = iova, }; ioctl(vfio_fd, VFIO_IOMMU_MAP_DMA, &dma_map); struct vfio_iommu_type1_dma_map dma_map = { .argsz = sizeof(dma_map), .flags = VFIO_DMA_MAP_FLAG_READ | VFIO_DMA_MAP_FLAG_WRITE, .vaddr = (uintptr_t)host, .size = size, .iova = iova, }; ioctl(vfio_fd, VFIO_IOMMU_MAP_DMA, &dma_map);

slide-23
SLIDE 23

I N S E R T D E S I G N A T O R , I F N E E D E D 2 3

A d d r t r a n s l a t i

  • n

s

6

G u e s t a p p b u f f e r

7 8 9

G u e s t p h y s i c a l a d d r

1 6 1 1 1 . . .

H

  • s

t v i r t u a l a d d r e s s ( n

  • v

I O M M U )

1 0 1 1 1 6 1 1 0 1 1 1 . . . 9 9 9 8 . . .

I O V A a d d r s p a c e

1 1 1 1 6 2 0 2 1 . . . 2 0 1 6 1 1 2 1 ✓ i

  • v

a R W R R ? . . .

I / O q u e u e P R P l i s t

slide-24
SLIDE 24

I N S E R T D E S I G N A T O R , I F N E E D E D 2 4

H

  • w

a b

  • u

t h

  • s

t b u f f e r s ?

  • V

F I O _ I O M M U _ M A P _ D M A e a c h n e w b u f f e r a s i t c

  • m

e s

  • K

e e p r e c

  • r

d

  • f

m a p p e d b u f f e r s f

  • r

l a t e r u s e i f a d v i s a b l e

  • D

i s t i n g u i s h t h r

  • w

a w a y / fi x e d m a p p i n g s

  • U

s e a p a i r

  • f

s e l f

  • i

n c r e m e n t i n g c

  • u

n t e r t

  • t

r a c k a v a i l a b l e I O V A s

  • I

f f r e e I O V A s r u n

  • u

t , d i s c a r d a l l t e m p

  • r

a r y m a p p i n g s a n d r e s e t c

  • u

n t e r

  • B

l

  • c

k D r i v e r b d r v _ r e g i s t e r _ b u f b d r v _ u n r e g i s t e r _ b u f t

  • p

t i m i z e b u f f e r I / O F i x e d F r e e T e m p

  • r

a r y

M I N l

  • w

_ w a t e r _ m a r k M A X h i g h _ w a t e r _ m a r k

slide-25
SLIDE 25

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

U s a g e

  • U

n t i l p a t c h e s a r e m e r g e d t

  • m

a i n l i n e : g i t c l

  • n

e h t t p s : / / g i t h u b . c

  • m

/ q e m u / f a m z

  • b

r a n c h n v m e

  • c
  • n

f i g u r e & & m a k e , a s u s u a l

  • B

i n d d e v i c e t

  • v

fi

  • p

c i , s e e a l s

  • :

h t t p s : / / w w w . k e r n e l .

  • r

g / d

  • c

/ D

  • c

u m e n t a t i

  • n

/ v fi

  • .

t x t

  • .

/ x 8 6 _ 6 4

  • s
  • f

t m m u / q e m u

  • s

y s t e m

  • x

8 6 _ 6 4 \

  • e

n a b l e

  • k

v m \ … \

  • d

r i v e f i l e = n v m e : / / : 4 4 : . / 1 , i f = n

  • n

e , i d = d r i v e \

  • d

e v i c e v i r t i

  • b

l k , d r i v e = d r i v e , i d = v i r t i

  • S

y n t a x : n v m e : / / < d

  • m

a i n : b u s : d e v . f u n c > / < n a m e s p a c e > O r , u s e s t r u c t u r e d

  • p

t i

  • n
  • d

r i v e \ d r i v e r = n v m e , d e v i c e = < d

  • m

a i n : b u s : d e v . f u n c > , n a m e s p a c e = < N > , i f = n

  • n

e . . .

slide-26
SLIDE 26

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

C

  • m

p a r i s

  • n

F u n c t i

  • n

a l i t y P e r f

  • r

m a n c e

P O S I X v fi

  • p

c i p a s s t h r

  • u

g h n v m e : / / S P D K v h

  • s

t

  • u

s e r

  • b

l k

slide-27
SLIDE 27

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

F u n c t i

  • n

a l l i m i t a t i

  • n

s

A p p r

  • a

c h L i mi t a t i

  • n

P O S I X N

  • n

e n v m e : / / O n e N V M e ,

  • n

e V M S P D K v h

  • s

t

  • u

s e r

  • b

l k * R e q u i r e s h u g e p a g e s * N

  • b

l

  • c

k j

  • b

s , s n a p s h

  • t

s

  • r

q c

  • w

2 * F i x e d d e v i c e t y p e D e v i c e a s s i g n m e n t A l l a b

  • v

e e x c e p t h u g e p a g e s , p l u s n

  • m

i g r a t i

  • n

.

slide-28
SLIDE 28

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

slide-29
SLIDE 29

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

I O P S c

  • m

p a r e d t

  • P

O S I X

( I O P S ) P O S I X n v m e : / / R e l a t i v e r a n d

  • r

e a d

  • 1
  • r

e q 1 8 2 1 2 2 5 1 7 + 1 2 % r a n d

  • r

e a d

  • 4
  • r

e q 6 3 4 7 6 5 3 + 2 % r a n d

  • w

r i t e

  • 1
  • r

e q 2 9 9 6 3 5 5 1 2 + 2 2 % r a n d

  • w

r i t e

  • 4
  • r

e q 7 6 4 6 6 8 6 3 2 9 + 1 2 % r a n d

  • r

w

  • 1
  • r

e q 1 5 7 2 7 1 6 2 8 3 + 3 % r a n d

  • r

w

  • 4
  • r

e q 4 2 7 6 2 5 2 2 2 2 + 2 2 %

slide-30
SLIDE 30

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

S t a t u s a n d f u t u r e

  • S

t a t u s

  • P

a t c h e s v 3

  • n

q e m u

  • d

e v e l @ n

  • n

g n u .

  • r

g :

  • h

t t p s : / / l i s t s . g n u .

  • r

g / a r c h i v e / h t m l / q e m u

  • b

l

  • c

k / 2 1 7

  • 7

/ m s g 1 9 1 . h t m l

  • A

l s

  • a

v a i l a b l e a t g i t h u b : h t t p s : / / g i t h u b . c

  • m

/ f a m z / q e m u n v m e

  • T

O D O

  • G

e t i t m e r g e d !

  • I

n t e g r a t e w i t h m u l t i

  • q

u e u e b l

  • c

k l a y e r

slide-31
SLIDE 31

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 1

B e n c h m a r k c

  • n

fi g u r a t i

  • n
  • H
  • s

t 1 : F e d

  • r

a 2 6 / R H E L 7 ( x 8 6 _ 6 4 ) I n t e l ( R ) X e

  • n

( R ) C P U E 5

  • 2

6 2 v 2 @ 2 . 1 G H z x 2 6 4 G B r a m I n t e l C

  • r

p

  • r

a t i

  • n

D C P 3 7 3 8 G W e s t e r n D i g i t a l W D R E 4 W D 5 3 A B Y X 5 G B 7 2 R P M 6 4 M B

  • H
  • s

t 2 : F e d

  • r

a 2 6 I n t e l ( R ) C

  • r

e ( T M ) i 7

  • 4

8 1 M Q C P U @ 2 . 8 G H z 1 6 G B r a m S a m s u n g S S D 8 4 P R O 1 2 8 G

  • G

u e s t : F e d

  • r

a 2 6 ( x 8 6 _ 6 4 ) , 1 v C P U , 1 G B r a m

  • T
  • l

: fi

  • 2

. 1 8

  • J
  • b

: r a m p _ t i m e = 3 r u n t i m e = 3 b s = 4 k r w = { r a n d r e a d , r a n d w r i t e , r a n d r w } i

  • d

e p t h = { 1 , 4 }

slide-32
SLIDE 32

T H A N K Y O U