Comments (14)
I have pushed some fixes to the next branch. Can you please check whether the
issue is solved now?
Original comment by giuseppe.lettieri73
on 16 Oct 2014 at 9:42
- Changed state: Started
- Added labels: ****
- Removed labels: ****
from netmap.
Hi Giuseppe:
Thanks for the update, netmap_lin.ko now compiles fine.
However, I ran into issue building e1000e drivers
[devuser@UTraffic9 LINUX]$ make
make -C /lib/modules/2.6.32-431.20.3.el6.x86_64/build
M=/home/devuser/Documents/netmap/LINUX
EXTRA_CFLAGS='-I/home/devuser/Documents/netmap/LINUX
-I/home/devuser/Documents/netmap/LINUX
-I/home/devuser/Documents/netmap/LINUX/../sys
-I/home/devuser/Documents/netmap/LINUX/../sys/dev -DCONFIG_NETMAP
-Wno-unused-but-set-variable -DCONFIG_NETMAP_GENERIC -DCONFIG_NETMAP_MONITOR
-DCONFIG_NETMAP_PIPE -DCONFIG_NETMAP_VALE' modules CONFIG_NETMAP=m
make[1]: Entering directory `/usr/src/kernels/2.6.32-431.20.3.el6.x86_64'
Building modules, stage 2.
MODPOST 1 modules
WARNING: could not find /home/devuser/Documents/netmap/LINUX/.netmap_mem2.o.cmd
for /home/devuser/Documents/netmap/LINUX/netmap_mem2.o
make[1]: Leaving directory `/usr/src/kernels/2.6.32-431.20.3.el6.x86_64'
cp -Rp
/home/devuser/rpmbuild/BUILD/kernel-2.6.32-431.20.3.el6/linux-2.6.32-431.20.3.el
6.x86_64/drivers/net/e1000e .
if [ -f patches/diff--e1000e--20620--20623 ]; then patch --posix --quiet
--force -p1 < patches/diff--e1000e--20620--20623; fi
I have attached the reject file
Original comment by [email protected]
on 16 Oct 2014 at 5:42
- Added labels: ****
- Removed labels: ****
Attachments:
from netmap.
Yes, unfortunately we rely only on the Torvalds kernel version to select the
drivers patch, so we fail when the linux distribution has heavily patched
drivers on its own. If you don't need the e1000e driver, you can add
--no-driver=e1000e
to ./configure. I think igb also fails, and then you can add --no-driver=igb.
If you need those drivers, I think you need to figure out where to put the
rejects in the actual driver code that you have.
By the way, please note that the netmap module is now called 'netmap.ko'.
Original comment by giuseppe.lettieri73
on 16 Oct 2014 at 5:55
- Added labels: ****
- Removed labels: ****
from netmap.
Hi Giuseppe:
Thanks. I also noticed that despite adding in multiple "no-driver" options to
the configure script, the drivers.mak file is actually empty, so no ixgbe files
will be copied and patched, as a result, only the netmap.ko is built.
[devuser@UTraffic9 LINUX]$ ./configure --driver=ixgbe
--kernel-sources=/home/devuser/rpmbuild/BUILD/kernel-2.6.32-431.20.3.el6/linux-2
.6.32-431.20.3.el6.x86_64
kernel directory /lib/modules/2.6.32-431.20.3.el6.x86_64/build
linux version 20620 [2.6.32]
module file netmap.ko
subsystems generic monitor pipe vale
kernel sources
/home/devuser/rpmbuild/BUILD/kernel-2.6.32-431.20.3.el6/linux-2.6.32-431.20.3.el
6.x86_64
drivers ixgbe
Candidate patches for this kernel:
diff--e1000--20620--99999
diff--e1000e--20620--20623
diff--r8169.c--20620--20625
[devuser@UTraffic9 LINUX]$ cat drivers.mak
.PHONY: get-drivers clean-drivers
get-drivers:
clean-drivers:
[devuser@UTraffic9 LINUX]$ make
make -C /lib/modules/2.6.32-431.20.3.el6.x86_64/build
M=/home/devuser/Documents/netmap/LINUX
EXTRA_CFLAGS='-I/home/devuser/Documents/netmap/LINUX
-I/home/devuser/Documents/netmap/LINUX
-I/home/devuser/Documents/netmap/LINUX/../sys
-I/home/devuser/Documents/netmap/LINUX/../sys/dev -DCONFIG_NETMAP
-Wno-unused-but-set-variable -DCONFIG_NETMAP_GENERIC -DCONFIG_NETMAP_MONITOR
-DCONFIG_NETMAP_PIPE -DCONFIG_NETMAP_VALE' modules CONFIG_NETMAP=m
make[1]: Entering directory `/usr/src/kernels/2.6.32-431.20.3.el6.x86_64'
CC [M] /home/devuser/Documents/netmap/LINUX/netmap_mem2.o
CC [M] /home/devuser/Documents/netmap/LINUX/netmap_mbq.o
CC [M] /home/devuser/Documents/netmap/LINUX/netmap_vale.o
CC [M] /home/devuser/Documents/netmap/LINUX/netmap_offloadings.o
CC [M] /home/devuser/Documents/netmap/LINUX/netmap_pipe.o
CC [M] /home/devuser/Documents/netmap/LINUX/netmap_monitor.o
CC [M] /home/devuser/Documents/netmap/LINUX/netmap_generic.o
CC [M] /home/devuser/Documents/netmap/LINUX/netmap_common.o
CC [M] /home/devuser/Documents/netmap/LINUX/netmap_linux.o
LD [M] /home/devuser/Documents/netmap/LINUX/netmap.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: could not find /home/devuser/Documents/netmap/LINUX/.netmap_mem2.o.cmd
for /home/devuser/Documents/netmap/LINUX/netmap_mem2.o
CC /home/devuser/Documents/netmap/LINUX/netmap.mod.o
LD [M] /home/devuser/Documents/netmap/LINUX/netmap.ko.unsigned
NO SIGN [M] /home/devuser/Documents/netmap/LINUX/netmap.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.32-431.20.3.el6.x86_64'
make -C /lib/modules/2.6.32-431.20.3.el6.x86_64/build
M=/home/devuser/Documents/netmap/LINUX
EXTRA_CFLAGS='-I/home/devuser/Documents/netmap/LINUX
-I/home/devuser/Documents/netmap/LINUX
-I/home/devuser/Documents/netmap/LINUX/../sys
-I/home/devuser/Documents/netmap/LINUX/../sys/dev -DCONFIG_NETMAP
-Wno-unused-but-set-variable -DCONFIG_NETMAP_GENERIC -DCONFIG_NETMAP_MONITOR
-DCONFIG_NETMAP_PIPE -DCONFIG_NETMAP_VALE' modules O_DRIVERS="" \
NETMAP_DRIVER_SUFFIX=
make[1]: Entering directory `/usr/src/kernels/2.6.32-431.20.3.el6.x86_64'
Building modules, stage 2.
MODPOST 0 modules
make[1]: Leaving directory `/usr/src/kernels/2.6.32-431.20.3.el6.x86_64'
Anyhow, I modified the drivers.mak and added the get and clean stubs
get-ixgbe:
cp -Rp /home/apcon/rpmbuild/BUILD/kernel-2.6.32-431.20.3.el6/linux-2.6.32-431.20.3.el6.x86_64/drivers/net/ixgbe .
if [ -f patches/diff--ixgbe--20626--30000 ]; then patch --posix --quiet --force -p1 < patches/diff--ixgbe--20626--30000; fi
if [ -f drv-subdir.mak ]; then mv ixgbe/Makefile ixgbe/orig.mak; cp drv-subdir.mak ixgbe/Makefile; fi
touch get-ixgbe
clean-ixgbe:
rm -rf ixgbe get-ixgbe
However, the successive patch still failed
cp -p /home/apcon/Documents/ixgbe-3.22.3/src/* ixgbe
if [ -f patches/diff--ixgbe--20626--30000 ]; then patch --posix --quiet --force
-p1 < patches/diff--ixgbe--20626--30000; fi
5 out of 8 hunks FAILED -- saving rejects to file ixgbe/ixgbe_main.c.rej
make: *** [get-ixgbe] Error 1
I also tried it against Intel's official release with no success
(https://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=14687)
I'm going to try to manually patch this one.
Original comment by [email protected]
on 16 Oct 2014 at 10:13
- Added labels: ****
- Removed labels: ****
from netmap.
I didn't mention above that i added in an option in the configure script
"driver=" to only build the driver specified, vs adding multiple "no-drivers"
stubs
Original comment by [email protected]
on 16 Oct 2014 at 10:14
- Added labels: ****
- Removed labels: ****
from netmap.
Please note that the version numbers are in hex. E.g., 20626 is 2.6.38. Your
'driver.mak' was empty because we don't have any patch for ixgbe before
(Torvarld's) kernel 20625, i.e., 2.6.37. If you create a working patch, please
share it :)
Re the --driver option, I think I will steal the idea. Maybe something like the
following:
--no-drivers # do not build any driver
--no-drivers=drv1[,drv2[,..]] # do not build the given drivers
--drivers=drv1[,drv2[,...]] # only build the given drivers
Original comment by giuseppe.lettieri73
on 17 Oct 2014 at 7:31
- Added labels: ****
- Removed labels: ****
from netmap.
The latest commits contain an (untested) backport of the ixgbe modifications
down to linux 2.6.32. They are always based on Torvald's kernel, and therefore
may still not apply cleanly to Red Hat/CentOS kernels, but they may be a good
starting point for you.
Original comment by giuseppe.lettieri73
on 17 Oct 2014 at 3:22
- Added labels: ****
- Removed labels: ****
from netmap.
Hi Giuseppe:
Interestingly, using patch diff-ixgbe-30500-30900 as a base (with some other
small changes), I was able to patch the official intel ixgbe driver to compile
on centos 6.5 (downloaded from
https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=14687)
I'm down to a warning for kc_simple_write, which is included in kcompat.h
(which is not included in linus kernel source of ixgbe)
make -C /lib/modules/2.6.32-431.20.3.el6.x86_64/build
M=/home/devuser/Documents/netmap/LINUX
EXTRA_CFLAGS='-I/home/devuser/Documents/netmap/LINUX
-I/home/devuser/Documents/netmap/LINUX
-I/home/devuser/Documents/netmap/LINUX/../sys
-I/home/devuser/Documents/netmap/LINUX/../sys/dev -DCONFIG_NETMAP
-Wno-unused-but-set-variable -DCONFIG_NETMAP_GENERIC -DCONFIG_NETMAP_MONITOR
-DCONFIG_NETMAP_PIPE -DCONFIG_NETMAP_VALE' modules CONFIG_IXGBE=m
O_DRIVERS="ixgbe/" \
NETMAP_DRIVER_SUFFIX=
make[1]: Entering directory `/usr/src/kernels/2.6.32-431.20.3.el6.x86_64'
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_main.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_common.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_api.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_param.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_lib.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_ethtool.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/kcompat.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_82598.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_82599.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_x540.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_sriov.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_mbx.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_dcb.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_dcb_82598.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_dcb_82599.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_sysfs.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_procfs.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_phy.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_dcb_nl.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_fcoe.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_debugfs.o
CC [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe_ptp.o
LD [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: "_kc_simple_write_to_buffer"
[/home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe.ko] undefined!
CC /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe.mod.o
LD [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe.ko.unsigned
NO SIGN [M] /home/devuser/Documents/netmap/LINUX/ixgbe/ixgbe.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.32-431.20.3.el6.x86_64'
By examining the code, I'm not seeing anything obvious, so i'm thinking, would
this be related to the netmap/LINUX/Makefile as kcompat itself does not exist
on the linus linux kernel ixgbe source? Or maybe i'm just missing something
very obvious?
I have attached the modified ixgbe_main.c against the official intel release
3.22.3
Original comment by [email protected]
on 22 Oct 2014 at 7:47
- Added labels: ****
- Removed labels: ****
Attachments:
from netmap.
uploaded the wrong file, below is most recent
Original comment by [email protected]
on 22 Oct 2014 at 7:57
- Added labels: ****
- Removed labels: ****
Attachments:
from netmap.
I think you should use the Intel provided makefile, since it passes additional
flags to gcc. You can try the following:
NETMAP=/path/to/netmap/dir
cd $NETMAP/LINUX
./configure --no-drivers
make
(now patch the Intel ixgbe driver in its own directory and cd where its
Makefile is)
cp $NETMAP/Module.symvers .
make CFLAGS_EXTRA="$(cd $NETMAP; make +EXTRA_CFLAGS)"
The strange 'make +EXTRA_CFLAGS' simply prints our own EXTRA_CFLAGS, with the
needed included paths and macro definitions. The Intel Makefile will add
CFLAGS_EXTRA to its own EXTRA_CFLAGS before passing it to the kernel build.
Original comment by giuseppe.lettieri73
on 22 Oct 2014 at 3:28
- Added labels: ****
- Removed labels: ****
from netmap.
forgot to say: your ixgbe_main_mod.c looks fine, so the problem now is not in
the patching.
Original comment by giuseppe.lettieri73
on 22 Oct 2014 at 3:40
- Added labels: ****
- Removed labels: ****
from netmap.
I have this same issue on Centos 6.6:
-bash-4.1$ make
make -C /lib/modules/2.6.32-504.el6.x86_64/build
SUBDIRS=/usr/src/ixgbe-zc-3.22.3 modules
make[1]: Entering directory `/usr/src/kernels/2.6.32-504.el6.x86_64'
/usr/src/ixgbe-zc-3.22.3/Makefile:221: using config
/lib/modules/2.6.32-504.el6.x86_64/build/include/linux/autoconf.h
CC [M] /usr/src/ixgbe-zc-3.22.3/ixgbe_debugfs.o
LD [M] /usr/src/ixgbe-zc-3.22.3/ixgbe_zc.o
Building modules, stage 2.
/usr/src/ixgbe-zc-3.22.3/Makefile:221: using config
/lib/modules/2.6.32-504.el6.x86_64/build/include/linux/autoconf.h
MODPOST 1 modules
WARNING: "_kc_simple_write_to_buffer" [/usr/src/ixgbe-zc-3.22.3/ixgbe_zc.ko]
undefined!
CC /usr/src/ixgbe-zc-3.22.3/ixgbe_zc.mod.o
LD [M] /usr/src/ixgbe-zc-3.22.3/ixgbe_zc.ko.unsigned
NO SIGN [M] /usr/src/ixgbe-zc-3.22.3/ixgbe_zc.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.32-504.el6.x86_64'
Original comment by [email protected]
on 2 Dec 2014 at 11:10
- Added labels: ****
- Removed labels: ****
from netmap.
(Note that I'm building a different fork of ixgbe, but it appears to be the
same compilation failure as above.)
Original comment by [email protected]
on 2 Dec 2014 at 11:12
- Added labels: ****
- Removed labels: ****
from netmap.
Have you tried the compilation method I proposed in #10?
Original comment by giuseppe.lettieri73
on 12 Dec 2014 at 1:26
- Added labels: ****
- Removed labels: ****
from netmap.
Related Issues (20)
- problem in ring of i40e
- error while executing make command (build)
- netmap_poll should check if interface is up
- pkt-gen txseq issues with ixl
- kernel updated, pkt-gen cause kernel panic HOT 4
- pkt-gen IP randomization differs for jumbo vs. standard frames
- nm_open with range of queues HOT 4
- Failure accessing netmap: Invalid argument HOT 1
- netmap causing hang of kernel worker.
- netmap i40e not support 6.6.4
- ProxMox + VirtIO (KVM)
- igc driver does not seem to work HOT 2
- num_slots on RX rings are zero HOT 2
- igb_netmap_rxsync error HOT 1
- Can't build ICE drivers HOT 5
- netmap_ring_reinit problems when running Zeek with netmap pipes
- Can't build netmap with ice 1.13.7 driver HOT 1
- netmap vm Question
- Is it possible to apply a patch to an external driver before configure checks it? HOT 1
- netmap_ring request size too large HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from netmap.