Linux Container Development
 help / color / mirror / Atom feed
From: Daniel Lezcano <daniel.lezcano-GANU6spQydw@public.gmane.org>
To: Glauber Costa <glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
Cc: Linux Containers
	<containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org>,
	Balbir Singh1
	<balbir.singh-xthvdsQ13ZrQT0dZR+AlfA@public.gmane.org>,
	Paul Menage <menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
Subject: Re: cgroup information proc file format
Date: Thu, 11 Aug 2011 23:45:58 +0200	[thread overview]
Message-ID: <4E444D96.7080206@free.fr> (raw)
In-Reply-To: <4E4449F5.3010909-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>

On 08/11/2011 11:30 PM, Glauber Costa wrote:
> On 08/11/2011 05:55 PM, Daniel Lezcano wrote:
>> Hi all,
>>
>> the cgroup cpuset and memory reduce access to a part of the resources on
>> the system. Some applications use the /proc/cpuinfo and /proc/meminfo to
>> allocate the resources. For instance, HPC jobs look at /proc/cpuinfo to
>> fork the number of cpu found in this file either look at /proc/meminfo
>> to allocate a big chunk of memory. Each process set the affinity on each
>> cpu, which in case a subset of cpus is used, some affinity will fail.
>>
>> In the case of the container, the cgroup is used to reduce the memory or
>> to assign a cpu to the container. Unfortunately, as this partitioning is
>> not reflected in /proc, the different system tools (ps, top, free, ...)
>> show a wrong information.
>>
>> I was wondering if that would make sense to create for the different
>> cgroup subsystem, when it is relevant, a proc formatted file we can bind
>> mount /proc.
>>
>> For example: /cgroup/memory.proc and /cgroup/cpuset.proc
>
> Not only that. user/sys/nice,etc statistics also are expected to be
> different than the main system one, among other things.
>
> One way I was thinking of doing it, was to always show per-cgroup
> data in /proc files when relevant, using the cgroup of the current
> process as a base.

That was proposed initially but refused. I tried to do that from
userspace with a fuse filesystem and by translating the cgroup
information into proc information. I was proud of the result but I
noticed fuse is not really friendly with us for the containers: adds a
lot of processes, does not support some file operations and adds an
important overhead, so I gave up because it leads to a deadend.

http://lxc.sourceforge.net/download/procfs/

>
> bind mounting proc files from their cgroup is a nice alternative,
> though. But it leaves the possibility of any user of it not setting it
> up. 

AFAIK, an user can set up an cgroup, so I guess it is up to the cgroup
creator to handle that.

> Although it is certainly more flexible, it makes me wonder if a
> constrained process should ever know about resources it can't access...
>
> If bind mounts are used, I'd suggest we represent them as directories,
> like cpuset.proc/cpuinfo. (It is not clear for me what exactly you meant
> in your proposal, sorry if it was just that). 

Well this can not be organized in directory because a directory is a
cgroup :)
The naming was an example, that would make more sense to name them
cpuset.cpuinfo and memory.meminfo.

> This might make things easier to setup an isolated /proc, since we can
> convention that anything
> in this format is available to be bind mounted, instead of having to
> convention that /cgroup/cpuset.proc means /proc/cpuinfo (May matter
> for future features)

  parent reply	other threads:[~2011-08-11 21:45 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-11 20:55 cgroup information proc file format Daniel Lezcano
     [not found] ` <4E4441C3.5020603-GANU6spQydw@public.gmane.org>
2011-08-11 21:30   ` Glauber Costa
     [not found]     ` <4E4449F5.3010909-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2011-08-11 21:45       ` Daniel Lezcano [this message]
     [not found]         ` <4E444D96.7080206-GANU6spQydw@public.gmane.org>
2011-08-11 21:52           ` Serge Hallyn
2011-08-11 22:58           ` Glauber Costa

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=4E444D96.7080206@free.fr \
    --to=daniel.lezcano-ganu6spqydw@public.gmane.org \
    --cc=balbir.singh-xthvdsQ13ZrQT0dZR+AlfA@public.gmane.org \
    --cc=containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org \
    --cc=glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org \
    --cc=menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
    /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