Hi Vincenzo,

No problem! We've decided that we will try testing with 11.0 too, as it would 
help us to have our test system locked to a specific version like 11.0 and can 
hopefully help you with testing too. We'll compile netmap from source as 
advised, but I was wondering what steps we would take in order to port the 
changes to bhyve/ptnetmap from HEAD into 11.0?


I've currently only tested with pkt-gen as our bhyve instances are pretty 
minimal right now, below are a few samples of the speeds seen in each of the 
different configurations:


Using netmap on top of standard tap devices with no vale:


vm1:
    197.259100 main_thread [2325] 30.977 Kpps (32.435 Kpkts 15.569 Mbps in 
1047062 usec) 1.93 avg_batch 826 min_space
    203.306126 main_thread [2325] 32.149 Kpps (32.411 Kpkts 15.557 Mbps in 
1008156 usec) 1.88 avg_batch 866 min_space
    204.313055 main_thread [2325] 33.095 Kpps (33.324 Kpkts 15.996 Mbps in 
1006929 usec) 1.98 avg_batch 911 min_space
vm2:
    245.397418 main_thread [2325] 31.422 Kpps (33.262 Kpkts 15.966 Mbps in 
1058559 usec) 313.79 avg_batch 99999 min_space
    246.429810 main_thread [2325] 31.254 Kpps (32.266 Kpkts 15.488 Mbps in 
1032392 usec) 319.47 avg_batch 99999 min_space
    251.621436 main_thread [2325] 31.606 Kpps (33.329 Kpkts 15.998 Mbps in 
1054531 usec) 314.42 avg_batch 99999 min_space


After then trying to switch to the netmap in userspace/netmap in kernel space 
with ptnetmap, I realised I made a silly mistake and built from head instead of 
the branch ptnet-head... haha So I'm currently doing a quick rebuild on the 
correct branch and will report back with the results from pkt-gen using just 
vale, and also with the new ptnetmap changes!



Kind Regards








________________________________



[Stream Logo]








Steven Crangle


Systems Developer | Stream Technologies | Glasgow, UK


