Go to file
John Brooks acb2a9bede Tweak avtab hash table parameters for better performance
Using the Fedora 20 targeted policy, running check_assertions requires
an avtab with around 22 million elements. With the default limit of 4096
buckets, performance is abysmal: it takes more than an hour to populate
the hash. Profiling shows most of that time under avtab_search_node.

This patch increases the hash from 13 to 20 bits and to a maximum of
1048576 buckets. The time for check_assertions on that policy is reduced
to about 3 minutes, which is enough to re-enable those checks as part of
the build process.

A full size table will allocate 4-8 MB of memory, up from 16-32 KB. In a
cursory review, these tables are usually short-lived and only 1-3 are
allocated together. Compared to the cost of entries in this table (up to
1 GB using the same policy), this isn't a significant increase.

Signed-off-by: John Brooks <john.brooks@jolla.com>
2015-01-15 10:44:01 -05:00
checkpolicy Clear errno before call to strtol(3). 2014-12-11 08:29:34 -05:00
libselinux Bump to release candidate 7 2014-12-03 10:06:26 -05:00
libsemanage Bump to release candidate 7 2014-12-03 10:06:26 -05:00
libsepol Tweak avtab hash table parameters for better performance 2015-01-15 10:44:01 -05:00
policycoreutils Bump to release candidate 7 2014-12-03 10:06:26 -05:00
scripts scripts: update release script to not output file name twice 2014-12-03 10:06:26 -05:00
sepolgen Bump to release candidate 7 2014-12-03 10:06:26 -05:00
.gitignore global: gitignore: add a couple of more editor backup filetypes 2013-02-01 12:14:57 -05:00
Makefile libselinux: additional makefile support for rubywrap 2012-06-28 11:21:16 -04:00
README Adjust build instructions to clarify x86_64 vs x86. 2013-10-30 12:51:19 -04:00

To build and install everything under a private directory, run:
make DESTDIR=~/obj install install-pywrap

To install as the default system libraries and binaries
(overwriting any previously installed ones - dangerous!),
on x86_64, run:
make LIBDIR=/usr/lib64 SHLIBDIR=/lib64 install install-pywrap relabel
or on x86 (32-bit), run:
make install install-pywrap relabel

This may render your system unusable if the upstream SELinux userspace
lacks library functions or other dependencies relied upon by your
distribution.  If it breaks, you get to keep both pieces.