From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [dpdk-users] Link Status and Interrupts in 2.2.0 Date: Wed, 27 Apr 2016 11:39:37 +0200 Message-ID: <3616976.ag6djbJWME@xps13> References: <22C95CA62CBADB498D32A348F0F073BC116CC81F@wcosexch02k.cos.is.keysight.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: users@dpdk.org, stephen@networkplumber.org, dev@dpdk.org To: martin_curran-gray@keysight.com Return-path: Received: from mail-wm0-f47.google.com (mail-wm0-f47.google.com [74.125.82.47]) by dpdk.org (Postfix) with ESMTP id 6195137B0 for ; Wed, 27 Apr 2016 11:39:40 +0200 (CEST) Received: by mail-wm0-f47.google.com with SMTP id a17so8079052wme.0 for ; Wed, 27 Apr 2016 02:39:40 -0700 (PDT) In-Reply-To: <22C95CA62CBADB498D32A348F0F073BC116CC81F@wcosexch02k.cos.is.keysight.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 2016-04-25 11:49, martin_curran-gray@keysight.com: > But if the link was "active" when dpdk and my app starts up, > then no interrupt is generated, which then means that global > structure is not filled in You are describing the case of interrupts enabled but never called. It has been fixed in DPDK 2.0: http://dpdk.org/commit/99610782 But a race condition has been seen if interrupt fires during rte_eth_dev_start() call. The decision was to remove link update if interrupt is enabled (DPDK 2.2): http://dpdk.org/commit/d5790b03 This "fix" was a bit strange: - Is it possible to fix the race condition with link_update in the drivers? - Is it possible to update the link status in dev_start of each driver without race condition with the interrupt? - Why calling link_update() from rte_eth_dev_start() in the polling case? > I saw a submission to the patchwork 7160, dated Sep 24 2015 > but it was marked as not applicable , archived..... It has been re-submitted and applied (hence the problem): http://dpdk.org/patch/8112