lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1507760379-21662-1-git-send-email-gs051095@gmail.com>
Date:   Wed, 11 Oct 2017 18:19:37 -0400
From:   Gargi Sharma <gs051095@...il.com>
To:     linux-kernel@...r.kernel.org
Cc:     riel@...riel.com, julia.lawall@...6.fr, akpm@...ux-foundation.org,
        mingo@...nel.org, pasha.tatashin@...cle.com, ktkhai@...tuozzo.com,
        oleg@...hat.com, ebiederm@...ssion.com, hch@...radead.org,
        lkp@...el.com, tony.luck@...el.com,
        Gargi Sharma <gs051095@...il.com>
Subject: [PATCH v6 0/2] Replacing PID bitmap implementation with IDR API

This patch series replaces kernel bitmap implementation of PID allocation
with IDR API. These patches are written to simplify the kernel by replacing custom code with calls to generic code.

The following are the stats for pid and pid_namespace object files
before and after the replacement. There is a noteworthy change between
the IDR and bitmap implementation.

Before
text       data        bss        dec        hex    filename
   8447       3894         64      12405       3075    kernel/pid.o
After
text       data        bss        dec        hex    filename
   3397        304          0       3701        e75    kernel/pid.o

Before
 text       data        bss        dec        hex    filename
   5692       1842        192       7726       1e2e    kernel/pid_namespace.o
After
text       data        bss        dec        hex    filename
   2854        216         16       3086        c0e    kernel/pid_namespace.o

The following are the stats for ps, pstree and calling readdir on /proc
for 10,000 processes.

ps:
        With IDR API    With bitmap
real    0m1.962s        0m2.319s
user    0m0.052s        0m0.060s
sys     0m0.392s        0m0.516s

pstree:
        With IDR API    With bitmap
real    0m1.062s        0m1.794s
user    0m0.536s        0m0.612s
sys     0m0.184s        0m0.264s

proc:
        With IDR API    With bitmap
real    0m0.073s        0m0.074s
user    0m0.004s        0m0.004s
sys     0m0.012s        0m0.016s

---
Changes in v6:
	- Fix comment style inside alloc_pid.
	- Move rcu lock before tasklist lock.
	- Fix build error for upid.
Changes in v5:
        - Add rcu lock while iterating over idr tree.
        - Fix checkpatch issues.
Changes in v4:
        - Make comments for alloc_pid clearer.
Changes in v3:
        - Replace idr_next with idr_get_cursor().
        - Correct pid_alloc so that find_pid_ns can't
          find not completely allocated pids.
Changes in v2:
        - Removed redundant  IDR function that was introduced
          in the previous patchset.
        - Renamed PIDNS_HASH_ADDING
        - Used idr_for_each_entry_continue()
        - Used idr_find() to lookup pids

Gargi Sharma (2):
  pid: Replace pid bitmap implementation with IDR API
  pid: Remove pidhash

 arch/ia64/kernel/asm-offsets.c            |   4 +-
 arch/powerpc/platforms/cell/spufs/sched.c |   2 +-
 fs/proc/loadavg.c                         |   2 +-
 include/linux/init_task.h                 |   1 -
 include/linux/pid.h                       |   2 -
 include/linux/pid_namespace.h             |  18 +--
 init/main.c                               |   3 +-
 kernel/fork.c                             |   2 +-
 kernel/pid.c                              | 247 ++++++------------------------
 kernel/pid_namespace.c                    |  50 +++---
 10 files changed, 74 insertions(+), 257 deletions(-)

-- 
2.7.4

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