linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Document that PF_KTHREAD _is_ ABI
@ 2021-03-20 16:30 Alexey Dobriyan
  2021-03-20 17:23 ` Andy Lutomirski
  0 siblings, 1 reply; 7+ messages in thread
From: Alexey Dobriyan @ 2021-03-20 16:30 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel, linux-api

PF_KTHREAD value is visible via field number 9 of /proc/*/stat

	$ sudo cat /proc/2/stat
	2 (kthreadd) S 0 0 0 0 -1 2129984 0 ...
				  ^^^^^^^

It is used by at least systemd to check for kernel-threadness:
https://github.com/systemd/systemd/blob/main/src/basic/process-util.c#L354
src/basic/process-util.c:is_kernel_thread()

It means that the value can't be changed despite perceived notion that
task_struct flags are internal to kernel and can be shuffled at whim.

Formally, _all_ struct task_struct::flags PF_* values are kernel ABI
which is a disaster.

I hope we can mask everything but few flags and hope for the best :^)

Note for beginner Linux programmers:
every other way you find on the interwebs and Stack Overflow
for checking if pid belongs to a kernel thread is broken one way or
another.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---

 include/linux/sched.h |    3 +++
 1 file changed, 3 insertions(+)

--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1566,6 +1566,9 @@ extern struct pid *cad_pid;
 #define PF_MEMALLOC_NOIO	0x00080000	/* All allocation requests will inherit GFP_NOIO */
 #define PF_LOCAL_THROTTLE	0x00100000	/* Throttle writes only against the bdi I write to,
 						 * I am cleaning dirty pages from some other bdi. */
+/*
+ * PF_KTHREAD is part of kernel ABI, visible via value #9 in /proc/$pid/stat
+ */
 #define PF_KTHREAD		0x00200000	/* I am a kernel thread */
 #define PF_RANDOMIZE		0x00400000	/* Randomize virtual address space */
 #define PF_SWAPWRITE		0x00800000	/* Allowed to write to swap */

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Document that PF_KTHREAD _is_ ABI
  2021-03-20 16:30 [PATCH] Document that PF_KTHREAD _is_ ABI Alexey Dobriyan
@ 2021-03-20 17:23 ` Andy Lutomirski
  2021-03-20 17:39   ` Alexey Dobriyan
  2021-03-22  7:53   ` Christoph Hellwig
  0 siblings, 2 replies; 7+ messages in thread
From: Andy Lutomirski @ 2021-03-20 17:23 UTC (permalink / raw)
  To: Alexey Dobriyan; +Cc: Andrew Morton, LKML, Linux API

> On Mar 20, 2021, at 9:31 AM, Alexey Dobriyan <adobriyan@gmail.com> wrote:
>
> PF_KTHREAD value is visible via field number 9 of /proc/*/stat
>
>    $ sudo cat /proc/2/stat
>    2 (kthreadd) S 0 0 0 0 -1 2129984 0 ...
>                  ^^^^^^^
>
> It is used by at least systemd to check for kernel-threadness:
> https://github.com/systemd/systemd/blob/main/src/basic/process-util.c#L354
> src/basic/process-util.c:is_kernel_thread()

Eww.

Could we fix it differently and more permanently by modifying the proc
code to display the values systemd expects?


>
> It means that the value can't be changed despite perceived notion that
> task_struct flags are internal to kernel and can be shuffled at whim.
>
> Formally, _all_ struct task_struct::flags PF_* values are kernel ABI
> which is a disaster.
>
> I hope we can mask everything but few flags and hope for the best :^)
>
> Note for beginner Linux programmers:
> every other way you find on the interwebs and Stack Overflow
> for checking if pid belongs to a kernel thread is broken one way or
> another.
>
> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> ---
>
> include/linux/sched.h |    3 +++
> 1 file changed, 3 insertions(+)
>
> --- a/include/linux/sched.h
> +++ b/include/linux/sched.h
> @@ -1566,6 +1566,9 @@ extern struct pid *cad_pid;
> #define PF_MEMALLOC_NOIO    0x00080000    /* All allocation requests will inherit GFP_NOIO */
> #define PF_LOCAL_THROTTLE    0x00100000    /* Throttle writes only against the bdi I write to,
>                         * I am cleaning dirty pages from some other bdi. */
> +/*
> + * PF_KTHREAD is part of kernel ABI, visible via value #9 in /proc/$pid/stat
> + */
> #define PF_KTHREAD        0x00200000    /* I am a kernel thread */
> #define PF_RANDOMIZE        0x00400000    /* Randomize virtual address space */
> #define PF_SWAPWRITE        0x00800000    /* Allowed to write to swap */

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Document that PF_KTHREAD _is_ ABI
  2021-03-20 17:23 ` Andy Lutomirski
@ 2021-03-20 17:39   ` Alexey Dobriyan
  2021-03-20 19:20     ` Florian Weimer
  2021-03-22  7:53   ` Christoph Hellwig
  1 sibling, 1 reply; 7+ messages in thread
