Re: [RFC][PATCH 1/6] Storing ipcs into IDRs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Andi Kleen wrote:
[email protected] writes:


This patch introduces ipcs storage into IDRs. The main changes are:
 . This ipc_ids structure is changed: the entries array is changed into a
   root idr structure.
 . The grow_ary() routine is removed: it is not needed anymore when adding
   an ipc structure, since we are now using the IDR facility.
 . The ipc_rmid() routine interface is changed:
      . there is no need for this routine to return the pointer passed in as
        argument: it is now declared as a void
      . since the id is now part of the kern_ipc_perm structure, no need to
        have it as an argument to the routine



Thanks for doing this work. It was long overdue.

Do you have any data how this changes memory consumption with many objects?
-Andi


Andi,

Here are the results I got when creating 32768 (IPCMNI) msg queues with the patched kernel:

http://akt.sourceforge.net/results/2.6.23-rc2-idr/msg11/output.new

It's the output from msg11.c. This script does what follows:
    . gets sysinfo(2) results
    . captures /proc/meminfo
    . captures /proc/slabinfo
    . creates XX msg queues (XX given as parameter)
    . captures /proc/meminfo
    . captures /proc/slabinfo
    . gets sysinfo results
    . outputs all the results
    . removes the created ipcs

sysinfo results: a BEFORE and an AFTER column are output where necessary.
BEFORE means "before creating the objects"
AFTER means "after the objects have been created"

meminfo results: the BEFORE and AFTER files are pasted

slabinfo results: only the differences between the BEFORE and the AFTER are output.


Here are also the sizes for the ref and the patched kernel:

size linux-2.6.23-rc2.ref/vmlinux linux-2.6.23-rc2/vmlinux
   text    data     bss     dec     hex filename
4432697  496450  602112 5531259  54667b linux-2.6.23-rc2.ref/vmlinux
4430747  496450  602112 5529309  545edd linux-2.6.23-rc2/vmlinux



The http://akt.sourceforge.net/results/2.6.23-rc2-idr/msg11 directory is structured as follows:

msg11.c: the script I used to generate the results
output.ref: the output from msg11 with the ref kernel
output.new: the output from msg11 with the patched kernel
size: the output from the size command
ref: directory with the results files for the ref kernel
new: directory with the results files for the patched kernel
In these 2 directories:
*_mem_*before: /proc/meminfo before creating the msg queues
*_mem_*after: /proc/meminfo after creating the msg queues
*_slab_*before: /proc/slabinfo before creating the msg queues
*_slab_*after: /proc/slabinfo after creating the msg queues

Regards,
Nadia

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux