Re: [PATCH v4 2/6] PM / Runtime: introduce pm_runtime_set_memalloc_noio()

From
Ming Lei <hidden>
Date
2012-11-07 03:32:08
Also in
linux-mm, linux-pm, lkml
Reply to
Andrew Morton, 2012-11-06
On Wed, Nov 7, 2012 at 7:24 AM, Andrew Morton [off-list ref] wrote:
checkpatch finds a number of problems with this patch, all of which
should be fixed.  Please always use checkpatch.
Sorry for missing the check.
quoted
+             /* only clear the flag for one device if all
+              * children of the device don't set the flag.
+              */
Such a comment is usually laid out as

                /*
                 * Only ...
Will do it in -v5.
More significantly, the comment describes what the code is doing but
not why the code is doing it.  The former is (usually) obvious from
reading the C, and the latter is what good code comments address.

And it's needed in this case.  Why does the code do this?
Suppose both two usb scsi disks which share the same usb
configuration(device) set the device memalloc_noio flag, and
its ancestors' memalloc_noio flag should be cleared only after
both the two usb scsi disk's flags have been cleared.

OK, we'll add comment on clearing flag.
Also, can a device have more than one child?  If so, the code doesn't
do what the comment says it does.
It should do that because device_for_each_child() returns true immediately
only if dev_memalloc_noio() for one child returns true.
quoted
+             if (!dev || (!enable &&
+                          device_for_each_child(dev, NULL,
+                                                dev_memalloc_noio)))
+                     break;
+     }
+     mutex_unlock(&dev_hotplug_mutex);
+}
+EXPORT_SYMBOL_GPL(pm_runtime_set_memalloc_noio);

Thanks,
--
Ming Lei
Thread (16 messages) 16 messages, 2 authors, last reply 2012-11-07
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help