mm: introduce CONFIG_MEMCG_KMEM as combination of CONFIG_MEMCG && !CONFIG_SLOB
[linux-block.git] / include / linux / sched.h
index 43731fe51c972ad6c3d6cb277ac940ec5a939023..789923fbee3a8a8dc849c92a08ce37893e175b31 100644 (file)
@@ -167,8 +167,8 @@ struct task_group;
  *   need_sleep = false;
  *   wake_up_state(p, TASK_UNINTERRUPTIBLE);
  *
- * Where wake_up_state() (and all other wakeup primitives) imply enough
- * barriers to order the store of the variable against wakeup.
+ * where wake_up_state() executes a full memory barrier before accessing the
+ * task state.
  *
  * Wakeup will do: if (@state & p->state) p->state = TASK_RUNNING, that is,
  * once it observes the TASK_UNINTERRUPTIBLE store the waking CPU can issue a
@@ -722,8 +722,8 @@ struct task_struct {
        unsigned                        restore_sigmask:1;
 #endif
 #ifdef CONFIG_MEMCG
-       unsigned                        memcg_may_oom:1;
-#ifndef CONFIG_SLOB
+       unsigned                        in_user_fault:1;
+#ifdef CONFIG_MEMCG_KMEM
        unsigned                        memcg_kmem_skip_account:1;
 #endif
 #endif
@@ -734,6 +734,10 @@ struct task_struct {
        /* disallow userland-initiated cgroup migration */
        unsigned                        no_cgroup_migration:1;
 #endif
+#ifdef CONFIG_BLK_CGROUP
+       /* to be used once the psi infrastructure lands upstream. */
+       unsigned                        use_memdelay:1;
+#endif
 
        unsigned long                   atomic_flags; /* Flags requiring atomic access. */
 
@@ -1017,7 +1021,6 @@ struct task_struct {
        u64                             last_sum_exec_runtime;
        struct callback_head            numa_work;
 
-       struct list_head                numa_entry;
        struct numa_group               *numa_group;
 
        /*
@@ -1149,6 +1152,13 @@ struct task_struct {
 
        /* Number of pages to reclaim on returning to userland: */
        unsigned int                    memcg_nr_pages_over_high;
+
+       /* Used by memcontrol for targeted memcg charge: */
+       struct mem_cgroup               *active_memcg;
+#endif
+
+#ifdef CONFIG_BLK_CGROUP
+       struct request_queue            *throttle_queue;
 #endif
 
 #ifdef CONFIG_UPROBES