All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ole Kliemann <ole@plastictree.net>
To: selinux@tycho.nsa.gov
Subject: Re: SELinux performance depending on type count
Date: Fri, 10 Aug 2012 14:11:13 +0200	[thread overview]
Message-ID: <20120810121113.GE2296@telvanni> (raw)
In-Reply-To: <20120807130244.GE2085@telvanni>


[-- Attachment #1.1: Type: text/plain, Size: 2255 bytes --]

On Tue, Aug 07, 2012 at 03:02:44PM +0200, Ole Kliemann wrote:
> I read on some locations (Fedora FAQ...) that there is an overall 
> performance impact of about 7% when running with SELinux.
> 
> Does anyone know if this impact is dependent upon the number of 
> types the policy has? I would assume no: A lot of types only take 
> up memory and caching should prevent any impact on the runtime 
> performance.
> 
> But if there was a performance problem with a lot of types, at 
> what number n would it start to hit hard? And how does it 
> increase (linear, quadratic...)?
> 
> And would it be better performance-wise to run a MCS-policy with 
> say categories c0.cn than to have types c0_t, ... cn_t?
> 
> Ole

I did some runtime test now. I have about 2000 types, 1000 of 
them (named xIcJ_t, for 0 <= I <= 9, 0 <= J <= 99) each with his 
own role (xIcJ_r) associated to a user_u. Then there is a user_r 
and user_t for login. Additionally there is 
system_u:system_r:root_t with full access to everything.

I run the attached script. It creates directories for each of the 
1000 types, puts something in it, does a find/grep etc.

As system_u:system_r:root_t the script measures an average of 
about 6sec walltime over 5 runs. (With very little variance.)

When I change context to user_u:user_r:user_t even things like 
'ls' on home dir or 'id' lag consideribly the first time 
executed. Just being in this context makes things slow. The 
script measures an average of about 15sec walltime over 5 runs. 

That's 2.5 times as much. Who thinks 7% is ridiculously high now? 
;-)

While it's running the whole system sometimes lags even for just 
writing on the terminal. top shows spikes of 50%+ CPU on kworker 
threads.


Good side is: It's a clear result and kind of settles the 
question. If you want a lot of different types for one user, go 
for categories.


But I don't understand this result. Why isn't it slow when root 
runs the script? He does the same relabeling to all those types. 
It's not like user_u:user_r:user_t would be running in different 
type concurrently. Just the fact that user_u is associated with 
all those types seems to make it slow to run in any context 
user_u:*

[-- Attachment #1.2: x.sh --]
[-- Type: application/x-sh, Size: 844 bytes --]

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

  parent reply	other threads:[~2012-08-10 12:11 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-07 13:02 SELinux performance depending on type count Ole Kliemann
2012-08-07 14:12 ` David Quigley
2012-08-07 17:07 ` William Roberts
2012-08-07 17:36   ` Daniel J Walsh
2012-08-08 20:44 ` Ole Kliemann
2012-08-09 10:45   ` Adam Tkac
2012-08-09 11:56     ` Ole Kliemann
2012-08-10 12:11 ` Ole Kliemann [this message]
2012-08-10 13:00   ` Stephen Smalley
2012-08-10 14:36     ` Ole Kliemann
2012-08-10 15:05       ` Stephen Smalley
2012-08-10 15:43         ` Ole Kliemann
2012-08-10 15:44         ` Ole Kliemann
2012-08-10 16:08           ` Stephen Smalley
2012-08-10 16:18             ` Stephen Smalley
2012-08-10 17:00               ` Ole Kliemann
2012-08-10 18:08                 ` Stephen Smalley
2012-08-10 18:46                   ` Ole Kliemann
2012-08-10 18:55                     ` Stephen Smalley
2012-08-10 19:11                       ` Ole Kliemann
2012-08-10 19:19                         ` Stephen Smalley
2012-08-10 19:26                           ` Ole Kliemann
2012-08-10 19:50                             ` Stephen Smalley
2012-08-10 21:38 ` Ole Kliemann
2012-08-13 12:35   ` Stephen Smalley
2012-08-27 15:28     ` Ole Kliemann
2012-08-27 16:24       ` Stephen Smalley

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=20120810121113.GE2296@telvanni \
    --to=ole@plastictree.net \
    --cc=selinux@tycho.nsa.gov \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.