From: Alexey Dobriyan @ 2021-03-20 17:39 UTC (permalink / raw)
  To: Andy Lutomirski; +Cc: Andrew Morton, LKML, Linux API

On Sat, Mar 20, 2021 at 10:23:12AM -0700, Andy Lutomirski wrote:
> > On Mar 20, 2021, at 9:31 AM, Alexey Dobriyan <adobriyan@gmail.com> wrote:
> >
> > PF_KTHREAD value is visible via field number 9 of /proc/*/stat
> >
> >    $ sudo cat /proc/2/stat
> >    2 (kthreadd) S 0 0 0 0 -1 2129984 0 ...
> >                  ^^^^^^^
> >
> > It is used by at least systemd to check for kernel-threadness:
> > https://github.com/systemd/systemd/blob/main/src/basic/process-util.c#L354
> > src/basic/process-util.c:is_kernel_thread()
> 
> Eww.
> 
> Could we fix it differently and more permanently by modifying the proc
> code to display the values systemd expects?

Right now there is no need to fix anything because 4 bits are available.
I put a comment so that PF_KTHREAD won't be moved accidently definitely
breaking systemd.

> > It means that the value can't be changed despite perceived notion that
> > task_struct flags are internal to kernel and can be shuffled at whim.
> >
> > Formally, _all_ struct task_struct::flags PF_* values are kernel ABI
> > which is a disaster.
> >
> > I hope we can mask everything but few flags and hope for the best :^)

> > +/*
> > + * PF_KTHREAD is part of kernel ABI, visible via value #9 in /proc/$pid/stat
> > + */
> > #define PF_KTHREAD        0x00200000    /* I am a kernel thread */

I think everything should be masked except PF_KTHREAD and maybe few
flags for which known users exist and then don't touch them.

Some flags are clearly internal like PF_MEMALLOC and PF_IDLE.

Some aren't -- PF_FORKNOEXEC. However it is silly for userspace to query it
because programs knows if it forked but didn't exec without external help.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Document that PF_KTHREAD _is_ ABI
  2021-03-20 17:39   ` Alexey Dobriyan
@ 2021-03-20 19:20     ` Florian Weimer
  0 siblings, 0 replies; 7+ messages in thread
From: Florian Weimer @ 2021-03-20 19:20 UTC (permalink / raw)
  To: Alexey Dobriyan; +Cc: Andy Lutomirski, Andrew Morton, LKML, Linux API

* Alexey Dobriyan:

> Some aren't -- PF_FORKNOEXEC. However it is silly for userspace to query it
> because programs knows if it forked but didn't exec without external help.

Libraries typically lack that knowledge, and may have reasons to
detect forks.  But there are probably better ways than this flag, like
a MADV_WIPEONFORK mapping, or comparing counters in MAP_PRIVATE and
MAP_SHARED mappings.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Document that PF_KTHREAD _is_ ABI
  2021-03-20 17:23 ` Andy Lutomirski
  2021-03-20 17:39   ` Alexey Dobriyan
