From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hemant Agrawal Subject: Re: DPDK drivers should not use kernel version Date: Fri, 23 Jun 2017 13:03:55 +0530 Message-ID: <4376741f-cece-8086-eddb-c35ee9ef06a4@nxp.com> References: <20170621092843.72606c72@xeon-e3> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Cc: To: Stephen Hemminger , Shahaf Shuler , Pascal Mazon Return-path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0051.outbound.protection.outlook.com [104.47.32.51]) by dpdk.org (Postfix) with ESMTP id 04E751C0B for ; Fri, 23 Jun 2017 09:34:04 +0200 (CEST) In-Reply-To: <20170621092843.72606c72@xeon-e3> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 6/21/2017 9:58 PM, Stephen Hemminger wrote: > Looking at some other issues, I noticed that both the TAP and MLX5 device > drivers are looking at kernel version through uname. Although this may > seem like a good way to deal with kernel API changes, it is not reliable. > > Enterprise kernel distro vendors never change kernel version but do backport > features from later kernels. Therefore the behavior expected may change > even though kernel version doesn't change. Also kernel version does not > dictate that the expected feature (like flower) is in the kernel configuration. > > I recommend this be looked for in all future submissions. Maybe even flagged > as error in DPDK version of checkpatch. what is the alternative than? There are many legitimate cases, where userspace code need to make decision on the basis underlying kernel version. In some cases, user space code can add error handling and fallback, but it is not possible in all cases. > > $ git blame drivers/net/mlx5/mlx5_ethdev.c | grep uname > 3a49ffe38a950 (Shahaf Shuler 2017-02-09 14:29:54 +0200 895) if (uname(&utsname) == -1 || > $ git blame drivers/net/tap/rte_eth_tap.c | grep uname > de96fe68ae959 (Pascal Mazon 2017-03-23 09:33:57 +0100 1169) if (uname(&utsname) == -1 || > >