Messages in this thread | | | Subject | Re: regulator: deadlock vs memory reclaim | From | Dmitry Osipenko <> | Date | Tue, 11 Aug 2020 00:23:37 +0300 |
| |
10.08.2020 23:56, Dmitry Osipenko пишет: > 10.08.2020 23:21, Dmitry Osipenko пишет: >> 10.08.2020 23:18, Michał Mirosław пишет: >>> On Mon, Aug 10, 2020 at 11:15:28PM +0300, Dmitry Osipenko wrote: >>>> 10.08.2020 23:09, Michał Mirosław пишет: >>>>> At first I also thought so, but there's more. Below is a lockdep >>>>> complaint with your patch applied. I did a similar patch and then two more >>>>> (following) and that is still not enough (sysfs/debugfs do allocations, >>>>> too). >>>> Then it should be good to move the locking for init_coupling() like I >>>> suggested and use GFP_NOWAIT for the two other cases. It all could be a >>>> single small patch. Could you please check whether GFP_NOWAIT helps? >>> >>> This would be equivalent to my patches. Problem with sysfs and debugfs >>> remains as they don't have the option of GFP_NOWAIT. This needs to be >>> moved outside of the locks. >> >> Ah okay, you meant the debugfs core. I see now, thanks. >> > > This indeed needs a capital solution. > > It's not obvious how to fix it.. we can probably remove taking the > list_mutex from lock_dependent(), but this still won't help the case of > memory reclaiming because reclaim may cause touching the already locked > regulator. IIUC, the case of memory reclaiming under regulator lock was > always dangerous and happened to work by chance before, correct? >
And like Mark mentioned before, this situation also potentially may happen from other paths.
| |