On Wednesday, November 28, 2012 12:34:36 PM Ming Lei wrote: > On Wed, Nov 28, 2012 at 5:19 AM, Rafael J. Wysocki <rjw@xxxxxxx> wrote: > > > > Please use counters instead of walking the whole path every time. Ie. in > > addition to the flag add a counter to store the number of the device's > > children having that flag set. > > Even though counter is added, walking the whole path can't be avoided too, > and may be a explicit walking or recursion, because pm_runtime_set_memalloc_noio > is required to set or clear the flag(or increase/decrease the counter) of > devices in the whole path. But it doesn't have to walk the children. Moreover, with counters it only needs to walk the whole path if all devices in it need to be updated. For example, if you call pm_runtime_set_memalloc_noio(dev, true) for a device whose parent's counter is greater than zero already, you don't need to walk the path above the parent. Thanks, Rafael -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html