提交 aa5a6662 编写于 作者: S Sukadev Bhattiprolu 提交者: Linus Torvalds

[PATCH] Move pidmap to pspace.h

Move struct pidmap and PIDMAP_ENTRIES to a new file, include/linux/pspace.h
where it will be used in subsequent patches to define pid spaces.

Its a subset of Eric Biederman's patch http://lkml.org/lkml/2006/2/6/285

[akpm@osdl.org: cleanups]
Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
Signed-off-by: NSukadev Bhattiprolu <sukadev@us.ibm.com>
Cc: Dave Hansen <haveblue@us.ibm.com>
Cc: Serge Hallyn <serue@us.ibm.com>
Cc: Cedric Le Goater <clg@fr.ibm.com>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 d387cae0
#ifndef _LINUX_PSPACE_H
#define _LINUX_PSPACE_H
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/threads.h>
#include <linux/pid.h>
struct pidmap {
atomic_t nr_free;
void *page;
};
#define PIDMAP_ENTRIES ((PID_MAX_LIMIT + 8*PAGE_SIZE - 1)/PAGE_SIZE/8)
#endif /* _LINUX_PSPACE_H */
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/bootmem.h> #include <linux/bootmem.h>
#include <linux/hash.h> #include <linux/hash.h>
#include <linux/pspace.h>
#define pid_hashfn(nr) hash_long((unsigned long)nr, pidhash_shift) #define pid_hashfn(nr) hash_long((unsigned long)nr, pidhash_shift)
static struct hlist_head *pid_hash; static struct hlist_head *pid_hash;
...@@ -40,7 +41,6 @@ int last_pid; ...@@ -40,7 +41,6 @@ int last_pid;
int pid_max_min = RESERVED_PIDS + 1; int pid_max_min = RESERVED_PIDS + 1;
int pid_max_max = PID_MAX_LIMIT; int pid_max_max = PID_MAX_LIMIT;
#define PIDMAP_ENTRIES ((PID_MAX_LIMIT + 8*PAGE_SIZE - 1)/PAGE_SIZE/8)
#define BITS_PER_PAGE (PAGE_SIZE*8) #define BITS_PER_PAGE (PAGE_SIZE*8)
#define BITS_PER_PAGE_MASK (BITS_PER_PAGE-1) #define BITS_PER_PAGE_MASK (BITS_PER_PAGE-1)
#define mk_pid(map, off) (((map) - pidmap_array)*BITS_PER_PAGE + (off)) #define mk_pid(map, off) (((map) - pidmap_array)*BITS_PER_PAGE + (off))
...@@ -53,11 +53,6 @@ int pid_max_max = PID_MAX_LIMIT; ...@@ -53,11 +53,6 @@ int pid_max_max = PID_MAX_LIMIT;
* value does not cause lots of bitmaps to be allocated, but * value does not cause lots of bitmaps to be allocated, but
* the scheme scales to up to 4 million PIDs, runtime. * the scheme scales to up to 4 million PIDs, runtime.
*/ */
struct pidmap {
atomic_t nr_free;
void *page;
};
static struct pidmap pidmap_array[PIDMAP_ENTRIES] = static struct pidmap pidmap_array[PIDMAP_ENTRIES] =
{ [ 0 ... PIDMAP_ENTRIES-1 ] = { ATOMIC_INIT(BITS_PER_PAGE), NULL } }; { [ 0 ... PIDMAP_ENTRIES-1 ] = { ATOMIC_INIT(BITS_PER_PAGE), NULL } };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册