From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH v4 0/4] compatibility fallback and replacement of kernel function invoking Date: Thu, 11 Dec 2014 02:00:54 +0100 Message-ID: <2625599.7LTLyGOcoF@xps13> References: <1418209443-1744-1-git-send-email-jmiao@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Cc: dev-VfR2kkLFssw@public.gmane.org To: Jincheng Miao Return-path: In-Reply-To: <1418209443-1744-1-git-send-email-jmiao-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" > The related kernel function is: > - pci_num_vf, it is introduced from upstream linux-2.6.34. For RHEL-b= ased > kernel, it is defined from RHEL5.9. >=20 > - kstrtoul, this function is united kernel API to replace strict_strt= oul in > the furture. It is introduced from linux-2.6.39. For RHEL6, it is def= ined > from RHEL6.4. >=20 > This patchset do some compatiblity work for these two functions, and > replace strict_strtoul which is depleted from linux-3.18. >=20 > 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_rx= tx_vec.c:41:0: > /usr/lib/gcc/x86_64-redhat-linux/4.8.2/include/tmmintrin.h:31:3: erro= r: #error "SSSE3 instruction set not enabled" > # error "SSSE3 instruction set not enabled" > ``` > - for igb_uio, pass > - for kni, pass > - for xen_dom0, pass >=20 >=20 > 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 =E2=80=98kni_sock_poll=E2=80=99: > /root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c= :222: error: =E2=80=98struct socket=E2=80=99 has no member named =E2=80= =98wq=E2=80=99 > /root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c= : In function =E2=80=98kni_chk_vhost_rx=E2=80=99: > /root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c= :313: error: implicit declaration of function =E2=80=98sk_sleep=E2=80=99= > 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 =E2=80=98__wake_up=E2=80=99 makes po= inter from integer without a cast > include/linux/wait.h:146: note: expected =E2=80=98struct wait_queue_h= ead_t *=E2=80=99 but argument is of type =E2=80=98int=E2=80=99 > /root/dpdk-source/build/build/lib/librte_eal/linuxapp/kni/kni_vhost.c= : In function =E2=80=98kni_sk_write_space=E2=80=99: > /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/k= ni/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. >=20 > v4: > Indent for patches. > Include compat.h for kni_vhost.c >=20 > 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 wi= th > older kernels. >=20 > v2: > Merge these two patch in one patchset. > Compatible with old kernel for kstrtoul. > Compatible with RHEL6 for pci_num_vf. >=20 > 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 Applied Thanks --=20 Thomas