Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Jan 2015 15:00:44 +0800
From:      Tiwei Bie <btw@mail.ustc.edu.cn>
To:        Peter Grehan <grehan@freebsd.org>
Cc:        freebsd-virtualization@freebsd.org
Subject:   Re: [PATCH] Add netmap support to bhyve
Message-ID:  <20150126070044.GA54990@freebsd>
In-Reply-To: <54C5B59B.2070100@freebsd.org>
References:  <1422045440-9410-1-git-send-email-btw@mail.ustc.edu.cn> <54C5B59B.2070100@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Jan 25, 2015 at 07:33:47PM -0800, Peter Grehan wrote:
> Hi,
> 
> > I saw that there is an open task of adding Netmap support to bhyve in
> > the latest status report of FreeBSD [1]. So I implement the netmap
> > support for bhyve, and following is the patch. Hope this can be helpful!
> 
>   Nice work ! Did you manage to get any throughput numbers ?

Thanks! Yeah, I have done some throughput tests. Here are the details:

#1. The parameters I used to launch the VMs:

$ sudo /home/btw/src/usr.sbin/bhyve/bhyve \
           -A -H -P \
           -s 0:0,hostbridge \
           -s 1:0,lpc \
           -s 2,virtio-blk,./disk-vm1 \
           -s 3:0,virtio-net,vale0:vm1 \
           -s 3:1,virtio-net,tap1 \
           -l com1,stdio \
           -m 2G -c 2 vm1

$ sudo /home/btw/src/usr.sbin/bhyve/bhyve \
           -A -H -P \
           -s 0:0,hostbridge \
           -s 1:0,lpc \
           -s 2,virtio-blk,./disk-vm2 \
           -s 3:0,virtio-net,vale0:vm2 \
           -s 3:1,virtio-net,tap2 \
           -l com1,stdio \
           -m 2G -c 1 vm2

#2. The outputs of pkt-gen as the receiver when using tap+bridge:

$ ./pkt-gen -i vtnet1 -f rx
075.499873 main [1686] interface is vtnet1
075.500516 extract_ip_range [289] range is 10.0.0.1:0 to 10.0.0.1:0
075.500677 extract_ip_range075.501408 [ 407] vtnet_netmap_config       vtnet config txq=1, txd=512 rxq=1, rxd=512
 [289] range is 075.503540 [ 407] vtnet_netmap_config       vtnet config txq=1, txd=512 rxq=1, rxd=512
10.1.0.1:0 to 10.1.0.1:0
075.505840 [  79] vtnet_netmap_free_bufs    freed 1024 mbufs, 0 netmap bufs on 1 queues
075.507838 main [1877] mapped 334980KB at 0x801dff000
Receiving from netmap:vtnet1: 1 queues, 1 threads and 1 cpus.
075.509298 main [1963] Wait 2 secs for phy reset
077.553231 main [1965] Ready...
077.553787 nm_open [456] overriding ifname vtnet1 ringid 0x0 flags 0x1
077.554511 [ 407] vtnet_netmap_config       vtnet config txq=1, txd=512 rxq=1, rxd=512
077.556006 [ 407] vtnet_netmap_config       vtnet config txq=1, txd=512 rxq=1, rxd=512
077.557663 receiver_body [1219] reading from netmap:vtnet1 fd 4 main_fd 3
078.563897 main_thread [1483] 311989 pps (313942 pkts in 1006261 usec)
079.574224 main_thread [1483] 333345 pps (336771 pkts in 1010278 usec)
080.584718 main_thread [1483] 307455 pps (310688 pkts in 1010514 usec)
081.600552 main_thread [1483] 332357 pps (337629 pkts in 1015862 usec)
082.604157 main_thread [1483] 342985 pps (344222 pkts in 1003606 usec)
083.614341 main_thread [1483] 327806 pps (331144 pkts in 1010184 usec)
084.634725 main_thread [1483] 320947 pps (327489 pkts in 1020385 usec)
085.645380 main_thread [1483] 328959 pps (332456 pkts in 1010630 usec)
086.654096 main_thread [1483] 313482 pps (316222 pkts in 1008740 usec)
087.671256 main_thread [1483] 307234 pps (312506 pkts in 1017161 usec)
088.673871 main_thread [1483] 311188 pps (312002 pkts in 1002615 usec)
089.686453 main_thread [1483] 322132 pps (326185 pkts in 1012582 usec)
090.694224 main_thread [1483] 331368 pps (333922 pkts in 1007708 usec)
091.714343 main_thread [1483] 290061 pps (295915 pkts in 1020181 usec)
092.724065 main_thread [1483] 316366 pps (319442 pkts in 1009722 usec)
093.749938 main_thread [1483] 322501 pps (330845 pkts in 1025874 usec)
094.758012 main_thread [1483] 292125 pps (294484 pkts in 1008074 usec)
095.765606 main_thread [1483] 338889 pps (341463 pkts in 1007594 usec)
096.781560 main_thread [1483] 327785 pps (333013 pkts in 1015949 usec)
097.789245 main_thread [1483] 330064 pps (332602 pkts in 1007690 usec)
098.794141 main_thread [1483] 328757 pps (330367 pkts in 1004896 usec)
099.804160 main_thread [1483] 302752 pps (305785 pkts in 1010019 usec)
^C100.400690 sigint_h [326] received control-C on thread 0x801806800
100.820895 main_thread [1483] 178717 pps (181708 pkts in 1016735 usec)
Received 7300802 packets, in 22.84 seconds.
Speed: 319.61 Kpps
100.822469 [  79] vtnet_netmap_free_bufs    freed 0 mbufs, 506 netmap bufs on 1 queues

