Re: [PATCH v4 0/4] compatibility fallback and replacement of kernel function invoking

2 messages, 2 authors, 2014-12-11 · open the first message on its own page

Re: [PATCH v4 0/4] compatibility fallback and replacement of kernel function invoking

From: Thomas Monjalon <hidden>
Date: 2014-12-11 01:00:54

The related kernel function is:
- pci_num_vf, it is introduced from upstream linux-2.6.34. For RHEL-based
kernel, it is defined from RHEL5.9.

- kstrtoul, this function is united kernel API to replace strict_strtoul in
the furture. It is introduced from linux-2.6.39. For RHEL6, it is defined
from RHEL6.4.

This patchset do some compatiblity work for these two functions, and
replace strict_strtoul which is depleted from linux-3.18.

Some test results for dpdk-1.8.0-rc3 with this patchset:
1. In RHEL7 GA: Build success after specify -mssse3 to CFLAGS,
CC ixgbe_rxtx_vec.o
In file included from /root/dpdk-source/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:41:0:
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/include/tmmintrin.h:31:3: error: #error "SSSE3 instruction set not enabled"
# error "SSSE3 instruction set not enabled"
  - for igb_uio, pass
  - for kni, pass
  - for xen_dom0, pass


2. In RHEL6.5 : Build fails for kni, and xen_dom0:
  - for igb_uio: pass
  - for kni: fail, the log is:
CC [M] /root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.o
/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c: In function kni_sock_poll:
/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c:222: error: struct socket has no member named wq
/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c: In function kni_chk_vhost_rx:
/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c:313: error: implicit declaration of function sk_sleep
cc1: warnings being treated as errors
/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c:313: error: passing argument 1 of __wake_up makes pointer from integer without a cast
include/linux/wait.h:146: note: expected struct wait_queue_head_t * but argument is of type int
/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c: In function kni_sk_write_space:
/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c:580: error: assignment makes pointer from integer without a cast
make[8]: *** [/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.o] Error 1
Do you plan to work on a fix for KNI on RHEL 6.5?
  - for xen_dom0: fail, seems xen is not offical supported in RHEL6.

v4:
  Indent for patches.
  Include compat.h for kni_vhost.c

v3:
  Adjust pci_num_vf() introduced RHEL version number.
  Seperate "replace strict_strtoul with kstrtoul" into 3 patches for igb_uio,
kni, and xen_dom0. Add compat.h in kni and xen_dom0 for compatible with
older kernels.

v2:
  Merge these two patch in one patchset.
  Compatible with old kernel for kstrtoul.
  Compatible with RHEL6 for pci_num_vf.

Jincheng Miao (4):
  igb_uio: compatible with upstream longterm kernel and RHEL
  igb_uio: replace strict_strtoul with kstrtoul
  kni: replace strict_strtoul with kstrtoul
  xen_dom0: replace strict_strtoul with kstrtoul
Acked-by: Thomas Monjalon <redacted>

Applied

Thanks
-- 
Thomas

Re: [PATCH v4 0/4] compatibility fallback and replacement of kernel function invoking

From: Jincheng Miao <hidden>
Date: 2014-12-11 03:16:31

On 12/11/2014 09:00 AM, Thomas Monjalon wrote:
quoted
The related kernel function is:
- pci_num_vf, it is introduced from upstream linux-2.6.34. For RHEL-based
kernel, it is defined from RHEL5.9.

- kstrtoul, this function is united kernel API to replace strict_strtoul in
the furture. It is introduced from linux-2.6.39. For RHEL6, it is defined
from RHEL6.4.

This patchset do some compatiblity work for these two functions, and
replace strict_strtoul which is depleted from linux-3.18.

Some test results for dpdk-1.8.0-rc3 with this patchset:
1. In RHEL7 GA: Build success after specify -mssse3 to CFLAGS,
CC ixgbe_rxtx_vec.o
In file included from /root/dpdk-source/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c:41:0:
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/include/tmmintrin.h:31:3: error: #error "SSSE3 instruction set not enabled"
# error "SSSE3 instruction set not enabled"
   - for igb_uio, pass
   - for kni, pass
   - for xen_dom0, pass


2. In RHEL6.5 : Build fails for kni, and xen_dom0:
   - for igb_uio: pass
   - for kni: fail, the log is:
CC [M] /root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.o
/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c: In function kni_sock_poll:
/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c:222: error: struct socket has no member named wq
/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c: In function kni_chk_vhost_rx:
/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c:313: error: implicit declaration of function sk_sleep
cc1: warnings being treated as errors
/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c:313: error: passing argument 1 of __wake_up makes pointer from integer without a cast
include/linux/wait.h:146: note: expected struct wait_queue_head_t * but argument is of type int
/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c: In function kni_sk_write_space:
/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c:580: error: assignment makes pointer from integer without a cast
make[8]: *** [/root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.o] Error 1
Do you plan to work on a fix for KNI on RHEL 6.5?
Yep, I am working on this :)

quoted
   - for xen_dom0: fail, seems xen is not offical supported in RHEL6.

v4:
   Indent for patches.
   Include compat.h for kni_vhost.c

v3:
   Adjust pci_num_vf() introduced RHEL version number.
   Seperate "replace strict_strtoul with kstrtoul" into 3 patches for igb_uio,
kni, and xen_dom0. Add compat.h in kni and xen_dom0 for compatible with
older kernels.

v2:
   Merge these two patch in one patchset.
   Compatible with old kernel for kstrtoul.
   Compatible with RHEL6 for pci_num_vf.

Jincheng Miao (4):
   igb_uio: compatible with upstream longterm kernel and RHEL
   igb_uio: replace strict_strtoul with kstrtoul
   kni: replace strict_strtoul with kstrtoul
   xen_dom0: replace strict_strtoul with kstrtoul
Acked-by: Thomas Monjalon <redacted>

Applied

Thanks
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help