mm, oom: change type of oom_score_adj to short
The maximum oom_score_adj is 1000 and the minimum oom_score_adj is -1000, so this range can be represented by the signed short type with no functional change. The extra space this frees up in struct signal_struct will be used for per-thread oom kill flags in the next patch. Signed-off-by: David Rientjes <rientjes@google.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Reviewed-by: Michal Hocko <mhocko@suse.cz> Cc: Anton Vorontsov <anton.vorontsov@linaro.org> Cc: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
fa26437517
commit
a9c58b907d
2
mm/ksm.c
2
mm/ksm.c
@@ -1919,7 +1919,7 @@ static ssize_t run_store(struct kobject *kobj, struct kobj_attribute *attr,
|
||||
if (ksm_run != flags) {
|
||||
ksm_run = flags;
|
||||
if (flags & KSM_RUN_UNMERGE) {
|
||||
int oom_score_adj;
|
||||
short oom_score_adj;
|
||||
|
||||
oom_score_adj = test_set_oom_score_adj(OOM_SCORE_ADJ_MAX);
|
||||
err = unmerge_and_remove_all_rmap_items();
|
||||
|
@@ -53,7 +53,7 @@ static DEFINE_SPINLOCK(zone_scan_lock);
|
||||
* @old_val. Usually used to reinstate a previous value to prevent racing with
|
||||
* userspacing tuning the value in the interim.
|
||||
*/
|
||||
void compare_swap_oom_score_adj(int old_val, int new_val)
|
||||
void compare_swap_oom_score_adj(short old_val, short new_val)
|
||||
{
|
||||
struct sighand_struct *sighand = current->sighand;
|
||||
|
||||
@@ -72,7 +72,7 @@ void compare_swap_oom_score_adj(int old_val, int new_val)
|
||||
* synchronization and returns the old value. Usually used to temporarily
|
||||
* set a value, save the old value in the caller, and then reinstate it later.
|
||||
*/
|
||||
int test_set_oom_score_adj(int new_val)
|
||||
short test_set_oom_score_adj(short new_val)
|
||||
{
|
||||
struct sighand_struct *sighand = current->sighand;
|
||||
int old_val;
|
||||
@@ -193,7 +193,7 @@ unsigned long oom_badness(struct task_struct *p, struct mem_cgroup *memcg,
|
||||
if (!p)
|
||||
return 0;
|
||||
|
||||
adj = p->signal->oom_score_adj;
|
||||
adj = (long)p->signal->oom_score_adj;
|
||||
if (adj == OOM_SCORE_ADJ_MIN) {
|
||||
task_unlock(p);
|
||||
return 0;
|
||||
@@ -399,7 +399,7 @@ static void dump_tasks(const struct mem_cgroup *memcg, const nodemask_t *nodemas
|
||||
continue;
|
||||
}
|
||||
|
||||
pr_info("[%5d] %5d %5d %8lu %8lu %7lu %8lu %5d %s\n",
|
||||
pr_info("[%5d] %5d %5d %8lu %8lu %7lu %8lu %5hd %s\n",
|
||||
task->pid, from_kuid(&init_user_ns, task_uid(task)),
|
||||
task->tgid, task->mm->total_vm, get_mm_rss(task->mm),
|
||||
task->mm->nr_ptes,
|
||||
@@ -415,7 +415,7 @@ static void dump_header(struct task_struct *p, gfp_t gfp_mask, int order,
|
||||
{
|
||||
task_lock(current);
|
||||
pr_warning("%s invoked oom-killer: gfp_mask=0x%x, order=%d, "
|
||||
"oom_score_adj=%d\n",
|
||||
"oom_score_adj=%hd\n",
|
||||
current->comm, gfp_mask, order,
|
||||
current->signal->oom_score_adj);
|
||||
cpuset_print_task_mems_allowed(current);
|
||||
|
@@ -1498,7 +1498,7 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
|
||||
struct address_space *mapping;
|
||||
struct inode *inode;
|
||||
struct filename *pathname;
|
||||
int oom_score_adj;
|
||||
short oom_score_adj;
|
||||
int i, type, prev;
|
||||
int err;
|
||||
|
||||
|
Reference in New Issue
Block a user