#3. The outputs of pkt-gen as the receiver when using netmap+vale:

$ ./pkt-gen -i vtnet0 -f rx
139.084350 main [1686] interface is vtnet0
139.085422 extract_ip_range [289] range is 10.0.0.1:0 to 10.0.0.139.086441 [ 407] vtnet_netmap_config       vtnet config txq=1, txd=512 rxq=1, rxd=512
1:0
139.085705 139.090250 [ 407] vtnet_netmap_config       vtnet config txq=1, txd=512 rxq=1, rxd=512
extract_ip_range [289] range is 10.1.0.1:0 to 10.1.0.1:0
139.094911 [  79] vtnet_netmap_free_bufs    freed 1024 mbufs, 0 netmap bufs on 1 queues
139.098783 main [1877] mapped 334980KB at 0x801dff000
Receiving from netmap:vtnet0: 1 queues, 1 threads and 1 cpus.
139.099642 main [1963] Wait 2 secs for phy reset
141.142968 main [1965] Ready...
141.143439 nm_op141.143596 [ 407] vtnet_netmap_config       vtnet config txq=1, txd=512 rxq=1, rxd=512
en [456] overrid141.145487 [ 407] vtnet_netmap_config       vtnet config txq=1, txd=512 rxq=1, rxd=512
ing ifname vtnet0 ringid 0x0 flags 0x1
141.147778 receiver_body [1219] reading from netmap:vtnet0 fd 4 main_fd 3
142.165927 main_thread [1483] 616128 pps (627330 pkts in 1018181 usec)
143.195891 main_thread [1483] 617845 pps (636357 pkts in 1029963 usec)
144.226279 main_thread [1483] 640422 pps (659884 pkts in 1030389 usec)
145.234087 main_thread [1483] 642099 pps (647113 pkts in 1007808 usec)
146.244540 main_thread [1483] 642227 pps (648839 pkts in 1010296 usec)
147.286503 main_thread [1483] 642392 pps (669410 pkts in 1042058 usec)
148.301086 main_thread [1483] 616898 pps (625932 pkts in 1014645 usec)
149.314164 main_thread [1483] 643629 pps (652046 pkts in 1013078 usec)
150.324461 main_thread [1483] 644681 pps (651319 pkts in 1010297 usec)
151.341187 main_thread [1483] 615727 pps (626025 pkts in 1016725 usec)
152.350815 main_thread [1483] 617538 pps (623484 pkts in 1009629 usec)
153.382287 main_thread [1483] 641915 pps (662117 pkts in 1031472 usec)
154.384370 main_thread [1483] 642324 pps (643662 pkts in 1002083 usec)
155.395499 main_thread [1483] 590924 pps (597500 pkts in 1011129 usec)
156.412232 main_thread [1483] 616879 pps (627201 pkts in 1016733 usec)
157.415682 main_thread [1483] 627524 pps (629689 pkts in 1003450 usec)
158.453857 main_thread [1483] 617421 pps (640991 pkts in 1038175 usec)
159.465732 main_thread [1483] 617130 pps (624458 pkts in 1011875 usec)
160.478797 main_thread [1483] 643278 pps (651682 pkts in 1013065 usec)
161.494513 main_thread [1483] 642237 pps (652330 pkts in 1015716 usec)
162.504104 main_thread [1483] 642578 pps (648740 pkts in 1009589 usec)
163.526906 main_thread [1483] 616442 pps (630460 pkts in 1022741 usec)
164.542778 main_thread [1483] 644121 pps (654385 pkts in 1015935 usec)
^C165.214479 sigint_h [326] received control-C on thread 0x801806800
165.580379 main_thread [1483] 415359 pps (430977 pkts in 1037601 usec)
Received 15161931 packets, in 24.07 seconds.
Speed: 630.00 Kpps
165.581943 [  79] vtnet_netmap_free_bufs    freed 0 mbufs, 488 netmap bufs on 1 queues

Tiwei Bie




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150126070044.GA54990>