pidns: make pid->level and pid_ns->level unsigned
These values represent the nesting level of a namespace and pids living in it, and it's always non-negative. Turning this from int to unsigned int saves some space in pid.c (11 bytes on x86 and 64 on ia64) by letting the compiler optimize the pid_nr_ns a bit. E.g. on ia64 this removes the sign extension calls, which compiler adds to optimize access to pid->nubers[ns->level]. Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
ab883af53e
Коммит
caafa43243
|
@ -60,7 +60,7 @@ struct pid
|
|||
/* lists of tasks that use this pid */
|
||||
struct hlist_head tasks[PIDTYPE_MAX];
|
||||
struct rcu_head rcu;
|
||||
int level;
|
||||
unsigned int level;
|
||||
struct upid numbers[1];
|
||||
};
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ struct pid_namespace {
|
|||
int last_pid;
|
||||
struct task_struct *child_reaper;
|
||||
struct kmem_cache *pid_cachep;
|
||||
int level;
|
||||
unsigned int level;
|
||||
struct pid_namespace *parent;
|
||||
#ifdef CONFIG_PROC_FS
|
||||
struct vfsmount *proc_mnt;
|
||||
|
|
|
@ -66,7 +66,7 @@ err_alloc:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static struct pid_namespace *create_pid_namespace(int level)
|
||||
static struct pid_namespace *create_pid_namespace(unsigned int level)
|
||||
{
|
||||
struct pid_namespace *ns;
|
||||
int i;
|
||||
|
|
Загрузка…
Ссылка в новой задаче