Storage Performance Development Kit (SPDK)
 help / color / mirror / Atom feed
From: Harris, James R <james.r.harris at intel.com>
To: spdk@lists.01.org
Subject: Re: [SPDK] PCIe hotplug support using VFIO for NVMf
Date: Tue, 08 May 2018 13:36:01 +0000	[thread overview]
Message-ID: <9EDDCD9E-CE95-4E0D-8DB5-9DFD6B64C22C@intel.com> (raw)
In-Reply-To: b7645f0082eaf0be49aef2faef63e38b@mail.gmail.com

[-- Attachment #1: Type: text/plain, Size: 2383 bytes --]

Hi Jitendra,

There’s a loop at the end of _nvme_pcie_hotplug_monitor that is supposed to work around this circular dependency.  It periodically reads a register on the device to check if it’s been removed.  This loop was adding prior to the v18.01 release.  Can you instrument that loop to see if it is triggering?

Thanks,

-Jim


On 5/8/18, 3:42 AM, "SPDK on behalf of Jitendra Bhivare" <spdk-bounces(a)lists.01.org on behalf of jitendra.bhivare(a)broadcom.com> wrote:

    > For this to work I think we need an eventfd mechanism to notify SPDK of
    device removal from VFIO.
    Or a better approach, to generate KOBJ_CHANGE for vfio-pci driver kobject.
    
    From: Jitendra Bhivare [mailto:jitendra.bhivare(a)broadcom.com]
    Sent: Tuesday, May 8, 2018 12:11 PM
    To: 'spdk(a)lists.01.org' <spdk(a)lists.01.org>
    Subject: PCIe hotplug support using VFIO for NVMf
    
    Hi All,
    
    I am trying to use PCIe hotplug feature in SPDK v18.01 (with DPDK v17.11)
    for NVMf by setting in conf file HotplugEnable to Yes. It is not working.
    All the IOs get stuck on initiator side and nvmf_tgt does not even respond
    to nvme discovery query after that.
    
    nvmf_tgt opens a netlink socket to listen on KOBJ events. Using VFIO
    claimed NVMe PCIe devices, when a PCIe device is removed vfio_pci_remove
    waits for all references to the device added in IOMMU group to be dropped
    in vfio_del_group_dev.
    
    This reference will only be dropped after SPDK unloads the NVME PCIe
    driver. For that to happen it is waiting for the KOBJ events. KOBJ events
    won't happen till vfio_pci_remove releases the device.
    
    So we kinda reached a deadlock with circular dependency on release of the
    device.
    
    Can someone please explain how this feature is working?
    
    For this to work I think we need an eventfd mechanism to notify SPDK of
    device removal from VFIO.
    I am trying to integrate such a thing bit of a redundant approach made
    specifically for VFIO devices.
    
    Please do let me know if we have better option or working on better
    approach to make this work.
    
    Thanks,
    
    JB
    _______________________________________________
    SPDK mailing list
    SPDK(a)lists.01.org
    https://lists.01.org/mailman/listinfo/spdk
    


             reply	other threads:[~2018-05-08 13:36 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-08 13:36 Harris, James R [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-05-11  5:05 [SPDK] PCIe hotplug support using VFIO for NVMf Jitendra Bhivare
2018-05-09 11:32 Jitendra Bhivare
2018-05-08 10:42 Jitendra Bhivare
2018-05-08  6:41 Jitendra Bhivare
2018-05-08  6:18 Jitendra Bhivare

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9EDDCD9E-CE95-4E0D-8DB5-9DFD6B64C22C@intel.com \
    --to=spdk@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox