[dpdk-dev] kni: fix compilation under RHEL 7.5
Checks
Commit Message
Fix kni compilation under RHEL 7.5.
Signed-off-by: Lee Roberts <lee.roberts@hpe.com>
---
lib/librte_eal/linuxapp/kni/compat.h | 5 +++++
1 file changed, 5 insertions(+)
Comments
On Thu, 1 Mar 2018 16:20:35 -0700
Lee Roberts <lee.roberts@hpe.com> wrote:
> Fix kni compilation under RHEL 7.5.
>
> Signed-off-by: Lee Roberts <lee.roberts@hpe.com>
> ---
> lib/librte_eal/linuxapp/kni/compat.h | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/lib/librte_eal/linuxapp/kni/compat.h b/lib/librte_eal/linuxapp/kni/compat.h
> index 3f8c0bc..6a6968d 100644
> --- a/lib/librte_eal/linuxapp/kni/compat.h
> +++ b/lib/librte_eal/linuxapp/kni/compat.h
> @@ -101,6 +101,11 @@
> #undef NET_NAME_UNKNOWN
> #endif
>
> +#if (defined(RHEL_RELEASE_CODE) && \
> + (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 5)))
> +#define ndo_change_mtu ndo_change_mtu_rh74
> +#endif
> +
> #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
> #define HAVE_SIGNAL_FUNCTIONS_OWN_HEADER
> #endif
Do we really want upstream DPDK trying to track every vendor kernel compatibility wart?
Should Redhat be owning this in their own DPDK package?
> -----Original Message-----
> From: Stephen Hemminger [mailto:stephen@networkplumber.org]
> Sent: Thursday, March 01, 2018 5:18 PM
> To: Roberts, Lee A. <lee.roberts@hpe.com>
> Cc: ferruh.yigit@intel.com; dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] kni: fix compilation under RHEL 7.5
>
> On Thu, 1 Mar 2018 16:20:35 -0700
> Lee Roberts <lee.roberts@hpe.com> wrote:
>
> > Fix kni compilation under RHEL 7.5.
> >
> > Signed-off-by: Lee Roberts <lee.roberts@hpe.com>
> > ---
> > lib/librte_eal/linuxapp/kni/compat.h | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/lib/librte_eal/linuxapp/kni/compat.h b/lib/librte_eal/linuxapp/kni/compat.h
> > index 3f8c0bc..6a6968d 100644
> > --- a/lib/librte_eal/linuxapp/kni/compat.h
> > +++ b/lib/librte_eal/linuxapp/kni/compat.h
> > @@ -101,6 +101,11 @@
> > #undef NET_NAME_UNKNOWN
> > #endif
> >
> > +#if (defined(RHEL_RELEASE_CODE) && \
> > + (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 5)))
> > +#define ndo_change_mtu ndo_change_mtu_rh74
> > +#endif
> > +
> > #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
> > #define HAVE_SIGNAL_FUNCTIONS_OWN_HEADER
> > #endif
>
> Do we really want upstream DPDK trying to track every vendor kernel compatibility wart?
> Should Redhat be owning this in their own DPDK package?
If I look at the first few lines of ../lib/librte_eal/linuxapp/kni/compat.h,
it appears that tracking changes in RHEL and SLES is certainly part of the
purpose of this file:
1 /*
2 * Minimal wrappers to allow compiling kni on older kernels.
3 */
4
5 #include <linux/version.h>
6
7 #ifndef RHEL_RELEASE_VERSION
8 #define RHEL_RELEASE_VERSION(a, b) (((a) << 8) + (b))
9 #endif
10
11 /* SuSE version macro is the same as Linux kernel version */
12 #ifndef SLE_VERSION
13 #define SLE_VERSION(a, b, c) KERNEL_VERSION(a, b, c)
14 #endif
15 #ifdef CONFIG_SUSE_KERNEL
If you want to remove the vendor dependency, I'd suggest the following actions:
1) Submit a patch to remove the RHEL- and SLES-specific code.
2) Disable KNI by default in the build system.
- Lee
On 3/1/2018 11:20 PM, Lee Roberts wrote:
> Fix kni compilation under RHEL 7.5.
>
> Signed-off-by: Lee Roberts <lee.roberts@hpe.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
(Not tested on RHEL 7.5 but code looks good)
Following patch title can be used for compatibility with old commits:
"kni: fix build on RHEL 7.5"
22/03/2018 19:07, Ferruh Yigit:
> On 3/1/2018 11:20 PM, Lee Roberts wrote:
> > Fix kni compilation under RHEL 7.5.
> >
> > Signed-off-by: Lee Roberts <lee.roberts@hpe.com>
>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
>
>
> (Not tested on RHEL 7.5 but code looks good)
>
> Following patch title can be used for compatibility with old commits:
> "kni: fix build on RHEL 7.5"
Applied, thanks
Hi Luca, Yuanhan,
On 03/02/2018 12:20 AM, Lee Roberts wrote:
> Fix kni compilation under RHEL 7.5.
>
> Signed-off-by: Lee Roberts <lee.roberts@hpe.com>
> ---
> lib/librte_eal/linuxapp/kni/compat.h | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/lib/librte_eal/linuxapp/kni/compat.h b/lib/librte_eal/linuxapp/kni/compat.h
> index 3f8c0bc..6a6968d 100644
> --- a/lib/librte_eal/linuxapp/kni/compat.h
> +++ b/lib/librte_eal/linuxapp/kni/compat.h
> @@ -101,6 +101,11 @@
> #undef NET_NAME_UNKNOWN
> #endif
>
> +#if (defined(RHEL_RELEASE_CODE) && \
> + (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 5)))
> +#define ndo_change_mtu ndo_change_mtu_rh74
> +#endif
> +
> #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
> #define HAVE_SIGNAL_FUNCTIONS_OWN_HEADER
> #endif
>
Any chance we pick these patches in stable branches so that
we can build them with RHEL 7.5 without disabling KNI?
I think it should apply cleanly on all of them, but I can send the
backport patches for each of them if necessary.
Thanks,
Maxime
On Thu, 2018-04-19 at 15:09 +0200, Maxime Coquelin wrote:
> Hi Luca, Yuanhan,
>
> On 03/02/2018 12:20 AM, Lee Roberts wrote:
> > Fix kni compilation under RHEL 7.5.
> >
> > Signed-off-by: Lee Roberts <lee.roberts@hpe.com>
> > ---
> > lib/librte_eal/linuxapp/kni/compat.h | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/lib/librte_eal/linuxapp/kni/compat.h
> > b/lib/librte_eal/linuxapp/kni/compat.h
> > index 3f8c0bc..6a6968d 100644
> > --- a/lib/librte_eal/linuxapp/kni/compat.h
> > +++ b/lib/librte_eal/linuxapp/kni/compat.h
> > @@ -101,6 +101,11 @@
> > #undef NET_NAME_UNKNOWN
> > #endif
> >
> > +#if (defined(RHEL_RELEASE_CODE) && \
> > + (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 5)))
> > +#define ndo_change_mtu ndo_change_mtu_rh74
> > +#endif
> > +
> > #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
> > #define HAVE_SIGNAL_FUNCTIONS_OWN_HEADER
> > #endif
> >
>
> Any chance we pick these patches in stable branches so that
> we can build them with RHEL 7.5 without disabling KNI?
>
> I think it should apply cleanly on all of them, but I can send the
> backport patches for each of them if necessary.
>
> Thanks,
> Maxime
Sure, I can have a look early next week for 16.11.
@@ -101,6 +101,11 @@
#undef NET_NAME_UNKNOWN
#endif
+#if (defined(RHEL_RELEASE_CODE) && \
+ (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 5)))
+#define ndo_change_mtu ndo_change_mtu_rh74
+#endif
+
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
#define HAVE_SIGNAL_FUNCTIONS_OWN_HEADER
#endif