No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Davidlohr Bueso 15df03c879 sysvipc: make get_maxid O(1) again
For a custom microbenchmark on a 3.30GHz Xeon SandyBridge, which calls
IPC_STAT over and over, it was calculated that, on avg the cost of
ipc_get_maxid() for increasing amounts of keys was:

 10 keys: ~900 cycles
 100 keys: ~15000 cycles
 1000 keys: ~150000 cycles
 10000 keys: ~2100000 cycles

This is unsurprising as maxid is currently O(n).

By having the max_id available in O(1) we save all those cycles for each
semctl(_STAT) command, the idr_find can be expensive -- which some real
(customer) workloads actually poll on.

Note that this used to be the case, until commit 7ca7e564e0 ("ipc:
store ipcs into IDRs").  The cost is the extra idr_find when doing
RMIDs, but we simply go backwards, and should not take too many
iterations to find the new value.

[akpm@linux-foundation.org: coding-style fixes]
Link: http://lkml.kernel.org/r/20170831172049.14576-5-dave@stgolabs.net
Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
Cc: Manfred Spraul <manfred@colorfullife.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-11-17 16:10:04 -08:00
arch pid: remove pidhash 2017-11-17 16:10:04 -08:00
block
certs
crypto
Documentation kcov: update documentation 2017-11-17 16:10:04 -08:00
drivers drivers/watchdog: make use of devm_register_reboot_notifier() 2017-11-17 16:10:04 -08:00
firmware
fs pid: replace pid bitmap implementation with IDR API 2017-11-17 16:10:03 -08:00
include sysvipc: make get_maxid O(1) again 2017-11-17 16:10:04 -08:00
init initramfs: use time64_t timestamps 2017-11-17 16:10:04 -08:00
ipc sysvipc: make get_maxid O(1) again 2017-11-17 16:10:04 -08:00
kernel kernel/reboot.c: add devm_register_reboot_notifier() 2017-11-17 16:10:04 -08:00
lib Makefile: support flag -fsanitizer-coverage=trace-cmp 2017-11-17 16:10:04 -08:00
mm mm, compaction: remove unneeded pageblock_skip_persistent() checks 2017-11-17 16:10:00 -08:00
net Merge branch 'akpm' (patches from Andrew) 2017-11-15 19:42:40 -08:00
samples media updates for v4.15-rc1 2017-11-15 20:30:12 -08:00
scripts Makefile: support flag -fsanitizer-coverage=trace-cmp 2017-11-17 16:10:04 -08:00
security
sound
tools tools/lib/traceevent/parse-filter.c: clean up clang build warning 2017-11-17 16:10:02 -08:00
usr
virt First batch of KVM changes for 4.15 2017-11-16 13:00:24 -08:00
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap Add Jason Gunthorpe as co-maintainer of the RDMA stack 2017-11-17 09:36:18 -08:00
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS libnvdimm for 4.15 2017-11-17 09:51:57 -08:00
Makefile Makefile: support flag -fsanitizer-coverage=trace-cmp 2017-11-17 16:10:04 -08:00
README

Linux kernel
============

This file was moved to Documentation/admin-guide/README.rst

Please notice that there are several guides for kernel developers and users.
These guides can be rendered in a number of formats, like HTML and PDF.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.