@ 2021-03-22  7:53   ` Christoph Hellwig
  2021-03-31 19:23     ` Alexey Dobriyan
  1 sibling, 1 reply; 7+ messages in thread
From: Christoph Hellwig @ 2021-03-22  7:53 UTC (permalink / raw)
  To: Andy Lutomirski; +Cc: Alexey Dobriyan, Andrew Morton, LKML, Linux API

On Sat, Mar 20, 2021 at 10:23:12AM -0700, Andy Lutomirski wrote:
> > https://github.com/systemd/systemd/blob/main/src/basic/process-util.c#L354
> > src/basic/process-util.c:is_kernel_thread()
> 
> Eww.
> 
> Could we fix it differently and more permanently by modifying the proc
> code to display the values systemd expects?

Yes, do_task_stat needs a mapping from kernel flags to UABI flags.  And
we should already discard everything we think we can from the UABI
now, and only add the ones back that are required to not break
userspace.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Document that PF_KTHREAD _is_ ABI
  2021-03-22  7:53   ` Christoph Hellwig
@ 2021-03-31 19:23     ` Alexey Dobriyan
  2021-04-01 15:05       ` Stefan Metzmacher
  0 siblings, 1 reply; 7+ messages in thread
From: Alexey Dobriyan @ 2021-03-31 19:23 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Andy Lutomirski, Andrew Morton, LKML, Linux API, fw

On Mon, Mar 22, 2021 at 07:53:10AM +0000, Christoph Hellwig wrote:
> On Sat, Mar 20, 2021 at 10:23:12AM -0700, Andy Lutomirski wrote:
> > > https://github.com/systemd/systemd/blob/main/src/basic/process-util.c#L354
> > > src/basic/process-util.c:is_kernel_thread()
> > 
> > Eww.
> > 
> > Could we fix it differently and more permanently by modifying the proc
> > code to display the values systemd expects?
> 
> Yes, do_task_stat needs a mapping from kernel flags to UABI flags.  And
> we should already discard everything we think we can from the UABI
> now, and only add the ones back that are required to not break
> userspace.

Sure we do. Who is going to find all the flags? I found PF_KTHREAD. :^)

More seriously,

/proc/$pid/stat was expanded to include tsk->flags in 0.99.1 (!!!)

Developers kept adding and shuffling flags probably not even realising
what's going on. The last incident happened at 5.10 when PF_IO_WORKER
was exchanged with PF_VCPU for smaller codegen.

Can I get PF_KTHREAD wasrning because it is _definitely_ used?

I'll post CSV file from 2.6.11 days:

version,#x00000001,#x00000002,#x00000004,#x00000008,#x00000010,#x00000020,#x00000040,#x00000080,#x00000100,#x00000200,#x00000400,#x00000800,#x00001000,#x00002000,#x00004000,#x00008000,#x00010000,#x00020000,#x00040000,#x00080000,#x00100000,#x00200000,#x00400000,#x00800000,#x01000000,#x02000000,#x04000000,#x08000000,#x10000000,#x20000000,#x40000000,#x80000000
v2.6.11,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_DEAD,,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZE,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_SYNCWRITE,PF_BORROWED_MM,,,,,,,,,
v2.6.12,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_DEAD,,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZE,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_SYNCWRITE,PF_BORROWED_MM,PF_RANDOMIZE,,,,,,,,
v2.6.13,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_DEAD,,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZE,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_SYNCWRITE,PF_BORROWED_MM,PF_RANDOMIZE,,,,,,,,
v2.6.14,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_DEAD,,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZE,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_SYNCWRITE,PF_BORROWED_MM,PF_RANDOMIZE,,,,,,,,
v2.6.15,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_DEAD,,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZE,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_SYNCWRITE,PF_BORROWED_MM,PF_RANDOMIZE,,,,,,,,
v2.6.16,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_DEAD,,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZE,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_SYNCWRITE,PF_BORROWED_MM,PF_RANDOMIZE,PF_SWAPWRITE,,,,,,,
v2.6.17,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_DEAD,,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZE,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_SYNCWRITE,PF_BORROWED_MM,PF_RANDOMIZE,PF_SWAPWRITE,,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_MEMPOLICY,,,
v2.6.18,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_DEAD,,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZE,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_BORROWED_MM,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,,,PF_MEMPOLICY,PF_MUTEX_TESTER,,
v2.6.19,PF_ALIGNWARN,PF_STARTING,PF_EXITING,,,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZE,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_BORROWED_MM,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,,,PF_MEMPOLICY,PF_MUTEX_TESTER,,
v2.6.20,PF_ALIGNWARN,PF_STARTING,PF_EXITING,,,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_BORROWED_MM,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,,,PF_MEMPOLICY,PF_MUTEX_TESTER,,
v2.6.21,PF_ALIGNWARN,PF_STARTING,PF_EXITING,,,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_BORROWED_MM,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,,,PF_MEMPOLICY,PF_MUTEX_TESTER,,
v2.6.22,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_BORROWED_MM,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,,,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,
v2.6.23,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_BORROWED_MM,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,,,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,
v2.6.24,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_BORROWED_MM,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,,,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,
v2.6.25,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_BORROWED_MM,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,,,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,
v2.6.26,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_BORROWED_MM,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,,,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,
v2.6.27,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v2.6.28,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v2.6.29,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v2.6.30,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v2.6.31,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,,PF_FORKNOEXEC,,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZING,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_SWAPOFF,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v2.6.32,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZING,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_OOM_ORIGIN,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v2.6.33,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZING,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_OOM_ORIGIN,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v2.6.34,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZING,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_OOM_ORIGIN,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v2.6.35,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZING,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_OOM_ORIGIN,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v2.6.36,PF_ALIGNWARN,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_FLUSHER,PF_USED_MATH,PF_FREEZING,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_OOM_ORIGIN,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v2.6.37,PF_KSOFTIRQD,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,,PF_USED_MATH,PF_FREEZING,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_OOM_ORIGIN,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v2.6.38,PF_KSOFTIRQD,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,,PF_USED_MATH,PF_FREEZING,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_OOM_ORIGIN,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v2.6.39,,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,,PF_USED_MATH,PF_FREEZING,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_OOM_ORIGIN,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v3.0,,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,,PF_USED_MATH,PF_FREEZING,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v3.1,,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_FREEZING,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v3.2,,PF_STARTING,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_FREEZING,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_FREEZER_NOSIG
v3.3,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,
v3.4,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,
v3.5,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,
v3.6,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,
v3.7,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,
v3.8,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,
v3.9,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_THREAD_BOUND,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,
v3.10,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,
v3.11,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v3.12,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v3.13,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v3.14,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMPOLICY,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v3.15,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v3.16,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_SPREAD_PAGE,PF_SPREAD_SLAB,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v3.17,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v3.18,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v3.19,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.0,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.1,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.2,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.3,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.4,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.5,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.6,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.7,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.8,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.9,,,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.10,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.11,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_FSTRANS,PF_KSWAPD,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.12,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.13,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.14,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.15,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.16,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.17,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.18,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.19,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v4.20,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_MEMSTALL,,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v5.0,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_MEMSTALL,PF_UMH,PF_NO_SETAFFINITY,PF_MCE_EARLY,,PF_MUTEX_TESTER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v5.1,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_MEMSTALL,PF_UMH,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMALLOC_NOCMA,,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v5.2,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_MEMSTALL,PF_UMH,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMALLOC_NOCMA,,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v5.3,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_MEMSTALL,PF_UMH,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMALLOC_NOCMA,,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v5.4,,PF_IDLE,PF_EXITING,PF_EXITPIDONE,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_MEMSTALL,PF_UMH,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMALLOC_NOCMA,,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v5.5,,PF_IDLE,PF_EXITING,,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_MEMSTALL,PF_UMH,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMALLOC_NOCMA,PF_IO_WORKER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v5.6,,PF_IDLE,PF_EXITING,,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,PF_MEMSTALL,PF_UMH,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMALLOC_NOCMA,PF_IO_WORKER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v5.7,,PF_IDLE,PF_EXITING,,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LESS_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,PF_UMH,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMALLOC_NOCMA,PF_IO_WORKER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v5.8,,PF_IDLE,PF_EXITING,,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LOCAL_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,PF_UMH,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMALLOC_NOCMA,PF_IO_WORKER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v5.9,,PF_IDLE,PF_EXITING,,PF_VCPU,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LOCAL_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMALLOC_NOCMA,PF_IO_WORKER,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v5.10,PF_VCPU,PF_IDLE,PF_EXITING,,PF_IO_WORKER,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LOCAL_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMALLOC_NOCMA,,PF_FREEZER_SKIP,PF_SUSPEND_TASK
v5.11,PF_VCPU,PF_IDLE,PF_EXITING,,PF_IO_WORKER,PF_WQ_WORKER,PF_FORKNOEXEC,PF_MCE_PROCESS,PF_SUPERPRIV,PF_DUMPCORE,PF_SIGNALED,PF_MEMALLOC,PF_NPROC_EXCEEDED,PF_USED_MATH,PF_USED_ASYNC,PF_NOFREEZE,PF_FROZEN,PF_KSWAPD,PF_MEMALLOC_NOFS,PF_MEMALLOC_NOIO,PF_LOCAL_THROTTLE,PF_KTHREAD,PF_RANDOMIZE,PF_SWAPWRITE,,,PF_NO_SETAFFINITY,PF_MCE_EARLY,PF_MEMALLOC_NOCMA,,PF_FREEZER_SKIP,PF_SUSPEND_TASK

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Document that PF_KTHREAD _is_ ABI
  2021-03-31 19:23     ` Alexey Dobriyan
