From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vk0-f50.google.com (mail-vk0-f50.google.com [209.85.213.50]) by dpdk.org (Postfix) with ESMTP id D68865A49 for ; Thu, 8 Oct 2015 02:06:02 +0200 (CEST) Received: by vkao3 with SMTP id o3so22062698vka.2 for ; Wed, 07 Oct 2015 17:06:02 -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=5/J0xSFqqGAC0R9a9DtOkpJccUGxA4zLNt9hN1JQGOg=; b=amgawFS20RwjT4TM0bqgyIzzG+SL+jIG7vduNu7dV2Qhs3bGWNmck42KxIBvv2OOwR da3qhOim2YntVXKKZwBvjFifyC/j7OhjsKzKp8b4Jy/9HVbtnovZ26drOXVMPrOSuYE7 nE/3nLgzcrhU+3PWYwhtsRS4mu38zpd1K7jJub9j2VdV4IsKRSxD//PyvVTaU4Pk3bxH BOw/ol7owIbxW6Vu186BKrfcY2CjozuXW4eZYhL/H4x17cBHYXSNrTDE5Uddx/o5+nUs MjP69808K7AYKcxhWTIfB5Xv2hDDd6gq5nrGS7/+8Jfhj+gzJEQlgwVm4DvEaIt6x/iW avPA== MIME-Version: 1.0 X-Received: by 10.31.140.143 with SMTP id o137mr3099093vkd.56.1444262762279; Wed, 07 Oct 2015 17:06:02 -0700 (PDT) Received: by 10.103.79.207 with HTTP; Wed, 7 Oct 2015 17:06:02 -0700 (PDT) In-Reply-To: <5615AE9D.7070103@igel.co.jp> 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> <20150928214434.1c8c9c33@urahara> <5615AE9D.7070103@igel.co.jp> Date: Wed, 7 Oct 2015 17:06:02 -0700 Message-ID: From: Srikanth Akula To: Tetsuya Mukawa Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: "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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Oct 2015 00:06:03 -0000 Hi Tetsuya , Thank you for your inputs . I have thought about this API , but looks like it takes interface name as argument ( which is a unique name from the rte_pci_dev instance) . But i am looking to check if the device is attached based on the PCI address . But ,I am going to test this too Regards, Srikanth On Wed, Oct 7, 2015 at 4:45 PM, Tetsuya Mukawa wrote: > On 2015/10/07 22:16, Srikanth Akula wrote: > > 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 . > > Hi Srikanth, > > I guess below API may help you. > (Unfortunately, I am out of office now, so I haven't checked it, but I > guess it works.) > > - struct rte_eth_dev *rte_eth_dev_allocated(const char *name) > > If none NULL value is returned, a device has been already attached. > If you want to check a physical NIC, above 'name' parameter will be like > below. > > snprintf(name, size, "%d:%d.%d", > pci_dev->addr.bus, pci_dev->addr.devid, > pci_dev->addr.function); > > Thanks, > Tetsuya > > > > > 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 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. > >> > >> > >