* [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04 @ 2017-04-11 3:35 Jay Vosburgh 2017-04-11 20:01 ` Andy Gospodarek 2017-04-12 11:51 ` Johannes Berg 0 siblings, 2 replies; 7+ messages in thread From: Jay Vosburgh @ 2017-04-11 3:35 UTC (permalink / raw) To: xdp-newbies; +Cc: Jesper Dangaard Brouer, Andy Gospodarek This patch resolves build issues when compiling the samples on Ubuntu 17.04 with the distro 4.10 kernel and the linux-headers package installed. This permits running the samples using distro packages without needing to rebuild the kernel from source. Tested on a 17.04 VM using virtio_net. Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com> --- I haven't tried the patched version of this on a built from source kernel yet, so it might break that. kernel/samples/bpf/Makefile | 18 ++++-------------- kernel/samples/bpf/libbpf.h | 2 +- kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c | 3 +-- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/kernel/samples/bpf/Makefile b/kernel/samples/bpf/Makefile index 2aa4f73a6bba..7d77e53d6cd8 100644 --- a/kernel/samples/bpf/Makefile +++ b/kernel/samples/bpf/Makefile @@ -49,17 +49,7 @@ KERNEL=$(kbuilddir) CFLAGS := -O2 -Wall # Local copy of kernel/tools/lib/ -CFLAGS += -I./tools/lib -#CFLAGS += -I$(KERNEL)/tools/lib -# -# Local copy of uapi/linux/bpf.h kept under ./tools/include -# needed due to enum dependency in bpf_helpers.h -CFLAGS += -I./tools/include -CFLAGS += -I$(KERNEL)/tools/include -#CFLAGS += -I$(KERNEL)/tools/perf -CFLAGS += -I$(KERNEL)/usr/include -# Strange dependency to "selftests" due to "bpf_util.h" -#CFLAGS += -I$(KERNEL)/tools/testing/selftests/bpf/ +USER_CFLAGS := $(CFLAGS) -I./tools/lib LDFLAGS= -lelf @@ -151,7 +141,7 @@ $(OBJECT_LIBBPF): %.o: %.c $(CC) $(CFLAGS) -o $@ -c $< $(OBJECT_LOADBPF): bpf_load.c - $(CC) $(CFLAGS) -o $@ -c $< + $(CC) $(USER_CFLAGS) -o $@ -c $< # Compiling of eBPF restricted-C code with LLVM # clang option -S generated output file with suffix .ll @@ -168,7 +158,7 @@ $(KERN_OBJECTS): %.o: %.c $(LLC) -march=bpf -filetype=obj -o $@ ${@:.o=.ll} $(TARGETS): %: %_user.c $(OBJECTS) Makefile - $(CC) $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $< + $(CC) $(USER_CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $< $(CMDLINE_TOOLS): %: %.c $(OBJECTS) Makefile $(COMMON_H) - $(CC) -g $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $< + $(CC) -g $(USER_CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $< diff --git a/kernel/samples/bpf/libbpf.h b/kernel/samples/bpf/libbpf.h index 1a3c7a06f4c3..b572a0517498 100644 --- a/kernel/samples/bpf/libbpf.h +++ b/kernel/samples/bpf/libbpf.h @@ -9,7 +9,7 @@ * construct of -I$(KERNEL)/tools/lib/ this include find * tools/lib/bpf/bpf.h which defines the userspace API */ -#include <bpf/bpf.h> +#include "bpf/bpf.h" struct bpf_insn; diff --git a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c index 11157f94b062..5cf297ee2664 100644 --- a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c +++ b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c @@ -13,7 +13,6 @@ static const char *__doc__= #include <string.h> #include <unistd.h> #include <locale.h> -#include <linux/bitops.h> #include <sys/resource.h> #include <getopt.h> @@ -212,7 +211,7 @@ static void blacklist_print_proto(int key, __u64 count) printf("\n\t\"%s\" : %llu", xdp_proto_filter_names[key], count); } -static void blacklist_print_port(int key, u32 val, int countfds[]) +static void blacklist_print_port(int key, __u32 val, int countfds[]) { int i; __u64 count; -- 2.7.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04 2017-04-11 3:35 [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04 Jay Vosburgh @ 2017-04-11 20:01 ` Andy Gospodarek 2017-04-11 21:58 ` Jay Vosburgh 2017-04-12 11:51 ` Johannes Berg 1 sibling, 1 reply; 7+ messages in thread From: Andy Gospodarek @ 2017-04-11 20:01 UTC (permalink / raw) To: Jay Vosburgh; +Cc: xdp-newbies, Jesper Dangaard Brouer On Mon, Apr 10, 2017 at 08:35:13PM -0700, Jay Vosburgh wrote: > This patch resolves build issues when compiling the samples on > Ubuntu 17.04 with the distro 4.10 kernel and the linux-headers package > installed. This permits running the samples using distro packages > without needing to rebuild the kernel from source. > > Tested on a 17.04 VM using virtio_net. This is a good goal and I like where you are going with this. Unfortunately with this patch applied I cannot build against a locally installed and running kernel. $ make gcc -O2 -Wall -o tools/lib/bpf/bpf.o -c tools/lib/bpf/bpf.c tools/lib/bpf/bpf.c: In function ‘bpf_create_map’: tools/lib/bpf/bpf.c:67:6: error: ‘union bpf_attr’ has no member named ‘map_flags’ attr.map_flags = map_flags; ^ Makefile:141: recipe for target 'tools/lib/bpf/bpf.o' failed make: *** [tools/lib/bpf/bpf.o] Error 1 The build deps are not ideal in this Makefile, so I'm wondering if your build was successful because you had tools/lib/bpf/bpf.o left over from a successful build. This patch on top of yours does work for me. Can you add this on top and let me know if your build still works? diff --git a/kernel/samples/bpf/Makefile b/kernel/samples/bpf/Makefile index 7d77e53..8e493b1 100644 --- a/kernel/samples/bpf/Makefile +++ b/kernel/samples/bpf/Makefile @@ -49,7 +49,7 @@ KERNEL=$(kbuilddir) CFLAGS := -O2 -Wall # Local copy of kernel/tools/lib/ -USER_CFLAGS := $(CFLAGS) -I./tools/lib +USER_CFLAGS := $(CFLAGS) -I./tools/lib -I./tools/include/uapi/ LDFLAGS= -lelf @@ -138,7 +138,7 @@ verify_llvm_target_bpf: verify_cmds # The fake-minimal-libbpf $(OBJECT_LIBBPF): %.o: %.c - $(CC) $(CFLAGS) -o $@ -c $< + $(CC) $(USER_CFLAGS) -o $@ -c $< $(OBJECT_LOADBPF): bpf_load.c $(CC) $(USER_CFLAGS) -o $@ -c $< > > Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com> > --- > > I haven't tried the patched version of this on a built from > source kernel yet, so it might break that. > > kernel/samples/bpf/Makefile | 18 ++++-------------- > kernel/samples/bpf/libbpf.h | 2 +- > kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c | 3 +-- > 3 files changed, 6 insertions(+), 17 deletions(-) > > diff --git a/kernel/samples/bpf/Makefile b/kernel/samples/bpf/Makefile > index 2aa4f73a6bba..7d77e53d6cd8 100644 > --- a/kernel/samples/bpf/Makefile > +++ b/kernel/samples/bpf/Makefile > @@ -49,17 +49,7 @@ KERNEL=$(kbuilddir) > CFLAGS := -O2 -Wall > > # Local copy of kernel/tools/lib/ > -CFLAGS += -I./tools/lib > -#CFLAGS += -I$(KERNEL)/tools/lib > -# > -# Local copy of uapi/linux/bpf.h kept under ./tools/include > -# needed due to enum dependency in bpf_helpers.h > -CFLAGS += -I./tools/include > -CFLAGS += -I$(KERNEL)/tools/include > -#CFLAGS += -I$(KERNEL)/tools/perf > -CFLAGS += -I$(KERNEL)/usr/include > -# Strange dependency to "selftests" due to "bpf_util.h" > -#CFLAGS += -I$(KERNEL)/tools/testing/selftests/bpf/ > +USER_CFLAGS := $(CFLAGS) -I./tools/lib > > LDFLAGS= -lelf > > @@ -151,7 +141,7 @@ $(OBJECT_LIBBPF): %.o: %.c > $(CC) $(CFLAGS) -o $@ -c $< > > $(OBJECT_LOADBPF): bpf_load.c > - $(CC) $(CFLAGS) -o $@ -c $< > + $(CC) $(USER_CFLAGS) -o $@ -c $< > > # Compiling of eBPF restricted-C code with LLVM > # clang option -S generated output file with suffix .ll > @@ -168,7 +158,7 @@ $(KERN_OBJECTS): %.o: %.c > $(LLC) -march=bpf -filetype=obj -o $@ ${@:.o=.ll} > > $(TARGETS): %: %_user.c $(OBJECTS) Makefile > - $(CC) $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $< > + $(CC) $(USER_CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $< > > $(CMDLINE_TOOLS): %: %.c $(OBJECTS) Makefile $(COMMON_H) > - $(CC) -g $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $< > + $(CC) -g $(USER_CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $< > diff --git a/kernel/samples/bpf/libbpf.h b/kernel/samples/bpf/libbpf.h > index 1a3c7a06f4c3..b572a0517498 100644 > --- a/kernel/samples/bpf/libbpf.h > +++ b/kernel/samples/bpf/libbpf.h > @@ -9,7 +9,7 @@ > * construct of -I$(KERNEL)/tools/lib/ this include find > * tools/lib/bpf/bpf.h which defines the userspace API > */ > -#include <bpf/bpf.h> > +#include "bpf/bpf.h" > > struct bpf_insn; > > diff --git a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c > index 11157f94b062..5cf297ee2664 100644 > --- a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c > +++ b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c > @@ -13,7 +13,6 @@ static const char *__doc__= > #include <string.h> > #include <unistd.h> > #include <locale.h> > -#include <linux/bitops.h> > > #include <sys/resource.h> > #include <getopt.h> > @@ -212,7 +211,7 @@ static void blacklist_print_proto(int key, __u64 count) > printf("\n\t\"%s\" : %llu", xdp_proto_filter_names[key], count); > } > > -static void blacklist_print_port(int key, u32 val, int countfds[]) > +static void blacklist_print_port(int key, __u32 val, int countfds[]) > { > int i; > __u64 count; > -- > 2.7.4 > ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04 2017-04-11 20:01 ` Andy Gospodarek @ 2017-04-11 21:58 ` Jay Vosburgh 0 siblings, 0 replies; 7+ messages in thread From: Jay Vosburgh @ 2017-04-11 21:58 UTC (permalink / raw) To: Andy Gospodarek; +Cc: xdp-newbies, Jesper Dangaard Brouer Andy Gospodarek <andy@greyhouse.net> wrote: >On Mon, Apr 10, 2017 at 08:35:13PM -0700, Jay Vosburgh wrote: >> This patch resolves build issues when compiling the samples on >> Ubuntu 17.04 with the distro 4.10 kernel and the linux-headers package >> installed. This permits running the samples using distro packages >> without needing to rebuild the kernel from source. >> >> Tested on a 17.04 VM using virtio_net. > >This is a good goal and I like where you are going with this. > >Unfortunately with this patch applied I cannot build against a locally >installed and running kernel. > >$ make >gcc -O2 -Wall -o tools/lib/bpf/bpf.o -c tools/lib/bpf/bpf.c >tools/lib/bpf/bpf.c: In function ‘bpf_create_map’: >tools/lib/bpf/bpf.c:67:6: error: ‘union bpf_attr’ has no member named ‘map_flags’ > attr.map_flags = map_flags; > ^ >Makefile:141: recipe for target 'tools/lib/bpf/bpf.o' failed >make: *** [tools/lib/bpf/bpf.o] Error 1 FWIW, I saw this error when originally trying to compile on the Ubuntu 16.04 user space, because the glibc headers are too old to have this field in bpf_attr. >The build deps are not ideal in this Makefile, so I'm wondering if your >build was successful because you had tools/lib/bpf/bpf.o left over from >a successful build. "make clean" looks like it erases that bpf.o, so I don't think this was it. Also, I just noticed that make clean isn't getting the command line program itself: diff --git a/kernel/samples/bpf/Makefile b/kernel/samples/bpf/Makefile index 7d77e53d6cd8..cd6b6ab03bb8 100644 --- a/kernel/samples/bpf/Makefile +++ b/kernel/samples/bpf/Makefile @@ -96,6 +96,7 @@ clean: rm -f $(TARGETS) rm -f $(KERN_OBJECTS) rm -f $(USER_OBJECTS) + rm -f $(CMDLINE_TOOLS) dependencies: verify_llvm_target_bpf linux-src-devel-headers >This patch on top of yours does work for me. Can you add this on top >and let me know if your build still works? With your patch applied, on my system it still builds fine. -J >diff --git a/kernel/samples/bpf/Makefile b/kernel/samples/bpf/Makefile >index 7d77e53..8e493b1 100644 >--- a/kernel/samples/bpf/Makefile >+++ b/kernel/samples/bpf/Makefile >@@ -49,7 +49,7 @@ KERNEL=$(kbuilddir) > CFLAGS := -O2 -Wall > > # Local copy of kernel/tools/lib/ >-USER_CFLAGS := $(CFLAGS) -I./tools/lib >+USER_CFLAGS := $(CFLAGS) -I./tools/lib -I./tools/include/uapi/ > > LDFLAGS= -lelf > >@@ -138,7 +138,7 @@ verify_llvm_target_bpf: verify_cmds > > # The fake-minimal-libbpf > $(OBJECT_LIBBPF): %.o: %.c >- $(CC) $(CFLAGS) -o $@ -c $< >+ $(CC) $(USER_CFLAGS) -o $@ -c $< > > $(OBJECT_LOADBPF): bpf_load.c > $(CC) $(USER_CFLAGS) -o $@ -c $< > >> >> Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com> >> --- >> >> I haven't tried the patched version of this on a built from >> source kernel yet, so it might break that. >> >> kernel/samples/bpf/Makefile | 18 ++++-------------- >> kernel/samples/bpf/libbpf.h | 2 +- >> kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c | 3 +-- >> 3 files changed, 6 insertions(+), 17 deletions(-) >> >> diff --git a/kernel/samples/bpf/Makefile b/kernel/samples/bpf/Makefile >> index 2aa4f73a6bba..7d77e53d6cd8 100644 >> --- a/kernel/samples/bpf/Makefile >> +++ b/kernel/samples/bpf/Makefile >> @@ -49,17 +49,7 @@ KERNEL=$(kbuilddir) >> CFLAGS := -O2 -Wall >> >> # Local copy of kernel/tools/lib/ >> -CFLAGS += -I./tools/lib >> -#CFLAGS += -I$(KERNEL)/tools/lib >> -# >> -# Local copy of uapi/linux/bpf.h kept under ./tools/include >> -# needed due to enum dependency in bpf_helpers.h >> -CFLAGS += -I./tools/include >> -CFLAGS += -I$(KERNEL)/tools/include >> -#CFLAGS += -I$(KERNEL)/tools/perf >> -CFLAGS += -I$(KERNEL)/usr/include >> -# Strange dependency to "selftests" due to "bpf_util.h" >> -#CFLAGS += -I$(KERNEL)/tools/testing/selftests/bpf/ >> +USER_CFLAGS := $(CFLAGS) -I./tools/lib >> >> LDFLAGS= -lelf >> >> @@ -151,7 +141,7 @@ $(OBJECT_LIBBPF): %.o: %.c >> $(CC) $(CFLAGS) -o $@ -c $< >> >> $(OBJECT_LOADBPF): bpf_load.c >> - $(CC) $(CFLAGS) -o $@ -c $< >> + $(CC) $(USER_CFLAGS) -o $@ -c $< >> >> # Compiling of eBPF restricted-C code with LLVM >> # clang option -S generated output file with suffix .ll >> @@ -168,7 +158,7 @@ $(KERN_OBJECTS): %.o: %.c >> $(LLC) -march=bpf -filetype=obj -o $@ ${@:.o=.ll} >> >> $(TARGETS): %: %_user.c $(OBJECTS) Makefile >> - $(CC) $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $< >> + $(CC) $(USER_CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $< >> >> $(CMDLINE_TOOLS): %: %.c $(OBJECTS) Makefile $(COMMON_H) >> - $(CC) -g $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $< >> + $(CC) -g $(USER_CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $< >> diff --git a/kernel/samples/bpf/libbpf.h b/kernel/samples/bpf/libbpf.h >> index 1a3c7a06f4c3..b572a0517498 100644 >> --- a/kernel/samples/bpf/libbpf.h >> +++ b/kernel/samples/bpf/libbpf.h >> @@ -9,7 +9,7 @@ >> * construct of -I$(KERNEL)/tools/lib/ this include find >> * tools/lib/bpf/bpf.h which defines the userspace API >> */ >> -#include <bpf/bpf.h> >> +#include "bpf/bpf.h" >> >> struct bpf_insn; >> >> diff --git a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c >> index 11157f94b062..5cf297ee2664 100644 >> --- a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c >> +++ b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c >> @@ -13,7 +13,6 @@ static const char *__doc__= >> #include <string.h> >> #include <unistd.h> >> #include <locale.h> >> -#include <linux/bitops.h> >> >> #include <sys/resource.h> >> #include <getopt.h> >> @@ -212,7 +211,7 @@ static void blacklist_print_proto(int key, __u64 count) >> printf("\n\t\"%s\" : %llu", xdp_proto_filter_names[key], count); >> } >> >> -static void blacklist_print_port(int key, u32 val, int countfds[]) >> +static void blacklist_print_port(int key, __u32 val, int countfds[]) >> { >> int i; >> __u64 count; >> -- >> 2.7.4 >> --- -Jay Vosburgh, jay.vosburgh@canonical.com ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04 2017-04-11 3:35 [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04 Jay Vosburgh 2017-04-11 20:01 ` Andy Gospodarek @ 2017-04-12 11:51 ` Johannes Berg 2017-04-21 20:58 ` Jay Vosburgh 1 sibling, 1 reply; 7+ messages in thread From: Johannes Berg @ 2017-04-12 11:51 UTC (permalink / raw) To: Jay Vosburgh, xdp-newbies; +Cc: Jesper Dangaard Brouer, Andy Gospodarek On Mon, 2017-04-10 at 20:35 -0700, Jay Vosburgh wrote: > This patch resolves build issues when compiling the samples on > Ubuntu 17.04 with the distro 4.10 kernel and the linux-headers > package > installed. This permits running the samples using distro packages > without needing to rebuild the kernel from source. > > Tested on a 17.04 VM using virtio_net. > > Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com> > --- > > I haven't tried the patched version of this on a built from > source kernel yet, so it might break that. I was able to build on a recent Debian testing by simply inserting the following line into samples/bpf/Makefile to force it to use the kernel's UAPI instead of the installed headers: HOSTCFLAGS += -I$(srctree)/include/uapi/ -D__EXPORTED_HEADERS__ johannes ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04 2017-04-12 11:51 ` Johannes Berg @ 2017-04-21 20:58 ` Jay Vosburgh 2017-04-25 8:35 ` Jesper Dangaard Brouer 0 siblings, 1 reply; 7+ messages in thread From: Jay Vosburgh @ 2017-04-21 20:58 UTC (permalink / raw) To: Johannes Berg; +Cc: xdp-newbies, Jesper Dangaard Brouer, Andy Gospodarek Johannes Berg <johannes@sipsolutions.net> wrote: >On Mon, 2017-04-10 at 20:35 -0700, Jay Vosburgh wrote: >> This patch resolves build issues when compiling the samples on >> Ubuntu 17.04 with the distro 4.10 kernel and the linux-headers >> package >> installed. This permits running the samples using distro packages >> without needing to rebuild the kernel from source. >> >> Tested on a 17.04 VM using virtio_net. >> >> Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com> >> --- >> >> I haven't tried the patched version of this on a built from >> source kernel yet, so it might break that. > >I was able to build on a recent Debian testing by simply inserting the >following line into samples/bpf/Makefile to force it to use the >kernel's UAPI instead of the installed headers: > >HOSTCFLAGS += -I$(srctree)/include/uapi/ -D__EXPORTED_HEADERS__ Getting back to this after a couple of weeks... The above changes didn't make any difference for me, but it turns out all of the various Makefile hacks I did previously aren't needed for Ubuntu 17.04, the following lets the examples build and run fine: diff --git a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c index 11157f9..5cf297e 100644 --- a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c +++ b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c @@ -13,7 +13,6 @@ static const char *__doc__= #include <string.h> #include <unistd.h> #include <locale.h> -#include <linux/bitops.h> #include <sys/resource.h> #include <getopt.h> @@ -212,7 +211,7 @@ static void blacklist_print_proto(int key, __u64 count) printf("\n\t\"%s\" : %llu", xdp_proto_filter_names[key], count); } -static void blacklist_print_port(int key, u32 val, int countfds[]) +static void blacklist_print_port(int key, __u32 val, int countfds[]) { int i; __u64 count; -J --- -Jay Vosburgh, jay.vosburgh@canonical.com ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04 2017-04-21 20:58 ` Jay Vosburgh @ 2017-04-25 8:35 ` Jesper Dangaard Brouer 2017-04-26 14:59 ` Jesper Dangaard Brouer 0 siblings, 1 reply; 7+ messages in thread From: Jesper Dangaard Brouer @ 2017-04-25 8:35 UTC (permalink / raw) To: Jay Vosburgh; +Cc: Johannes Berg, xdp-newbies, Andy Gospodarek, brouer On Fri, 21 Apr 2017 13:58:42 -0700 Jay Vosburgh <jay.vosburgh@canonical.com> wrote: > Johannes Berg <johannes@sipsolutions.net> wrote: > > >On Mon, 2017-04-10 at 20:35 -0700, Jay Vosburgh wrote: > >> This patch resolves build issues when compiling the samples on > >> Ubuntu 17.04 with the distro 4.10 kernel and the linux-headers > >> package > >> installed. This permits running the samples using distro packages > >> without needing to rebuild the kernel from source. > >> > >> Tested on a 17.04 VM using virtio_net. > >> > >> Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com> > >> --- > >> > >> I haven't tried the patched version of this on a built from > >> source kernel yet, so it might break that. > > > >I was able to build on a recent Debian testing by simply inserting the > >following line into samples/bpf/Makefile to force it to use the > >kernel's UAPI instead of the installed headers: > > > >HOSTCFLAGS += -I$(srctree)/include/uapi/ -D__EXPORTED_HEADERS__ > > Getting back to this after a couple of weeks... > > The above changes didn't make any difference for me, but it > turns out all of the various Makefile hacks I did previously aren't > needed for Ubuntu 17.04, the following lets the examples build and run > fine: > > diff --git a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c > index 11157f9..5cf297e 100644 > --- a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c > +++ b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c > @@ -13,7 +13,6 @@ static const char *__doc__= > #include <string.h> > #include <unistd.h> > #include <locale.h> > -#include <linux/bitops.h> This include was added by Andy in commit 888606b5accb ("samples/bpf: xdp_ddos01 add support for port blacklisting"). To Andy, are you okay with this change/patch? > #include <sys/resource.h> > #include <getopt.h> > @@ -212,7 +211,7 @@ static void blacklist_print_proto(int key, __u64 count) > printf("\n\t\"%s\" : %llu", xdp_proto_filter_names[key], count); > } > > -static void blacklist_print_port(int key, u32 val, int countfds[]) > +static void blacklist_print_port(int key, __u32 val, int countfds[]) > { > int i; > __u64 count; > -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04 2017-04-25 8:35 ` Jesper Dangaard Brouer @ 2017-04-26 14:59 ` Jesper Dangaard Brouer 0 siblings, 0 replies; 7+ messages in thread From: Jesper Dangaard Brouer @ 2017-04-26 14:59 UTC (permalink / raw) To: Jay Vosburgh; +Cc: Johannes Berg, xdp-newbies, Andy Gospodarek, brouer Hi Jay, On Tue, 25 Apr 2017 10:35:37 +0200 Jesper Dangaard Brouer <brouer@redhat.com> wrote: > > Getting back to this after a couple of weeks... > > > > The above changes didn't make any difference for me, but it > > turns out all of the various Makefile hacks I did previously aren't > > needed for Ubuntu 17.04, the following lets the examples build and run > > fine: > > > > diff --git a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c > > index 11157f9..5cf297e 100644 > > --- a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c > > +++ b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c > > @@ -13,7 +13,6 @@ static const char *__doc__= > > #include <string.h> > > #include <unistd.h> > > #include <locale.h> > > -#include <linux/bitops.h> > > This include was added by Andy in commit 888606b5accb ("samples/bpf: > xdp_ddos01 add support for port blacklisting"). > > To Andy, are you okay with this change/patch? I've applied this and gave you author credit for the fix: https://github.com/netoptimizer/prototype-kernel/commit/7e879ecd6a96 > > #include <sys/resource.h> > > #include <getopt.h> > > @@ -212,7 +211,7 @@ static void blacklist_print_proto(int key, __u64 count) > > printf("\n\t\"%s\" : %llu", xdp_proto_filter_names[key], count); > > } > > > > -static void blacklist_print_port(int key, u32 val, int countfds[]) > > +static void blacklist_print_port(int key, __u32 val, int countfds[]) > > { > > int i; > > __u64 count; > > Applied -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-04-26 15:08 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-04-11 3:35 [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04 Jay Vosburgh 2017-04-11 20:01 ` Andy Gospodarek 2017-04-11 21:58 ` Jay Vosburgh 2017-04-12 11:51 ` Johannes Berg 2017-04-21 20:58 ` Jay Vosburgh 2017-04-25 8:35 ` Jesper Dangaard Brouer 2017-04-26 14:59 ` Jesper Dangaard Brouer
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.