lkml.org 
[lkml]   [2015]   [Jul]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 2/8] driver-core: add asynchronous probing support for drivers
    From
    On Wed, Jul 8, 2015 at 5:52 PM, Dmitry Torokhov
    <dmitry.torokhov@gmail.com> wrote:
    > On Wed, Jul 08, 2015 at 05:43:23PM -0700, Dan Williams wrote:
    >> On Mon, Jul 6, 2015 at 4:38 PM, Dmitry Torokhov
    >> <dmitry.torokhov@gmail.com> wrote:
    >> > On Sat, Jul 04, 2015 at 07:09:19AM -0700, Dan Williams wrote:
    >> >> The problem I ran into was needing to remove devices that still had
    >> >> yet to be probed and not being able to use registration completion vs
    >> >> the device_lock() to effectively synchronize the sub-system.
    >> >
    >> > Why do you need to "synchronize the sub-system"? The asynchronous
    >> > probing should be transparent to the driver. Just unregister the device
    >> > (or the driver) and driver core will ensure that probe() is not in
    >> > flight.
    >>
    >> Async registration is indeed transparent to the driver. The primary
    >> need to "flush registration" is the case of "region" devices that
    >> reference a set of NVDIMM devices. A region device requires all
    >> related NVDIMMs to be active before the region can be enabled.
    >
    > Sounds like you need to call into the subsystem to let it know that the
    > device is active and activate region devices when they are ready. Could
    > be either explicit call or you can try using bus notifiers for
    > bind/unbind events.
    >
    > BTW, do you handle bind/unbind via sysfs (everyone forgets about this
    > mechanism)?

    bind/unbind via systs is central to how libnvdimm operates. It's
    covered by our unit tests.


    \
     
     \ /
      Last update: 2015-07-09 03:01    [W:5.624 / U:0.428 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site