mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [RFC][PATCH 0/6] an IPC implementation based on Linux radix trees
@ 2007-06-07 16:53 Nadia.Derbey
  2007-06-07 16:53 ` [RFC][PATCH 1/6] Storing ipcs into " Nadia.Derbey
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Nadia.Derbey @ 2007-06-07 16:53 UTC (permalink / raw)
  To: linux-kernel; +Cc: ebiederm, ak

--

A couple of months ago, I dropped a series of patches that introduced the
AKT framework (Automatic Kernel Tunables).

(see thread http://lkml.org/lkml/2007/1/16/16)

When reading the patches people complained that I was trying to treat a
symptom, not the problem itself, and that it'd be better try to rewrite
things where necessary (better data structures / implementations).

(see http://lkml.org/lkml/2007/2/7/248)

I'm trying to achieve this for the IPC case, with this new series of patches:
a new ipc implementation based on the Linux radix tree API is proposed.

In the current ipc implementation, the ipc structures pointers are stored
in an array that is resized each time the corresponding tunable is changed
(resized means that a new array is allocated with the new size, the old one
is copied into that new array and the old array is de-allocated).

With this new implementation, there is no need for the array resizing since
the size change becomes "natural".

I'll try to come up in the near future, with ipc max values that scale better
to memory size: that way, the ipc tunables msgmni, semmni and shmmni should
become actual DoS limits.

These patches should be applied to 2.6.21, in the following order:

[PATCH 1/6]: ipc_radix_tree.patch
[PATCH 2/6]: ipc_rmid.patch
[PATCH 3/6]: ipc_gang_lookups.patch
[PATCH 4/6]: ipc_lock_and_check.patch
[PATCH 5/6]: ipcid_to_idx.patch
[PATCH 6/6]: ipc_findkey.patch

Regards,
Nadia

^ permalink raw reply	[flat|nested] 11+ messages in thread
* [RFC][PATCH 0/6] An IPC implementation base on Linux IDRs
@ 2007-08-31 11:24 Nadia.Derbey
  2007-08-31 11:24 ` [RFC][PATCH 5/6] Introducing the ipcid_to_idx macro Nadia.Derbey
  0 siblings, 1 reply; 11+ messages in thread
From: Nadia.Derbey @ 2007-08-31 11:24 UTC (permalink / raw)
  To: linux-kernel; +Cc: matthltc

A couple of months ago, I dropped a series of patches that introduced the
AKT framework (Automatic Kernel Tunables).

(see thread http://lkml.org/lkml/2007/1/16/16)

When reading the patches, people complained that I was trying to treat a
symptom, not the problem itself, and that it'd be better try to rewrite
things where necessary (better data structures / implementations).

(see http://lkml.org/lkml/2007/2/7/248)

I'm trying to achieve this for the IPC case, with this new series of patches:
after proposing a radix tree based implementation at the beginning of July,
I'm now proposing a new ipc implementation based on the Linux idr API.

In the current ipc implementation, the ipc structures pointers are stored
in an array that is resized each time the corresponding tunable is changed
(resized means that a new array is allocated with the new size, the old one
is copied into that new array and the old array is de-allocated).

With this new implementation, there is no need for the array resizing since
the size change becomes "natural".

With this completely dynamic implementation, it becomes possible to set the
kernel default maximum values higher in order to prevent early DoS feedback,
on configurations with a high amount of memory. Even if the maximum values are
huge, no memory space will be wasted, since the allocations are done "on
demand". This is not the case with the existing array based implementation:
an array of the maximum number of entries is allocated only if a single ipc
object is actually created.

These patches should be applied to 2.6.23-rc2, in the following order:

[PATCH 1/6]: ipc_idr.patch
[PATCH 2/6]: ipc_syscalls.patch
[PATCH 3/6]: ipc_get.patch
[PATCH 4/6]: ipc_lock_and_check.patch
[PATCH 5/6]: ipcid_to_idx.patch
[PATCH 6/6]: ipc_buildid.patch

--

Regards,
Nadia

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2007-08-31 11:23 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-06-07 16:53 [RFC][PATCH 0/6] an IPC implementation based on Linux radix trees Nadia.Derbey
2007-06-07 16:53 ` [RFC][PATCH 1/6] Storing ipcs into " Nadia.Derbey
2007-06-07 19:37   ` Ingo Oeser
2007-06-08 10:12     ` Nadia Derbey
2007-06-08 15:40       ` Ingo Oeser
2007-06-07 16:53 ` [RFC][PATCH 2/6] Changing ipc_rmid() interface Nadia.Derbey
2007-06-07 16:53 ` [RFC][PATCH 3/6] Changing the loops on a single ipcid into radix_tree_gang_lookup() calls Nadia.Derbey
2007-06-07 16:53 ` [RFC][PATCH 4/6] Integrating ipc_checkid() into ipc_lock() Nadia.Derbey
2007-06-07 16:53 ` [RFC][PATCH 5/6] Introducing the ipcid_to_idx macro Nadia.Derbey
2007-06-07 16:53 ` [RFC][PATCH 6/6] Introducing msg_findkey() sem_findkey() and shm_findkey() Nadia.Derbey
2007-08-31 11:24 [RFC][PATCH 0/6] An IPC implementation base on Linux IDRs Nadia.Derbey
2007-08-31 11:24 ` [RFC][PATCH 5/6] Introducing the ipcid_to_idx macro Nadia.Derbey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®