All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/4] compatibility fallback and replacement of kernel function invoking
@ 2014-12-10 11:03 Jincheng Miao
       [not found] ` <1418209443-1744-1-git-send-email-jmiao-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 10+ messages in thread
From: Jincheng Miao @ 2014-12-10 11:03 UTC (permalink / raw)
  To: dev-VfR2kkLFssw

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
```
  - 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

 lib/librte_eal/linuxapp/igb_uio/compat.h        | 11 ++++++++++-
 lib/librte_eal/linuxapp/igb_uio/igb_uio.c       |  4 ++--
 lib/librte_eal/linuxapp/kni/compat.h            | 16 ++++++++++++++++
 lib/librte_eal/linuxapp/kni/kni_vhost.c         |  3 ++-
 lib/librte_eal/linuxapp/xen_dom0/compat.h       | 16 ++++++++++++++++
 lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c |  2 +-
 6 files changed, 47 insertions(+), 5 deletions(-)
 create mode 100644 lib/librte_eal/linuxapp/kni/compat.h
 create mode 100644 lib/librte_eal/linuxapp/xen_dom0/compat.h

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 10+ messages in thread
* [PATCH v4 4/4] xen_dom0: replace strict_strtoul with kstrtoul
@ 2014-12-10 13:04 Jincheng Miao
  0 siblings, 0 replies; 10+ messages in thread
From: Jincheng Miao @ 2014-12-10 13:04 UTC (permalink / raw)
  To: dev-VfR2kkLFssw

And add xen_dom0/compat.h for be compatible with older kernel.

Signed-off-by: Jincheng Miao <jmiao-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
 lib/librte_eal/linuxapp/xen_dom0/compat.h       | 16 ++++++++++++++++
 lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c |  3 ++-
 2 files changed, 18 insertions(+), 1 deletion(-)
 create mode 100644 lib/librte_eal/linuxapp/xen_dom0/compat.h

diff --git a/lib/librte_eal/linuxapp/xen_dom0/compat.h b/lib/librte_eal/linuxapp/xen_dom0/compat.h
new file mode 100644
index 0000000..89dab27
--- /dev/null
+++ b/lib/librte_eal/linuxapp/xen_dom0/compat.h
@@ -0,0 +1,16 @@
+/*
+ * Minimal wrappers to allow compiling xen_dom0 on older kernels.
+ */
+
+#ifndef RHEL_RELEASE_VERSION
+#define RHEL_RELEASE_VERSION(a, b) (((a) << 8) + (b))
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 39) && \
+	(!(defined(RHEL_RELEASE_CODE) && \
+	 RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6, 4)))
+
+#define kstrtoul strict_strtoul
+
+#endif /* < 2.6.39 */
+
diff --git a/lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c b/lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c
index dfb271d..543bf57 100644
--- a/lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c
+++ b/lib/librte_eal/linuxapp/xen_dom0/dom0_mm_misc.c
@@ -74,6 +74,7 @@
 #include <rte_config.h>
 #include <exec-env/rte_dom0_common.h>
 
+#include "compat.h"
 #include "dom0_mm_dev.h"
 
 MODULE_LICENSE("Dual BSD/GPL");
@@ -123,7 +124,7 @@ store_memsize(struct device *dev, struct device_attribute *attr,
 	int err = 0;
 	unsigned long mem_size;
 
-	if (0 != strict_strtoul(buf, 0, &mem_size))
+	if (0 != kstrtoul(buf, 0, &mem_size))
 		return  -EINVAL;
 
 	mutex_lock(&dom0_dev.data_lock);
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-12-11  3:16 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-10 11:03 [PATCH v4 0/4] compatibility fallback and replacement of kernel function invoking Jincheng Miao
     [not found] ` <1418209443-1744-1-git-send-email-jmiao-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-10 11:04   ` [PATCH v4 1/4] igb_uio: compatible with upstream longterm kernel and RHEL Jincheng Miao
2014-12-10 11:04   ` [PATCH v4 2/4] igb_uio: replace strict_strtoul with kstrtoul Jincheng Miao
2014-12-10 11:04   ` [PATCH v4 3/4] kni: " Jincheng Miao
2014-12-10 11:04   ` [PATCH v4 4/4] xen_dom0: " Jincheng Miao
     [not found]     ` <1418209443-1744-5-git-send-email-jmiao-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-10 12:27       ` Thomas Monjalon
2014-12-10 13:03         ` Jincheng Miao
2014-12-11  1:00   ` [PATCH v4 0/4] compatibility fallback and replacement of kernel function invoking Thomas Monjalon
2014-12-11  3:16     ` Jincheng Miao
  -- strict thread matches above, loose matches on Subject: below --
2014-12-10 13:04 [PATCH v4 4/4] xen_dom0: replace strict_strtoul with kstrtoul Jincheng Miao

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.