svn commit: r272244 - head/sys/net

Markiyan Kushnir markiyan.kushnir at gmail.com
Mon Oct 13 09:05:12 UTC 2014


Gleb, looks like there is something to do for userland apps to let
them replace their old counter code. An example would be devel/libgtop
that is failing to build now (I'm on r273006 of base/head and r370733
on ports/head):

/bin/sh ../../libtool --tag=CC   --mode=compile cc -DHAVE_CONFIG_H -I.
-I../.. -I../.. -I../.. -I../../sysdeps/freebsd -I../../include
-I/usr/local/include/glib-2.0 -I/usr/local/include
-I/usr/local/include  -I/usr/local/include -DHAVE_NET_IF_VAR_H
-D_WANT_IFADDR  -Winline   -Wall   -std=gnu89      -Wchar-subscripts
-Wmissing-declarations -Wmissing-prototypes   -Wnested-externs
-Wpointer-arith        -Wcast-align -Wsign-compare     -O2 -pipe
-fno-strict-aliasing -MT netload.lo -MD -MP -MF .deps/netload.Tpo -c
-o netload.lo netload.c
libtool: compile:  cc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../..
-I../../sysdeps/freebsd -I../../include -I/usr/local/include/glib-2.0
-I/usr/local/include -I/usr/local/include -I/usr/local/include
-DHAVE_NET_IF_VAR_H -D_WANT_IFADDR -Winline -Wall -std=gnu89
-Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes
-Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare -O2 -pipe
-fno-strict-aliasing -MT netload.lo -MD -MP -MF .deps/netload.Tpo -c
netload.c  -fPIC -DPIC -o .libs/netload.o
netload.c:182:41: error: no member named 'if_ipackets' in 'struct ifnet'
                buf->packets_in = ifnet.if_ipackets;
                                  ~~~~~ ^
netload.c:183:42: error: no member named 'if_opackets' in 'struct ifnet'
                buf->packets_out = ifnet.if_opackets;
                                   ~~~~~ ^
netload.c:186:39: error: no member named 'if_ibytes' in 'struct ifnet'
                buf->bytes_in = ifnet.if_ibytes;
                                ~~~~~ ^
netload.c:187:40: error: no member named 'if_obytes' in 'struct ifnet'
                buf->bytes_out = ifnet.if_obytes;
                                 ~~~~~ ^
netload.c:190:40: error: no member named 'if_ierrors' in 'struct ifnet'
                buf->errors_in = ifnet.if_ierrors;
                                 ~~~~~ ^
netload.c:191:41: error: no member named 'if_oerrors' in 'struct ifnet'
                buf->errors_out = ifnet.if_oerrors;
                                  ~~~~~ ^
netload.c:194:41: error: no member named 'if_collisions' in 'struct ifnet'
                buf->collisions = ifnet.if_collisions;
                                  ~~~~~ ^
netload.c:211:58: warning: cast from 'struct sockaddr *' to 'struct
sockaddr_dl *' increases required alignment from 1 to 2 [-Wcast-align]
                                struct sockaddr_dl *dl = (struct
sockaddr_dl *) sa;

^~~~~~~~~~~~~~~~~~~~~~~~~
netload.c:217:39: warning: cast from 'struct sockaddr *' to 'struct
sockaddr_in *' increases required alignment from 1 to 4 [-Wcast-align]
                                sin = (struct sockaddr_in *)sa;
                                      ^~~~~~~~~~~~~~~~~~~~~~~~
netload.c:225:61: warning: cast from 'struct sockaddr *' to 'struct
sockaddr_in6 *' increases required alignment from 1 to 4
[-Wcast-align]
                                struct sockaddr_in6 *sin6 = (struct
sockaddr_in6 *) sa;

^~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings and 7 errors generated.
Makefile:435: recipe for target 'netload.lo' failed
gmake[4]: *** [netload.lo] Error 1
gmake[4]: Leaving directory
'/work/ports.svn/devel/libgtop/work/libgtop-2.28.4/sysdeps/freebsd'
Makefile:336: recipe for target 'all-recursive' failed
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory
'/work/ports.svn/devel/libgtop/work/libgtop-2.28.4/sysdeps'
Makefile:471: recipe for target 'all-recursive' failed
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory '/work/ports.svn/devel/libgtop/work/libgtop-2.28.4'
Makefile:354: recipe for target 'all' failed
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory '/work/ports.svn/devel/libgtop/work/libgtop-2.28.4'
*** Error code 1

Stop.
make: stopped in /work/ports.svn/devel/libgtop


Or, any hints on getting it fixed?

--
Markiyan.


2014-09-28 12:16 GMT+03:00 Gleb Smirnoff <glebius at freebsd.org>:
> On Sun, Sep 28, 2014 at 08:57:08AM +0000, Gleb Smirnoff wrote:
> T> Author: glebius
> T> Date: Sun Sep 28 08:57:07 2014
> T> New Revision: 272244
> T> URL: http://svnweb.freebsd.org/changeset/base/272244
> T>
> T> Log:
> T>   Finally, convert counters in struct ifnet to counter(9).
> T>
> T>   Sponsored by:      Netflix
> T>   Sponsored by:      Nginx, Inc.
>
> Now the network stack is 99% free of old style ++ on a global
> variable, that trashes cache line and is racy.
>
> The last remnant is queue drop counter in buf_ring(9), which
> would be probably addressed when interface queuing is generalized.
>
> --
> Totus tuus, Glebius.
> _______________________________________________
> svn-src-all at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/svn-src-all
> To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"


More information about the svn-src-all mailing list