Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't build netmap with ice 1.13.7 driver #955

Open
T1mbo opened this issue Apr 10, 2024 · 1 comment
Open

Can't build netmap with ice 1.13.7 driver #955

T1mbo opened this issue Apr 10, 2024 · 1 comment

Comments

@T1mbo
Copy link

T1mbo commented Apr 10, 2024

Hi!

I use:

  • latest netmap commit (fdcccaf)
  • Debian 12.5 (Linux kernel version srv 6.1.0-18-amd64 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64 GNU/Linux)
  • ice 1.13.7 driver

I am trying to build the ice driver version 1.13.7 and I get an error when make
I do:
./configure --no-apps --disable-vale --disable-generic --disable-ptnetmap --drivers=ice --select-version=ice:1.13.7 && make

and when make, I get an error:

make[3]: Entering directory '/usr/src/linux-headers-6.1.0-18-amd64'
  CC [M]  /home/t1mbo/git/netmap/ice-1.13.7/src/ice_main.o
In file included from /home/t1mbo/git/netmap/ice-1.13.7/src/ice_main.c:112:
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h: In function ‘ice_netmap_txsync’:
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:56:13: error: assignment to ‘struct ice_ring *’ from incompatible pointer type ‘struct ice_tx_ring *’ [-Werror=incompatible-pointer-types]
   56 |         txr = vsi->tx_rings[kring->ring_id];
      |             ^
In file included from /usr/src/linux-headers-6.1.0-18-common/include/linux/export.h:33,
                 from /usr/src/linux-headers-6.1.0-18-common/include/linux/linkage.h:7,
                 from /usr/src/linux-headers-6.1.0-18-common/include/linux/crash_core.h:5,
                 from /usr/src/linux-headers-6.1.0-18-common/include/linux/kexec.h:18,
                 from /usr/src/linux-headers-6.1.0-18-common/include/linux/crash_dump.h:5,
                 from /home/t1mbo/git/netmap/ice-1.13.7/src/ice_main.c:8:
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:57:34: error: invalid use of undefined type ‘struct ice_ring’
   57 |         if (unlikely(!txr || !txr->desc)) {
      |                                  ^~
/usr/src/linux-headers-6.1.0-18-common/include/linux/compiler.h:78:45: note: in definition of macro ‘unlikely’
   78 | # define unlikely(x)    __builtin_expect(!!(x), 0)
      |                                             ^
In file included from /home/t1mbo/git/netmap/ice-1.13.7/src/ice_main.c:9:
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: error: invalid use of undefined type ‘struct ice_ring’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: note: in definition of macro ‘ICE_TX_DESC’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: error: invalid use of undefined type ‘struct ice_ring’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: note: in definition of macro ‘ICE_TX_DESC’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: error: invalid use of undefined type ‘struct ice_ring’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: note: in definition of macro ‘ICE_TX_DESC’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:159:34: error: invalid use of undefined type ‘struct ice_ring’
  159 |                 writel(nic_i, txr->tail);
      |                                  ^~
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:165:20: error: invalid use of undefined type ‘struct ice_ring’
  165 |         nic_i = txr->next_to_clean;
      |                    ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: error: invalid use of undefined type ‘struct ice_ring’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:217:57: note: in definition of macro ‘ICE_TX_DESC’
  217 | #define ICE_TX_DESC(R, i) (&(((struct ice_tx_desc *)((R)->desc))[i]))
      |                                                         ^~
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:186:20: error: invalid use of undefined type ‘struct ice_ring’
  186 |                 txr->next_to_clean = nic_i;
      |                    ^~
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h: In function ‘ice_netmap_rxsync’:
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:228:13: error: assignment to ‘struct ice_ring *’ from incompatible pointer type ‘struct ice_rx_ring *’ [-Werror=incompatible-pointer-types]
  228 |         rxr = vsi->rx_rings[kring->ring_id];
      |             ^
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:229:34: error: invalid use of undefined type ‘struct ice_ring’
  229 |         if (unlikely(!rxr || !rxr->desc)) {
      |                                  ^~
/usr/src/linux-headers-6.1.0-18-common/include/linux/compiler.h:78:45: note: in definition of macro ‘unlikely’
   78 | # define unlikely(x)    __builtin_expect(!!(x), 0)
      |                                             ^
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:260:28: error: invalid use of undefined type ‘struct ice_ring’
  260 |                 nic_i = rxr->next_to_clean; // or also k2n(kring->nr_hwtail)
      |                            ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:218:65: error: invalid use of undefined type ‘struct ice_ring’
  218 | #define ICE_RX_DESC(R, i) (&(((union ice_32b_rx_flex_desc *)((R)->desc))[i]))
      |                                                                 ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:218:65: note: in definition of macro ‘ICE_RX_DESC’
  218 | #define ICE_RX_DESC(R, i) (&(((union ice_32b_rx_flex_desc *)((R)->desc))[i]))
      |                                                                 ^~
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:305:28: error: invalid use of undefined type ‘struct ice_ring’
  305 |                         rxr->next_to_clean = nic_i;
      |                            ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:218:65: error: invalid use of undefined type ‘struct ice_ring’
  218 | #define ICE_RX_DESC(R, i) (&(((union ice_32b_rx_flex_desc *)((R)->desc))[i]))
      |                                                                 ^~
/home/t1mbo/git/netmap/ice-1.13.7/src/ice.h:218:65: note: in definition of macro ‘ICE_RX_DESC’
  218 | #define ICE_RX_DESC(R, i) (&(((union ice_32b_rx_flex_desc *)((R)->desc))[i]))
      |                                                                 ^~
/home/t1mbo/git/netmap/LINUX/ice_netmap_linux.h:356:34: error: invalid use of undefined type ‘struct ice_ring’
  356 |                 writel(nic_i, rxr->tail);
      |                                  ^~
cc1: some warnings being treated as errors
make[4]: *** [/usr/src/linux-headers-6.1.0-18-common/scripts/Makefile.build:255: /home/t1mbo/git/netmap/ice-1.13.7/src/ice_main.o] Error 1
make[3]: *** [/usr/src/linux-headers-6.1.0-18-common/Makefile:2039: /home/t1mbo/git/netmap/ice-1.13.7/src] Error 2
make[3]: Leaving directory '/usr/src/linux-headers-6.1.0-18-amd64'
make[2]: *** [Makefile:250: __sub-make] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-6.1.0-18-common'
make[1]: *** [Makefile:180: all] Error 2
make[1]: Leaving directory '/home/t1mbo/git/netmap/ice-1.13.7/src'
make: *** [netmap.mak:88: build-ice] Error 2

I found a similar issue, then I found a commit that fixes this bug in version 1.12.7, but the patch for 1.13.7 looks exactly the same.

Can you help with solving the problem?

@T1mbo
Copy link
Author

T1mbo commented Apr 10, 2024

UPD: I tried to build version 1.12.18 and it build without any problems. but when building 1.13.7 I still get an error :(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant