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

Jiri Kosina
2018-10-26T07:02:28Z

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@suse.cz>
> >> Signed-off-by: David Sterba <dsterba@suse.com>
> >> Signed-off-by: Sasha Levin <sashal@kernel.org>
> >
> >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.

Thanks,

--
Jiri Kosina
SUSE Labs