From: Pavel Emelianov <xemul@sw.ru>
To: menage@google.com
Cc: akpm@osdl.org, pj@sgi.com, sekharan@us.ibm.com, dev@sw.ru,
serue@us.ibm.com, vatsa@in.ibm.com, ebiederm@xmission.com,
ckrm-tech@lists.sourceforge.net, linux-kernel@vger.kernel.org,
rohitseth@google.com, mbligh@google.com, winget@google.com,
containers@lists.osdl.org, devel@openvz.org
Subject: Re: [PATCH 6/7] containers (V7): BeanCounters over generic process containers
Date: Tue, 13 Feb 2007 11:52:24 +0300 [thread overview]
Message-ID: <45D17C48.9030105@sw.ru> (raw)
In-Reply-To: <20070212085104.998727000@menage.corp.google.com>
menage@google.com wrote:
> This patch implements the BeanCounter resource control abstraction
> over generic process containers. It contains the beancounter core
> code, plus the numfiles resource counter. It doesn't currently contain
> any of the memory tracking code or the code for switching beancounter
> context in interrupts.
Numfiles is not the most interesting place in beancounters.
Kmemsize accounting is much more important actually.
> Currently all the beancounters resource counters are lumped into a
> single hierarchy; ideally it would be possible for each resource
> counter to be a separate container subsystem, allowing them to be
> connected to different hierarchies.
>
> ---
> fs/file_table.c | 11 +
> include/bc/beancounter.h | 192 ++++++++++++++++++++++++
> include/bc/misc.h | 27 +++
> include/linux/fs.h | 3
> init/Kconfig | 4
> init/main.c | 3
> kernel/Makefile | 1
> kernel/bc/Kconfig | 17 ++
> kernel/bc/Makefile | 7
> kernel/bc/beancounter.c | 371 +++++++++++++++++++++++++++++++++++++++++++++++
> kernel/bc/misc.c | 56 +++++++
> 11 files changed, 691 insertions(+), 1 deletion(-)
>
[snip]
> Index: container-2.6.20/kernel/bc/misc.c
> ===================================================================
> --- /dev/null
> +++ container-2.6.20/kernel/bc/misc.c
> @@ -0,0 +1,56 @@
> +
> +#include <linux/fs.h>
> +#include <bc/beancounter.h>
> +
> +int bc_file_charge(struct file *file)
> +{
> + int sev;
> + struct beancounter *bc;
> +
> + task_lock(current);
> + bc = task_bc(current);
> + css_get_current(&bc->css);
> + task_unlock(current);
> +
> + sev = (capable(CAP_SYS_ADMIN) ? BC_LIMIT : BC_BARRIER);
> +
> + if (bc_charge(bc, BC_NUMFILES, 1, sev)) {
> + css_put(&bc->css);
> + return -EMFILE;
> + }
> +
> + file->f_bc = bc;
> + return 0;
> +}
> +
I have already pointed out the fact that this place
will hurt performance too much. If we have some context
on task this context must
1. be get-ed without any locking
2. be settable to some temporary one without
locking as well
Unfortunately current containers implementation doesn't
allow all of the above which blocks the rest implementation
of beancounters over them.
next prev parent reply other threads:[~2007-02-13 8:55 UTC|newest]
Thread overview: 132+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-12 8:15 [PATCH 0/7] containers (V7): Generic Process Containers menage
2007-02-12 8:15 ` [PATCH 1/7] containers (V7): Generic container system abstracted from cpusets code menage
2007-02-12 12:33 ` Srivatsa Vaddagiri
2007-02-12 19:26 ` Paul Menage
2007-02-12 19:46 ` Paul Menage
2007-02-13 5:48 ` Srivatsa Vaddagiri
2007-02-13 8:16 ` [ckrm-tech] " Srivatsa Vaddagiri
2007-03-07 12:21 ` Srivatsa Vaddagiri
2007-03-07 14:06 ` [ckrm-tech] " Srivatsa Vaddagiri
2007-03-07 20:50 ` Paul Menage
2007-03-08 10:38 ` [ckrm-tech] " Srivatsa Vaddagiri
2007-03-08 10:40 ` Paul Menage
2007-03-11 19:38 ` Paul Jackson
2007-03-12 14:19 ` Srivatsa Vaddagiri
2007-03-22 9:56 ` Srivatsa Vaddagiri
2007-03-22 10:20 ` Srivatsa Vaddagiri
2007-03-24 15:05 ` Srivatsa Vaddagiri
2007-03-24 19:25 ` Paul Jackson
2007-03-25 0:45 ` Srivatsa Vaddagiri
2007-03-25 1:41 ` Paul Jackson
2007-03-25 2:28 ` Srivatsa Vaddagiri
2007-03-25 4:16 ` Srivatsa Vaddagiri
2007-03-25 5:43 ` Paul Jackson
2007-03-25 8:21 ` Srivatsa Vaddagiri
2007-03-25 4:45 ` Paul Jackson
2007-03-25 5:05 ` Srivatsa Vaddagiri
2007-03-25 4:59 ` Paul Jackson
2007-02-12 8:15 ` [PATCH 2/7] containers (V7): Cpusets hooked into containers menage
2007-02-15 20:35 ` Serge E. Hallyn
2007-02-15 20:49 ` Paul Menage
2007-03-07 14:34 ` Srivatsa Vaddagiri
2007-03-07 16:01 ` Paul Menage
2007-03-07 16:31 ` [ckrm-tech] " Srivatsa Vaddagiri
2007-03-07 16:31 ` Paul Menage
2007-03-07 14:52 ` Srivatsa Vaddagiri
2007-03-07 16:12 ` Paul Menage
2007-02-12 8:15 ` [PATCH 4/7] containers (V7): Simple CPU accounting container subsystem menage
2007-02-12 8:15 ` [PATCH 5/7] containers (V7): Resource Groups over generic containers menage
2007-02-12 8:15 ` [PATCH 6/7] containers (V7): BeanCounters over generic process containers menage
2007-02-12 15:34 ` Srivatsa Vaddagiri
2007-02-12 18:49 ` Paul Menage
2007-02-13 8:52 ` Pavel Emelianov [this message]
2007-02-13 9:03 ` Paul Menage
2007-02-13 9:18 ` Pavel Emelianov
2007-02-13 9:37 ` Paul Menage
2007-02-13 9:49 ` Pavel Emelianov
2007-02-12 8:15 ` [PATCH 7/7] containers (V7): Container interface to nsproxy subsystem menage
2007-03-24 5:05 ` [ckrm-tech] " Srivatsa Vaddagiri
2007-03-24 16:23 ` Srivatsa Vaddagiri
2007-03-26 21:57 ` Serge E. Hallyn
2007-03-28 14:55 ` Srivatsa Vaddagiri
2007-03-28 15:26 ` Serge E. Hallyn
2007-03-26 21:55 ` Serge E. Hallyn
2007-03-31 2:47 ` Srivatsa Vaddagiri
2007-04-02 14:09 ` Serge E. Hallyn
2007-04-02 14:27 ` Srivatsa Vaddagiri
2007-04-02 18:02 ` Eric W. Biederman
2007-04-03 14:16 ` Srivatsa Vaddagiri
2007-04-03 15:32 ` Serge E. Hallyn
2007-04-03 15:45 ` Paul Menage
2007-04-03 15:54 ` Serge E. Hallyn
2007-04-03 16:16 ` Srivatsa Vaddagiri
2007-04-03 16:26 ` Kirill Korotaev
2007-04-03 16:46 ` Srivatsa Vaddagiri
2007-04-03 16:52 ` Paul Menage
2007-04-03 17:11 ` Srivatsa Vaddagiri
2007-04-03 17:10 ` Paul Menage
2007-04-03 17:30 ` Srivatsa Vaddagiri
2007-04-03 17:30 ` Paul Menage
2007-04-03 17:51 ` Srivatsa Vaddagiri
2007-04-03 17:49 ` Paul Menage
2007-04-04 3:07 ` Srivatsa Vaddagiri
2007-04-04 3:44 ` Paul Jackson
2007-04-04 4:04 ` Paul Menage
2007-04-04 5:15 ` Srivatsa Vaddagiri
2007-04-04 7:00 ` Paul Menage
2007-04-04 17:26 ` Srivatsa Vaddagiri
2007-04-04 17:42 ` Srivatsa Vaddagiri
2007-04-04 18:57 ` Paul Menage
2007-04-04 23:02 ` Eric W. Biederman
2007-04-05 1:35 ` Paul Menage
2007-04-05 1:37 ` Paul Menage
2007-04-05 16:57 ` Srivatsa Vaddagiri
2007-04-05 17:14 ` Srivatsa Vaddagiri
2007-04-06 21:54 ` Paul Menage
2007-04-05 2:57 ` Paul Menage
2007-04-05 6:39 ` Srivatsa Vaddagiri
2007-04-05 6:46 ` Srivatsa Vaddagiri
2007-04-05 6:48 ` Paul Menage
2007-04-05 8:49 ` Srivatsa Vaddagiri
2007-04-05 9:29 ` Paul Menage
2007-04-05 12:43 ` Srivatsa Vaddagiri
2007-04-05 14:13 ` Srivatsa Vaddagiri
2007-04-05 14:13 ` Paul Menage
2007-04-05 14:46 ` Srivatsa Vaddagiri
2007-04-03 17:34 ` Srivatsa Vaddagiri
2007-04-03 17:29 ` Paul Menage
2007-04-03 16:10 ` Srivatsa Vaddagiri
2007-04-03 15:41 ` Serge E. Hallyn
2007-02-12 9:18 ` [PATCH 0/7] containers (V7): Generic Process Containers Paul Jackson
2007-02-12 9:32 ` Paul Menage
2007-02-12 9:52 ` Paul Jackson
[not found] ` <20070212085104.485337000@menage.corp.google.com>
2007-02-12 15:27 ` [PATCH 3/7] containers (V7): Add generic multi-subsystem API to containers Srivatsa Vaddagiri
2007-02-12 18:40 ` Paul Menage
2007-02-13 13:19 ` Srivatsa Vaddagiri
2007-02-15 1:17 ` Paul Menage
2007-02-12 15:39 ` Serge E. Hallyn
2007-02-12 15:56 ` Cedric Le Goater
2007-02-12 18:31 ` Paul Menage
2007-02-14 8:49 ` Balbir Singh
2007-03-08 17:52 ` Srivatsa Vaddagiri
2007-03-24 12:51 ` [ckrm-tech] " Srivatsa Vaddagiri
2007-02-12 22:38 ` [PATCH 0/7] containers (V7): Generic Process Containers Sam Vilain
2007-02-12 22:47 ` Serge E. Hallyn
2007-02-12 23:18 ` Paul Menage
2007-02-12 23:15 ` Paul Menage
2007-02-13 0:30 ` Sam Vilain
2007-02-13 0:42 ` [ckrm-tech] " Paul Menage
2007-02-13 1:13 ` Sam Vilain
2007-02-13 1:47 ` Paul Menage
2007-02-20 17:34 ` Eric W. Biederman
2007-02-20 17:55 ` Paul Menage
2007-02-20 19:29 ` Eric W. Biederman
2007-02-20 22:47 ` Paul Menage
2007-02-20 23:08 ` Sam Vilain
2007-02-20 23:36 ` Paul Menage
2007-02-20 23:32 ` Serge E. Hallyn
2007-02-20 21:58 ` Sam Vilain
2007-02-20 22:19 ` Paul Menage
2007-02-20 22:58 ` Sam Vilain
2007-02-20 23:28 ` Paul Menage
2007-02-20 23:37 ` Serge E. Hallyn
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=45D17C48.9030105@sw.ru \
--to=xemul@sw.ru \
--cc=akpm@osdl.org \
--cc=ckrm-tech@lists.sourceforge.net \
--cc=containers@lists.osdl.org \
--cc=dev@sw.ru \
--cc=devel@openvz.org \
--cc=ebiederm@xmission.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mbligh@google.com \
--cc=menage@google.com \
--cc=pj@sgi.com \
--cc=rohitseth@google.com \
--cc=sekharan@us.ibm.com \
--cc=serue@us.ibm.com \
--cc=vatsa@in.ibm.com \
--cc=winget@google.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