[http://www.stream-technologies.com/img/phone.png]


+44 (0)844 800 8520


|


[http://www.stream-technologies.com/img/mouse.png]


www.stream-technologies.com<http://www.stream-technologies.com/>






________________________________
From: Vincenzo Maffione <v.maffi...@gmail.com>
Sent: 29 November 2016 11:52:18
To: Steven Crangle
Cc: FreeBSD Net
Subject: Re: Looking for some help with netmap/bhyve

Hi Steven,
  Thanks for your testing this in HEAD, good news to know that it works ok!

I think there is not going to be much difference between HEAD and 11.0, because 
in the end bhyve code didn't really change (for the parts I touched), and you 
need to use the latest netmap version (github) anyway, irrespective of whether 
you are testing on 10.3, 11.0, head, etc. In other words, you would be testing 
approximately the same code. Anyway, if you happen to test 11.0 by chance 
please let me know.

What kind of tests did you perform? netmap applications (e.g. pkt-gen), or 
netperf/iperf standard TCP/IP tools?
Could you please share the performance number you got for configurations (A) 
and (B) (or just the one you tried)?

I think it is useful to compare your results with the ones I collected here 
(see the performance evaluation section):

https://wiki.freebsd.org/DevSummit/201609?action=AttachFile&do=view&target=20160923-freebsd-summit-ptnet.pdf

Regarding the crashes, thanks for reporting, I would be nice if you could 
describe in more detail how you trigger them (with some higher likelyhood); 
also, compiling the kernel with debug symbols should help in understanding 
which part of the code is involved in the crash.

Cheers,
  Vincenzo


2016-11-29 12:26 GMT+01:00 Steven Crangle 
<ste...@stream-technologies.com<mailto:ste...@stream-technologies.com>>:

 Hi Vincenzo!


Thank you so much for your help! With your instructions I've managed to get a 
set of bhyves up and running with netmap working properly within them! I chose 
to go with the recent version of head instead of 10.3.  I will also try and 
build a version on 11.0 if I get chance!


I will make sure and ask any further questions on the github page for netmap, 
but while I'm emailing, I've attached a text file containing a few kernel page 
fault errors I've ran into. They don't happen repeatedly. They seem to just 
happen randomly if I try to shut the process down and possibly catch netmap in 
an incorrect state! Figured they might be useful to you. If I figure out what 
the error is myself I will try and help out!


And thanks again for your help!


Kind Regards









________________________________



[Stream Logo]








Steven Crangle


Systems Developer | Stream Technologies | Glasgow, UK


[http://www.stream-technologies.com/img/phone.png]


+44 (0)844 800 8520<tel:%2B44%20%280%29844%20800%208520>


|


[http://www.stream-technologies.com/img/mouse.png]


www.stream-technologies.com<http://www.stream-technologies.com/>






________________________________
From: Vincenzo Maffione <v.maffi...@gmail.com<mailto:v.maffi...@gmail.com>>
Sent: 23 November 2016 08:33:11
To: Steven Crangle
Cc: FreeBSD Net
Subject: Re: Looking for some help with netmap/bhyve



2016-11-22 11:31 GMT+01:00 Steven Crangle 
<ste...@stream-technologies.com<mailto:ste...@stream-technologies.com>>:

Hi,


I've recently been trying to boot up several bhyves so that I can test netmap 
communication between instances. The problem is, no matter what configuration I 
try, the guest vm running in bhyve completely hangs and becomes unusable as 
soon as a packet hits the netmap interface. When testing with pkt-gen, the TX 
side successfully starts sending packets, but the RX side will reliable freeze 
with the only option being killing the bhyve process.


The bhyve command used for the above test was:


    bhyve -c 1 -s 0,hostbridge -s 1,lpc -s 
2,virtio-blk,/dev/zvol/zroot/viper1vol    -s 
3,virtio-net,tap0,mac=00:01:23:45:67:83 -s 4,virtio-net,tap4 -l 
com1,/dev/nmdm0A -A -H -P -m 6g viper1 &
    bhyve -c 1 -s 0,hostbridge -s 1,lpc -s 
2,virtio-blk,/dev/zvol/zroot/viper2vol    -s 
3,virtio-net,tap1,mac=00:01:23:45:67:84 -s 4,virtio-net,tap5 -l 
com1,/dev/nmdm1A -A -H -P -m 6g viper2

For this test the host OS was FreeBSD-11.0-p3 and the guest OS was 
FreeBSD-11.0-p3.

After failing to get this solution working, I pulled down the source from the 
following url and installed it on the host box:

https://svnweb.freebsd.org/socsvn/soc2016/vincenzo/head/

I then ran the following commands to try and bring up the machines using the 
ptnetmap interface (the guest still running 11.0p3) :

    bhyve -c 1 -s 0,hostbridge -s 1,lpc -s 
1:1,virtio-blk,/dev/zvol/zroot/viper1vol    -s 
2:0,virtio-net,tap0,mac=00:01:23:45:67:83 -s 2:1,ptnetmap-memdev -s 
2:2,ptnet,vale0:0 -l com1,/dev/nmdm0A -A -H -P -m 6g viper1 &
    bhyve -c 1 -s 0,hostbridge -s 1,lpc -s 
1:1,virtio-blk,/dev/zvol/zroot/viper2vol    -s 
2:0,virtio-net,tap1,mac=00:01:23:45:67:84 -s 2:1,ptnetmap-memdev -s 
2:2,ptnet,vale0:1 -l com1,/dev/nmdm1A -A -H -P -m 6g viper2

With the above commands the vm's fail to boot with the following message:

ptnet_init: failed to get ptnetmap

Output in /var/log/messages seems to just show the ptnetmap driver allocating 
one RX/TX ring for each vm, while bringing the device up, the device then goes 
down and the above error is seen in the console.

Is there something I'm doing wrong with regards to running netmap or ptnetmap 
within a bhyve? Any pointers in the right direction will be much appreciated!

Kind Regards

Steven


Hi Steven,

  The code you are looking at is the final code released by my gsoc 2016 
project at the end of August 2016. However, I've been working on that for a 
while after the gsoc, so that code is not updated anymore. My modification 
basically involves two subsystems: netmap and bhyve.

The updates to netmap are already available in HEAD. The updates to bhyve are 
not yet upstream, as we are in the process to review that with the bhyve 
maintainers.

Anyway, you need two sources to get the latest code:
1) https://github.com/luigirizzo/netmap for the latest netmap code, that you 
could also compile as an external kernel module.
2) https://github.com/vmaffione/freebsd to get the updates to bhyve (and 
vmm.ko). You can use this as the host system. There are two branches here: 
ptnet-10.3, and ptnet-head. My original code was developed under FreeBSD 10.3, 
so a first possibility is to try this as the host system (using the ptnet-10.3 
branch). The other branch (ptnet-head) contains a porting of the work to a 
recent version of HEAD. I would be very glad if you could test the code also on 
FreeBSD 11.

We support two combinations of bhyve networking with netmap:

  (A) virtio-net + netmap: that is something like "-s 2:0,virtio-net,vale0:0" 
in the bhyve command line.
  (B) ptnet + ptnetmap: that is something like "-s 2:1,ptnetmap-memdev -s 
2:2,ptnet,vale0:0" in the bhyve command line.

so you may want to try A first (netmap backend in user-space, slower) and then 
B (netmap backend in kernel-space, faster).

Sorry about the confusion on the code repositories, I'll try also to update the 
wiki page (and/or the gsoc svn repo) to reflect these updates. It's perfectly 
ok for me to discuss these issues here in the ML, however for more 
detailed/low-level discussion and support about problems you are running into, 
feel free to open Github issues here https://github.com/luigirizzo/netmap.

Cheers,
  Vincenzo









________________________________



[Stream Logo]








Steven Crangle


Systems Developer | Stream Technologies | Glasgow, UK


[http://www.stream-technologies.com/img/phone.png]


+44 (0)844 800 8520<tel:%2B44%20%280%29844%20800%208520>


|


[http://www.stream-technologies.com/img/mouse.png]


www.stream-technologies.com<http://www.stream-technologies.com><http://www.stream-technologies.com/>






_______________________________________________
freebsd-net@freebsd.org<mailto:freebsd-net@freebsd.org> mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to 
"freebsd-net-unsubscr...@freebsd.org<mailto:freebsd-net-unsubscr...@freebsd.org>"



--
Vincenzo Maffione



--
Vincenzo Maffione
_______________________________________________
freebsd-net@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to