> -----Original Message----- > From: Shreyansh Jain [mailto:shreyansh.j...@nxp.com] > Sent: Friday, June 8, 2018 8:08 PM > To: Zhang, Qi Z <qi.z.zh...@intel.com> > Cc: tho...@monjalon.net; Burakov, Anatoly <anatoly.bura...@intel.com>; > Ananyev, Konstantin <konstantin.anan...@intel.com>; dev@dpdk.org; > Richardson, Bruce <bruce.richard...@intel.com>; Yigit, Ferruh > <ferruh.yi...@intel.com>; Shelton, Benjamin H > <benjamin.h.shel...@intel.com>; Vangati, Narender > <narender.vang...@intel.com> > Subject: Re: [dpdk-dev] [PATCH 02/22] bus/vdev: enable one device scan > > On 6/7/2018 6:08 PM, Qi Zhang wrote: > > Implemented the bus ops scan_one, besides this improve the scan > > efficiency in hotplug case, it aslo avoid sync IPC invoke (which > ^^^^ > also > > > happens in vdev->scan on secondary process). The benifit is it > ^^^^^^^ > benefit > > > removes the potiential deadlock in the case when secondary process > ^^^^^^^^^^ > potential > > > receive a request from primary process to attach a new device, since > > vdev->scan will be invoked on mp thread itself at this case. > ^^^^^^^ > in that > > > Besides the above spells, is it possible to re-write the commit? > You mention it "...improves the scan efficiency..." - how? Is that an implicit > output of introducing the new scan_one for vdev?
"Improve scan efficiency" should be general to all buses in hot plug case. since compare to bus->scan, bus->scan_one no need to iterate all devargs. But yes, it's not the original purpose for this patch set, but a bonus. I will re-write comment with below format to make it more clear. The patch implemented bus ops scan_one for vdev, it gives two benefits 1. improve scan efficiency .... 2. avoid sync IPC invoke ..... Regards Qi > > > > > Signed-off-by: Qi Zhang <qi.z.zh...@intel.com> > > --- > > drivers/bus/vdev/vdev.c | 30 ++++++++++++++++++++++++++++++ > > 1 file changed, 30 insertions(+) > > > > diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c index > > 6139dd551..cdbd77df0 100644 > > --- a/drivers/bus/vdev/vdev.c > > +++ b/drivers/bus/vdev/vdev.c > > @@ -467,6 +467,35 @@ vdev_scan(void) > > return 0; > > } > > > > [...]