> -----Original Message----- > From: Shreyansh Jain [mailto:[email protected]] > Sent: Friday, June 8, 2018 8:08 PM > To: Zhang, Qi Z <[email protected]> > Cc: [email protected]; Burakov, Anatoly <[email protected]>; > Ananyev, Konstantin <[email protected]>; [email protected]; > Richardson, Bruce <[email protected]>; Yigit, Ferruh > <[email protected]>; Shelton, Benjamin H > <[email protected]>; Vangati, Narender > <[email protected]> > 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 <[email protected]> > > --- > > 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; > > } > > > > [...]

