Re: [PATCH AUTOSEL 4.4 08/65] btrfs: cleaner_kthread() doesn't need explicit freeze

From: Sasha Levin
Date: Fri Oct 26 2018 - 06:57:16 EST


On Fri, Oct 26, 2018 at 08:58:57AM +0200, Jiri Kosina wrote:
On Thu, 25 Oct 2018, Sasha Levin wrote:

>> cleaner_kthread() is not marked freezable, and therefore calling
>> try_to_freeze() in its context is a pointless no-op.
>>
>> In addition to that, as has been clearly demonstrated by 80ad623edd2d
>> ("Revert "btrfs: clear PF_NOFREEZE in cleaner_kthread()"), it's perfectly
>> valid / legal for cleaner_kthread() to stay scheduled out in an arbitrary
>> place during suspend (in that particular example that was waiting for
>> reading of extent pages), so there is no need to leave any traces of
>> freezer in this kthread.
>>
>> Fixes: 80ad623edd2d ("Revert "btrfs: clear PF_NOFREEZE in
>> Fixes: cleaner_kthread()")
>> Fixes: 696249132158 ("btrfs: clear PF_NOFREEZE in cleaner_kthread()")
>> Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
>> Signed-off-by: David Sterba <dsterba@xxxxxxxx>
>> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
>
>IIRC it was some preparatory work for livepatching. I did a quick check
>if this is safe for 4.4 and would say yes, but the patch does not fix
>anything so IMO this does not need to go to stable.

Doesn't that also affect hibernation and such?

This patch just removes pointless try_to_freeze(), that's guaranteed not
to do anything and return immediately, as the btrfs kthread is not
freezable.
So I don't think it's needed in stable; the semantics is equivalent before
and after.

Gotcha. I'll drop it. Thank you!

--
Thanks,
Sasha