diff options
author | Yuichi Nakamura <ynakam@hitachisoft.jp> | 2007-08-24 11:55:11 +0900 |
---|---|---|
committer | James Morris <jmorris@namei.org> | 2007-10-17 08:59:30 +1000 |
commit | 3232c110b56bd01c5f0fdfd16b4d695f2e05b0a9 (patch) | |
tree | b369f8dc55e9d27bbd0b8b4b6843c0736d61b005 /security/selinux/ss/policydb.c | |
parent | 821f3eff7cdb9d6c7076effabd46c96c322daed1 (diff) |
SELinux: tune avtab to reduce memory usage
This patch reduces memory usage of SELinux by tuning avtab. Number of hash
slots in avtab was 32768. Unused slots used memory when number of rules is
fewer. This patch decides number of hash slots dynamically based on number
of rules. (chain length)^2 is also printed out in avtab_hash_eval to see
standard deviation of avtab hash table.
Signed-off-by: Yuichi Nakamura<ynakam@hitachisoft.jp>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'security/selinux/ss/policydb.c')
-rw-r--r-- | security/selinux/ss/policydb.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/security/selinux/ss/policydb.c b/security/selinux/ss/policydb.c index f05f97a2bc3..5ecbad7d8b9 100644 --- a/security/selinux/ss/policydb.c +++ b/security/selinux/ss/policydb.c @@ -177,18 +177,15 @@ static int policydb_init(struct policydb *p) rc = roles_init(p); if (rc) - goto out_free_avtab; + goto out_free_symtab; rc = cond_policydb_init(p); if (rc) - goto out_free_avtab; + goto out_free_symtab; out: return rc; -out_free_avtab: - avtab_destroy(&p->te_avtab); - out_free_symtab: for (i = 0; i < SYM_NUM; i++) hashtab_destroy(p->symtab[i].table); |