[PATCH] Test netmap on FreeBSD

Thomas Huth posted 1 patch 4 years, 6 months ago
Test FreeBSD passed
Test docker-mingw@fedora passed
Test asan passed
Test docker-quick@centos7 passed
Test checkpatch passed
Test docker-clang@ubuntu passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20191008084931.12753-1-thuth@redhat.com
Maintainers: Ed Maste <emaste@freebsd.org>, Fam Zheng <fam@euphon.net>, "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, Li-Wen Hsu <lwhsu@freebsd.org>
.cirrus.yml      | 2 +-
tests/vm/freebsd | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
[PATCH] Test netmap on FreeBSD
Posted by Thomas Huth 4 years, 6 months ago
FreeBSD offers a package for "netmap", thus let's install it in our
FreeBSD tests to get some compile test coverage for net/netmap.c, too.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .cirrus.yml      | 2 +-
 tests/vm/freebsd | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/.cirrus.yml b/.cirrus.yml
index 8326a3a4b1..44fea2c29e 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -8,7 +8,7 @@ freebsd_12_task:
     memory: 8G
   install_script: pkg install -y
     bash bison curl cyrus-sasl git glib gmake gnutls gsed
-    nettle perl5 pixman pkgconf png usbredir
+    netmap nettle perl5 pixman pkgconf png usbredir
   script:
     - mkdir build
     - cd build
diff --git a/tests/vm/freebsd b/tests/vm/freebsd
index 2a19461a90..45821702bd 100755
--- a/tests/vm/freebsd
+++ b/tests/vm/freebsd
@@ -54,6 +54,9 @@ class FreeBSDVM(basevm.BaseVM):
         # libs: opengl
         "libepoxy",
         "mesa-libs",