@ 2021-04-01 15:05       ` Stefan Metzmacher
  0 siblings, 0 replies; 7+ messages in thread
From: Stefan Metzmacher @ 2021-04-01 15:05 UTC (permalink / raw)
  To: Alexey Dobriyan, Christoph Hellwig, Jens Axboe
  Cc: Andy Lutomirski, Andrew Morton, LKML, Linux API, fw, io-uring


Am 31.03.21 um 21:23 schrieb Alexey Dobriyan:
> On Mon, Mar 22, 2021 at 07:53:10AM +0000, Christoph Hellwig wrote:
>> On Sat, Mar 20, 2021 at 10:23:12AM -0700, Andy Lutomirski wrote:
>>>> https://github.com/systemd/systemd/blob/main/src/basic/process-util.c#L354
>>>> src/basic/process-util.c:is_kernel_thread()
>>>
>>> Eww.
>>>
>>> Could we fix it differently and more permanently by modifying the proc
>>> code to display the values systemd expects?
>>
>> Yes, do_task_stat needs a mapping from kernel flags to UABI flags.  And
>> we should already discard everything we think we can from the UABI
>> now, and only add the ones back that are required to not break
>> userspace.
> 
> Sure we do. Who is going to find all the flags? I found PF_KTHREAD. :^)
> 
> More seriously,
> 
> /proc/$pid/stat was expanded to include tsk->flags in 0.99.1 (!!!)
> 
> Developers kept adding and shuffling flags probably not even realising
> what's going on. The last incident happened at 5.10 when PF_IO_WORKER
> was exchanged with PF_VCPU for smaller codegen.

With the create_io_thread(), the impact of PF_IO_WORKER becomes more broadly
visible and userspace might start to look at it in order to find the difference
between userspace and kernel io threads. (I also think it should actually be renamed to
PF_IO_THREAD...)

Jens, what do you think about that?

metze

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-04-01 18:06 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-20 16:30 [PATCH] Document that PF_KTHREAD _is_ ABI Alexey Dobriyan
2021-03-20 17:23 ` Andy Lutomirski
2021-03-20 17:39   ` Alexey Dobriyan
2021-03-20 19:20     ` Florian Weimer
2021-03-22  7:53   ` Christoph Hellwig
2021-03-31 19:23     ` Alexey Dobriyan
2021-04-01 15:05       ` Stefan Metzmacher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).