diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/ipc_namespace.h | 20 | ||||
-rw-r--r-- | include/uapi/linux/msg.h | 28 |
2 files changed, 20 insertions, 28 deletions
diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h index 35e7eca4e33b..e365d5ec69cb 100644 --- a/include/linux/ipc_namespace.h +++ b/include/linux/ipc_namespace.h | |||
@@ -7,15 +7,6 @@ | |||
7 | #include <linux/notifier.h> | 7 | #include <linux/notifier.h> |
8 | #include <linux/nsproxy.h> | 8 | #include <linux/nsproxy.h> |
9 | 9 | ||
10 | /* | ||
11 | * ipc namespace events | ||
12 | */ | ||
13 | #define IPCNS_MEMCHANGED 0x00000001 /* Notify lowmem size changed */ | ||
14 | #define IPCNS_CREATED 0x00000002 /* Notify new ipc namespace created */ | ||
15 | #define IPCNS_REMOVED 0x00000003 /* Notify ipc namespace removed */ | ||
16 | |||
17 | #define IPCNS_CALLBACK_PRI 0 | ||
18 | |||
19 | struct user_namespace; | 10 | struct user_namespace; |
20 | 11 | ||
21 | struct ipc_ids { | 12 | struct ipc_ids { |
@@ -38,7 +29,6 @@ struct ipc_namespace { | |||
38 | unsigned int msg_ctlmni; | 29 | unsigned int msg_ctlmni; |
39 | atomic_t msg_bytes; | 30 | atomic_t msg_bytes; |
40 | atomic_t msg_hdrs; | 31 | atomic_t msg_hdrs; |
41 | int auto_msgmni; | ||
42 | 32 | ||
43 | size_t shm_ctlmax; | 33 | size_t shm_ctlmax; |
44 | size_t shm_ctlall; | 34 | size_t shm_ctlall; |
@@ -77,18 +67,8 @@ extern atomic_t nr_ipc_ns; | |||
77 | extern spinlock_t mq_lock; | 67 | extern spinlock_t mq_lock; |
78 | 68 | ||
79 | #ifdef CONFIG_SYSVIPC | 69 | #ifdef CONFIG_SYSVIPC |
80 | extern int register_ipcns_notifier(struct ipc_namespace *); | ||
81 | extern int cond_register_ipcns_notifier(struct ipc_namespace *); | ||
82 | extern void unregister_ipcns_notifier(struct ipc_namespace *); | ||
83 | extern int ipcns_notify(unsigned long); | ||
84 | extern void shm_destroy_orphaned(struct ipc_namespace *ns); | 70 | extern void shm_destroy_orphaned(struct ipc_namespace *ns); |
85 | #else /* CONFIG_SYSVIPC */ | 71 | #else /* CONFIG_SYSVIPC */ |
86 | static inline int register_ipcns_notifier(struct ipc_namespace *ns) | ||
87 | { return 0; } | ||
88 | static inline int cond_register_ipcns_notifier(struct ipc_namespace *ns) | ||
89 | { return 0; } | ||
90 | static inline void unregister_ipcns_notifier(struct ipc_namespace *ns) { } | ||
91 | static inline int ipcns_notify(unsigned long l) { return 0; } | ||
92 | static inline void shm_destroy_orphaned(struct ipc_namespace *ns) {} | 72 | static inline void shm_destroy_orphaned(struct ipc_namespace *ns) {} |
93 | #endif /* CONFIG_SYSVIPC */ | 73 | #endif /* CONFIG_SYSVIPC */ |
94 | 74 | ||
diff --git a/include/uapi/linux/msg.h b/include/uapi/linux/msg.h index a70375526578..f51c8001dbe5 100644 --- a/include/uapi/linux/msg.h +++ b/include/uapi/linux/msg.h | |||
@@ -51,16 +51,28 @@ struct msginfo { | |||
51 | }; | 51 | }; |
52 | 52 | ||
53 | /* | 53 | /* |
54 | * Scaling factor to compute msgmni: | 54 | * MSGMNI, MSGMAX and MSGMNB are default values which can be |
55 | * the memory dedicated to msg queues (msgmni * msgmnb) should occupy | 55 | * modified by sysctl. |
56 | * at most 1/MSG_MEM_SCALE of the lowmem (see the formula in ipc/msg.c): | 56 | * |
57 | * up to 8MB : msgmni = 16 (MSGMNI) | 57 | * MSGMNI is the upper limit for the number of messages queues per |
58 | * 4 GB : msgmni = 8K | 58 | * namespace. |
59 | * more than 16 GB : msgmni = 32K (IPCMNI) | 59 | * It has been chosen to be as large possible without facilitating |
60 | * scenarios where userspace causes overflows when adjusting the limits via | ||
61 | * operations of the form retrieve current limit; add X; update limit". | ||
62 | * | ||
63 | * MSGMNB is the default size of a new message queue. Non-root tasks can | ||
64 | * decrease the size with msgctl(IPC_SET), root tasks | ||
65 | * (actually: CAP_SYS_RESOURCE) can both increase and decrease the queue | ||
66 | * size. The optimal value is application dependent. | ||
67 | * 16384 is used because it was always used (since 0.99.10) | ||
68 | * | ||
69 | * MAXMAX is the maximum size of an individual message, it's a global | ||
70 | * (per-namespace) limit that applies for all message queues. | ||
71 | * It's set to 1/2 of MSGMNB, to ensure that at least two messages fit into | ||
72 | * the queue. This is also an arbitrary choice (since 2.6.0). | ||
60 | */ | 73 | */ |
61 | #define MSG_MEM_SCALE 32 | ||
62 | 74 | ||
63 | #define MSGMNI 16 /* <= IPCMNI */ /* max # of msg queue identifiers */ | 75 | #define MSGMNI 32000 /* <= IPCMNI */ /* max # of msg queue identifiers */ |
64 | #define MSGMAX 8192 /* <= INT_MAX */ /* max size of message (bytes) */ | 76 | #define MSGMAX 8192 /* <= INT_MAX */ /* max size of message (bytes) */ |
65 | #define MSGMNB 16384 /* <= INT_MAX */ /* default max size of a message queue */ | 77 | #define MSGMNB 16384 /* <= INT_MAX */ /* default max size of a message queue */ |
66 | 78 | ||