mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Gargi Sharma <gs051095@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: riel@surriel.com, julia.lawall@lip6.fr,
	akpm@linux-foundation.org, mingo@kernel.org,
	pasha.tatashin@oracle.com, ktkhai@virtuozzo.com, oleg@redhat.com,
	ebiederm@xmission.com, hch@infradead.org,
	Gargi Sharma <gs051095@gmail.com>
Subject: [PATCH v3 0/2] Replace PID bitmap allocation with IDR API
Date: Fri,  6 Oct 2017 07:53:21 -0400	[thread overview]
Message-ID: <1507290803-20708-1-git-send-email-gs051095@gmail.com> (raw)

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.479s	0m2.319s
user	0m0.070s	0m0.060s
sys	0m0.289s	0m0.516s

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

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

---
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/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                              | 245 ++++++------------------------
 kernel/pid_namespace.c                    |  48 ++----
 9 files changed, 68 insertions(+), 255 deletions(-)

-- 
2.7.4

             reply	other threads:[~2017-10-06 11:53 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-06 11:53 Gargi Sharma [this message]
2017-10-06 11:53 ` [PATCH v3 1/2] pid: Replace pid bitmap implementation " Gargi Sharma
2017-10-06 19:08   ` Rik van Riel
2017-10-06 11:53 ` [PATCH v3 2/2] pid: Remove pidhash Gargi Sharma

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1507290803-20708-1-git-send-email-gs051095@gmail.com \
    --to=gs051095@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=ebiederm@xmission.com \
    --cc=hch@infradead.org \
    --cc=julia.lawall@lip6.fr \
    --cc=ktkhai@virtuozzo.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=oleg@redhat.com \
    --cc=pasha.tatashin@oracle.com \
    --cc=riel@surriel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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®