Messages in this thread | | | Date | Wed, 26 Jul 2017 12:02:17 -0500 (CDT) | From | Christopher Lameter <> | Subject | Re: [RFC PATCH] mm/slub: fix a deadlock due to incomplete patching of cpusets_enabled() |
| |
On Wed, 26 Jul 2017, Dima Zavin wrote:
> The fix is to cache the value that's returned by cpusets_enabled() at the > top of the loop, and only operate on the seqlock (both begin and retry) if > it was true.
I think the proper fix would be to ensure that the calls to read_mems_allowed_{begin,retry} cannot cause the deadlock. Otherwise you have to fix this in multiple places.
Maybe read_mems_allowed_* can do some form of synchronization or *_retry can implictly rely on the results of cpusets_enabled() by *_begin?
| |