From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <thomas.monjalon@6wind.com>
Received: from mail-wg0-f48.google.com (mail-wg0-f48.google.com [74.125.82.48])
 by dpdk.org (Postfix) with ESMTP id 4B98D804B
 for <dev@dpdk.org>; Thu, 11 Dec 2014 02:01:22 +0100 (CET)
Received: by mail-wg0-f48.google.com with SMTP id y19so5077918wgg.21
 for <dev@dpdk.org>; Wed, 10 Dec 2014 17:01:22 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:organization
 :user-agent:in-reply-to:references:mime-version
 :content-transfer-encoding:content-type;
 bh=jYTqKczakLMg85RyzIFD/2aluQm0DPOgnjHqydumHBk=;
 b=h9WKHI8zUnn28Kg1McnpXT+AadK3G/dVLOCAtg8dl528KY6+36PQztmZefe0JgDXCk
 AxeefpHEhzVY1UFGyX+rarR3yEJCqKrr6/MnQa/LLrtDE8lgpVNekSWfaO71ST+nE88h
 3uw2Bxbpa5Qc4YETBlybmZxxH+1ijRF8z+cquV+pWqDOuSRrIc9pvRdNXyGGmClQmobD
 2FFLB8ZquO/1ZG9Ip7DELSSDMGfT7mA4w3W8bQUssf4QOcav6OOuZcqb3b1FIXE4TN3N
 gbdlVN9rMz51Rz8yy+p5SBHV9bkk12cWbBEE27EeEBqFv81BOsNsW4PDp4eoHvuC6Cxz
 pT4A==
X-Gm-Message-State: ALoCoQkwh9p6QS2PPWf156I1dGGG1eZJ4ftcx7pytyCTmyK1FQa949l7afIKHRi+9JC2inaW5Pzm
X-Received: by 10.180.102.135 with SMTP id fo7mr18037001wib.79.1418259682142; 
 Wed, 10 Dec 2014 17:01:22 -0800 (PST)
Received: from xps13.localnet ([88.249.222.12])
 by mx.google.com with ESMTPSA id be4sm776941wib.16.2014.12.10.17.01.20
 for <multiple recipients>
 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
 Wed, 10 Dec 2014 17:01:21 -0800 (PST)
From: Thomas Monjalon <thomas.monjalon@6wind.com>
To: Jincheng Miao <jmiao@redhat.com>
Date: Thu, 11 Dec 2014 02:00:54 +0100
Message-ID: <2625599.7LTLyGOcoF@xps13>
Organization: 6WIND
User-Agent: KMail/4.14.3 (Linux/3.17.4-1-ARCH; KDE/4.14.3; x86_64; ; )
In-Reply-To: <1418209443-1744-1-git-send-email-jmiao@redhat.com>
References: <1418209443-1744-1-git-send-email-jmiao@redhat.com>
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="utf-8"
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH v4 0/4] compatibility fallback and
	replacement of kernel function invoking
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Dec 2014 01:01:22 -0000

> 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 <thomas.monjalon@6wind.com>

Applied

Thanks
--=20
Thomas