/* * Details of the page allocation that triggered the oom killer that are used to * determine what should be killed.
*/ struct oom_control { /* Used to determine cpuset */ struct zonelist *zonelist;
/* Used to determine mempolicy */
nodemask_t *nodemask;
/* Memory cgroup in which oom is invoked, or NULL for global oom */ struct mem_cgroup *memcg;
/* Used to determine cpuset and node locality requirement */ const gfp_t gfp_mask;
/* * order == -1 means the oom kill is required by sysrq, otherwise only * for display purposes.
*/ constint order;
/* Used by oom implementation, do not set */ unsignedlong totalpages; struct task_struct *chosen; long chosen_points;
/* Used to print the constraint info. */ enum oom_constraint constraint;
};
/* * Checks whether a page fault on the given mm is still reliable. * This is no longer true if the oom reaper started to reap the * address space which is reflected by MMF_UNSTABLE flag set in * the mm. At that moment any !shared mapping would lose the content * and could cause a memory corruption (zero pages instead of the * original content). * * User should call this before establishing a page table entry for * a !shared mapping and under the proper page table lock. * * Return 0 when the PF is safe VM_FAULT_SIGBUS otherwise.
*/ staticinline vm_fault_t check_stable_address_space(struct mm_struct *mm)
{ if (unlikely(test_bit(MMF_UNSTABLE, &mm->flags))) return VM_FAULT_SIGBUS; return 0;
}
long oom_badness(struct task_struct *p, unsignedlong totalpages);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.