+
+        # libs: network
+        "netmap",
     ]
 
     BUILD_SCRIPT = """
-- 
2.18.1


Re: [PATCH] Test netmap on FreeBSD
Posted by Stefano Garzarella 4 years, 6 months ago
Hi Thomas,

On Tue, Oct 8, 2019 at 10:49 AM Thomas Huth <thuth@redhat.com> wrote:
>
> FreeBSD offers a package for "netmap", thus let's install it in our
> FreeBSD tests to get some compile test coverage for net/netmap.c, too.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  .cirrus.yml      | 2 +-
>  tests/vm/freebsd | 3 +++
>  2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/.cirrus.yml b/.cirrus.yml
> index 8326a3a4b1..44fea2c29e 100644
> --- a/.cirrus.yml
> +++ b/.cirrus.yml
> @@ -8,7 +8,7 @@ freebsd_12_task:
>      memory: 8G
>    install_script: pkg install -y
>      bash bison curl cyrus-sasl git glib gmake gnutls gsed
> -    nettle perl5 pixman pkgconf png usbredir
> +    netmap nettle perl5 pixman pkgconf png usbredir

>    script:
>      - mkdir build
>      - cd build
> diff --git a/tests/vm/freebsd b/tests/vm/freebsd
> index 2a19461a90..45821702bd 100755
> --- a/tests/vm/freebsd
> +++ b/tests/vm/freebsd
> @@ -54,6 +54,9 @@ class FreeBSDVM(basevm.BaseVM):
>          # libs: opengl
>          "libepoxy",
>          "mesa-libs",
> +
> +        # libs: network
> +        "netmap",

IIRC netmap is shipped with the FreeBSD kernel, so we shouldn't need to
install it.

I tried to understand what is the 'netmap' pkg and I found the following
in my FreeBSD 12 VM:

    # pkg search netmap
    netmap-0.1.3_1         Make a graphical representation of the surrounding network

I don't think we are installing the right 'netmap' (I know, it is a bit
confusing :) )

I'll tried "make vm-build-freebsd" without this patch and I noticed
"netmap support    yes" in the configure output. So I think we're
already compiling the netmap backend in the 'vm-buil-freebsd' target and
maybe also in cirrus.

Maybe Ed and Li-Wen can confirm (or not).

Thanks,
Stefano

Re: [PATCH] Test netmap on FreeBSD
Posted by Thomas Huth 4 years, 6 months ago
On 08/10/2019 11.48, Stefano Garzarella wrote:
> Hi Thomas,
> 
> On Tue, Oct 8, 2019 at 10:49 AM Thomas Huth <thuth@redhat.com> wrote:
>>
>> FreeBSD offers a package for "netmap", thus let's install it in our
>> FreeBSD tests to get some compile test coverage for net/netmap.c, too.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>  .cirrus.yml      | 2 +-
>>  tests/vm/freebsd | 3 +++
>>  2 files changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/.cirrus.yml b/.cirrus.yml
>> index 8326a3a4b1..44fea2c29e 100644
>> --- a/.cirrus.yml
>> +++ b/.cirrus.yml
>> @@ -8,7 +8,7 @@ freebsd_12_task:
>>      memory: 8G
>>    install_script: pkg install -y
>>      bash bison curl cyrus-sasl git glib gmake gnutls gsed
>> -    nettle perl5 pixman pkgconf png usbredir
>> +    netmap nettle perl5 pixman pkgconf png usbredir
> 
>>    script:
>>      - mkdir build
>>      - cd build
>> diff --git a/tests/vm/freebsd b/tests/vm/freebsd
>> index 2a19461a90..45821702bd 100755
>> --- a/tests/vm/freebsd
>> +++ b/tests/vm/freebsd
>> @@ -54,6 +54,9 @@ class FreeBSDVM(basevm.BaseVM):
>>          # libs: opengl
>>          "libepoxy",
>>          "mesa-libs",
>> +
>> +        # libs: network
>> +        "netmap",
> 
> IIRC netmap is shipped with the FreeBSD kernel, so we shouldn't need to
> install it.
> 
> I tried to understand what is the 'netmap' pkg and I found the following
> in my FreeBSD 12 VM:
> 
>     # pkg search netmap
>     netmap-0.1.3_1         Make a graphical representation of the surrounding network
> 
> I don't think we are installing the right 'netmap' (I know, it is a bit
> confusing :) )
> 
> I'll tried "make vm-build-freebsd" without this patch and I noticed
> "netmap support    yes" in the configure output. So I think we're
> already compiling the netmap backend in the 'vm-buil-freebsd' target and
> maybe also in cirrus.

Oops, I think you're right. I just checked an older build on cirrus-ci
(without this patch), and indeed, it also says "netmap support    yes"
in the output of "configure". So we already have a compile test for
netmap :-)

Thus, please disregard this patch, it's not necessary indeed.

 Thomas

Re: [PATCH] Test netmap on FreeBSD
Posted by Li-Wen Hsu 4 years, 6 months ago
On Tue, Oct 8, 2019 at 5:49 PM Stefano Garzarella <sgarzare@redhat.com> wrote:
>
> Hi Thomas,
>
> On Tue, Oct 8, 2019 at 10:49 AM Thomas Huth <thuth@redhat.com> wrote:
> >
> > FreeBSD offers a package for "netmap", thus let's install it in our
> > FreeBSD tests to get some compile test coverage for net/netmap.c, too.
> >
> > Signed-off-by: Thomas Huth <thuth@redhat.com>
> > ---
> >  .cirrus.yml      | 2 +-
> >  tests/vm/freebsd | 3 +++
> >  2 files changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/.cirrus.yml b/.cirrus.yml
> > index 8326a3a4b1..44fea2c29e 100644
> > --- a/.cirrus.yml
> > +++ b/.cirrus.yml
> > @@ -8,7 +8,7 @@ freebsd_12_task:
> >      memory: 8G
> >    install_script: pkg install -y
> >      bash bison curl cyrus-sasl git glib gmake gnutls gsed
> > -    nettle perl5 pixman pkgconf png usbredir
> > +    netmap nettle perl5 pixman pkgconf png usbredir
>
> >    script:
> >      - mkdir build
> >      - cd build
> > diff --git a/tests/vm/freebsd b/tests/vm/freebsd
> > index 2a19461a90..45821702bd 100755
> > --- a/tests/vm/freebsd
> > +++ b/tests/vm/freebsd
> > @@ -54,6 +54,9 @@ class FreeBSDVM(basevm.BaseVM):
> >          # libs: opengl
> >          "libepoxy",
> >          "mesa-libs",
> > +
> > +        # libs: network
> > +        "netmap",
>
> IIRC netmap is shipped with the FreeBSD kernel, so we shouldn't need to
> install it.
>
> I tried to understand what is the 'netmap' pkg and I found the following
> in my FreeBSD 12 VM:
>
>     # pkg search netmap
>     netmap-0.1.3_1         Make a graphical representation of the surrounding network
>
> I don't think we are installing the right 'netmap' (I know, it is a bit
> confusing :) )
>
> I'll tried "make vm-build-freebsd" without this patch and I noticed
> "netmap support    yes" in the configure output. So I think we're
> already compiling the netmap backend in the 'vm-buil-freebsd' target and
> maybe also in cirrus.
>
> Maybe Ed and Li-Wen can confirm (or not).

Yes netmap(4) is a built-in and default feature on FreeBSD. netmap
package from ports is not related to it.

BTW, I haven't tried qemu's netmap feature on FreeBSD.  Is there
anything we can test this more?

Best,
Li-Wen

Re: [PATCH] Test netmap on FreeBSD
Posted by Vincenzo Maffione 4 years, 6 months ago
This is an example command line for a qemu VM with a vtnet interface
connected to a port of a VALE switch called 'vale1':

qemu-system-x86_64 fbsd-head.qcow2 -smp 2 -m 2G -vga std -device
e1000,netdev=mgmt,mac=00:AA:BB:CC:0a:99 -netdev
user,id=mgmt,hostfwd=tcp::20010-:22 -device
virtio-net-pci,netdev=data10,mac=00:AA:BB:CC:0a:0a,ioeventfd=on,mrg_rxbuf=on
-netdev netmap,ifname=vale1:10,id=data10

Cheers,
  Vincenzo
Re: [PATCH] Test netmap on FreeBSD
Posted by Vincenzo Maffione 4 years, 6 months ago
Il giorno mar 8 ott 2019 alle ore 11:53 Li-Wen Hsu <lwhsu@freebsd.org> ha
scritto:

> On Tue, Oct 8, 2019 at 5:49 PM Stefano Garzarella <sgarzare@redhat.com>
> wrote:
> >
> > Hi Thomas,
> >
> > On Tue, Oct 8, 2019 at 10:49 AM Thomas Huth <thuth@redhat.com> wrote:
> > >
> > > FreeBSD offers a package for "netmap", thus let's install it in our
> > > FreeBSD tests to get some compile test coverage for net/netmap.c, too.
> > >
> > > Signed-off-by: Thomas Huth <thuth@redhat.com>
> > > ---
> > >  .cirrus.yml      | 2 +-
> > >  tests/vm/freebsd | 3 +++
> > >  2 files changed, 4 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/.cirrus.yml b/.cirrus.yml
> > > index 8326a3a4b1..44fea2c29e 100644
> > > --- a/.cirrus.yml
> > > +++ b/.cirrus.yml
> > > @@ -8,7 +8,7 @@ freebsd_12_task:
> > >      memory: 8G
> > >    install_script: pkg install -y
> > >      bash bison curl cyrus-sasl git glib gmake gnutls gsed
> > > -    nettle perl5 pixman pkgconf png usbredir
> > > +    netmap nettle perl5 pixman pkgconf png usbredir
> >
> > >    script:
> > >      - mkdir build
> > >      - cd build
> > > diff --git a/tests/vm/freebsd b/tests/vm/freebsd
> > > index 2a19461a90..45821702bd 100755
> > > --- a/tests/vm/freebsd
> > > +++ b/tests/vm/freebsd
> > > @@ -54,6 +54,9 @@ class FreeBSDVM(basevm.BaseVM):
> > >          # libs: opengl
> > >          "libepoxy",
> > >          "mesa-libs",
> > > +
> > > +        # libs: network
> > > +        "netmap",
> >
> > IIRC netmap is shipped with the FreeBSD kernel, so we shouldn't need to
> > install it.
> >
> > I tried to understand what is the 'netmap' pkg and I found the following
> > in my FreeBSD 12 VM:
> >
> >     # pkg search netmap
> >     netmap-0.1.3_1         Make a graphical representation of the
> surrounding network
> >
> > I don't think we are installing the right 'netmap' (I know, it is a bit
> > confusing :) )
> >
> > I'll tried "make vm-build-freebsd" without this patch and I noticed
> > "netmap support    yes" in the configure output. So I think we're
> > already compiling the netmap backend in the 'vm-buil-freebsd' target and
> > maybe also in cirrus.
> >
> > Maybe Ed and Li-Wen can confirm (or not).
>
> Yes netmap(4) is a built-in and default feature on FreeBSD. netmap
> package from ports is not related to it.
>
> BTW, I haven't tried qemu's netmap feature on FreeBSD.  Is there
> anything we can test this more?
>

This is an example command line for a qemu VM with a vtnet interface
connected to a port of a VALE switch called 'vale1':

qemu-system-x86_64 fbsd-head.qcow2 -smp 2 -m 2G -vga std -device
e1000,netdev=mgmt,mac=00:AA:BB:CC:0a:99 -netdev
user,id=mgmt,hostfwd=tcp::20010-:22 -device
virtio-net-pci,netdev=data10,mac=00:AA:BB:CC:0a:0a,ioeventfd=on,mrg_rxbuf=on
-netdev netmap,ifname=vale1:10,id=data10

Cheers,
  Vincenzo

>
> Best,
> Li-Wen
>