From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <srikanth044@gmail.com>
Received: from mail-vk0-f52.google.com (mail-vk0-f52.google.com
 [209.85.213.52]) by dpdk.org (Postfix) with ESMTP id B76615A55
 for <dev@dpdk.org>; Wed,  7 Oct 2015 23:16:13 +0200 (CEST)
Received: by vkao3 with SMTP id o3so20089767vka.2
 for <dev@dpdk.org>; Wed, 07 Oct 2015 14:16:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :cc:content-type;
 bh=U8nx/5kXOzYbvpfVTji4HnbmP/Mz4uuI9Vu5Ve9wbho=;
 b=tKTphpLNgm+WL0qU0FmgMF+uN4GDgQuFQxC3QsV0FlSHeDQIMU3Gqi7v6qKE3ag4pI
 SS3YPUXp6iinSsRF2xwe63eyC4qGZOgEdXudNuUVK/yhLwVAdHUng2dmbh8PijuJkNzE
 FMEODz/VpbZf9Ly+rSvUHeQ88tU3fPtzX2PHTOLOEckHv1ZqfXtqkGHoXA9mqtD03j4b
 yiPtCZRyLr/k1+Hv8HWyE982UTDG0lPcoWiwT7vQzaIRoi5lS3PaRQytkcX4PA9/+k/6
 7ClQL4Eh7rmXfTematy0YEycLka6XjmAhz2MV0ydLSiQsibfivMdWL0tgvdeKSDPlUtZ
 8FmA==
MIME-Version: 1.0
X-Received: by 10.31.1.197 with SMTP id 188mr2686285vkb.153.1444252572194;
 Wed, 07 Oct 2015 14:16:12 -0700 (PDT)
Received: by 10.103.79.207 with HTTP; Wed, 7 Oct 2015 14:16:12 -0700 (PDT)
In-Reply-To: <20150928214434.1c8c9c33@urahara>
References: <1439463883-19689-1-git-send-email-john.mcnamara@intel.com>
 <1439463883-19689-2-git-send-email-john.mcnamara@intel.com>
 <8CEF83825BEC744B83065625E567D7C219F39EE3@IRSMSX108.ger.corp.intel.com>
 <CA+8eA5kYvvpLzx1J=sY7FFVExKgpguUCqABAzOf-UfYtK1ZA7w@mail.gmail.com>
 <20150928214434.1c8c9c33@urahara>
Date: Wed, 7 Oct 2015 14:16:12 -0700
Message-ID: <CA+8eA5kadfrYcYZCXzYGwps4pjEGNrq4DvbyvzxVinXJdsiLrQ@mail.gmail.com>
From: Srikanth Akula <srikanth044@gmail.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Content-Type: text/plain; charset=UTF-8
X-Content-Filtered-By: Mailman/MimeDel 2.1.15
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] Hotplug
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: Wed, 07 Oct 2015 21:16:13 -0000

Thank you for the inputs .

I was able to solve the problem of device notification from my control
plane.

I would like to know if we have any way to know if the PCI device is
already attached before we try to attach it ( if the device is already
attached pci probe will result an error ) .
But i want to know before hand to verify if the device is already attached
or not .

I came with small API which can be used to check if the pci device is
already bound to any driver .

+int
+rte_eal_pci_is_attached(const char *devargs)
+{
+        struct rte_pci_device *dev = NULL;
+        struct rte_pci_addr addr;
+        memset(&addr,0,sizeof(struct rte_pci_addr));
+
+        if (eal_parse_pci_DomBDF(devargs, &addr) == 0)
+          {
+            TAILQ_FOREACH(dev, &pci_device_list, next) {
+            if (!rte_eal_compare_pci_addr(&dev->addr, &addr))
+              {
+                if (dev->driver)
+                  {
+                    /*pci_dump_one_device(stdout,dev);*/
+                    RTE_LOG(WARNING, EAL, "Requested device " PCI_PRI_FMT
+                      " cannot be used\n", dev->addr.domain, dev->addr.bus,
+                    dev->addr.devid, dev->addr.function);
+                   return -1;
+                 }
+              }
+           }
+         }
+   return 0;
+}
+

Could you please let me know if it is good to have such APIs

Regards,
_Srikanth_


On Mon, Sep 28, 2015 at 9:44 PM, Stephen Hemminger <
stephen@networkplumber.org> wrote:

> On Mon, 28 Sep 2015 21:12:50 -0700
> Srikanth Akula <srikanth044@gmail.com> wrote:
>
> > Hello ,
> >
> > I am trying to write an application based on DPDK port hotplug feature .
> My
> > requirement is to get an event when a new PCI devices gets added to the
> > system on the go.
> >
> > Do we have any in-built mechanism in DPDK (UIO/e1000/vfio drivers ) that
> i
> > can use to get notifications when a new device gets added . I know the
> > alternatives such as inotify etc .
> >
> > But i am more interested to get equivalent support in dpdk drivers .
> >
> > Please let me know .
> >
> > Srikanth
>
> Implementing hotplug requires integration with the OS more than any
> additional
> DPDK support. What the Brocade vRouter does is leverage the existing Linux
> udev infrastructure to send a message to the router application which then
> initializes and sets up the new hardware. Most of the DPDK changes are
> upstream
> already and involve being able to dynamically add ports on the fly.
>
>