From: Peter Zijlstra <peterz@infradead.org>
To: Michael wang <wangyun@linux.vnet.ibm.com>
Cc: Rik van Riel <riel@redhat.com>,
LKML <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@kernel.org>, Mike Galbraith <efault@gmx.de>,
Alex Shi <alex.shi@linaro.org>, Paul Turner <pjt@google.com>,
Mel Gorman <mgorman@suse.de>,
Daniel Lezcano <daniel.lezcano@linaro.org>
Subject: Re: [ISSUE] sched/cgroup: Does cpu-cgroup still works fine nowadays?
Date: Wed, 14 May 2014 11:44:26 +0200 [thread overview]
Message-ID: <20140514094426.GF30445@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <53731D12.7040804@linux.vnet.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 1714 bytes --]
On Wed, May 14, 2014 at 03:36:50PM +0800, Michael wang wrote:
> distro mount cpu-subsys under '/sys/fs/cgroup/cpu', create group like:
> mkdir /sys/fs/cgroup/cpu/A
> mkdir /sys/fs/cgroup/cpu/B
> mkdir /sys/fs/cgroup/cpu/C
Yeah, distro is on crack, nobody sane mounts anything there.
> and then:
> echo $$ > /sys/fs/cgroup/cpu/A/tasks ; ./my_tool -l
> echo $$ > /sys/fs/cgroup/cpu/B/tasks ; ./my_tool -l
> echo $$ > /sys/fs/cgroup/cpu/C/tasks ; ./my_tool 50
>
> the results in top is around:
>
> A B C
> CPU% 550 550 100
top doesn't do per-cgroup accounting, so how do you get these numbers,
per the above all instances of the prog are also called the same,
further making it error prone and difficult to get sane numbers.
> #include <sys/time.h>
> #include <unistd.h>
> #include <stdio.h>
> #include <pthread.h>
>
> pthread_mutex_t my_mutex;
>
> unsigned long long stamp(void)
> {
> struct timeval tv;
> gettimeofday(&tv, NULL);
>
> return (unsigned long long)tv.tv_sec * 1000000 + tv.tv_usec;
> }
> void consume(int spin, int total)
> {
> unsigned long long begin, now;
> begin = stamp();
>
> for (;;) {
> pthread_mutex_lock(&my_mutex);
> now = stamp();
> if ((long long)(now - begin) > spin) {
> pthread_mutex_unlock(&my_mutex);
> usleep(total - spin);
> pthread_mutex_lock(&my_mutex);
> begin += total;
> }
> pthread_mutex_unlock(&my_mutex);
> }
> }
Uh,.. that's just insane.. what's the point of having a multi-threaded
program do busy-wait loops if you then serialize the lot on a global
mutex such that only 1 thread can run at any one time?
How can one such prog ever consume more than 100% cpu.
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2014-05-14 9:44 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-13 3:34 [ISSUE] sched/cgroup: Does cpu-cgroup still works fine nowadays? Michael wang
2014-05-13 9:47 ` Peter Zijlstra
2014-05-13 13:36 ` Rik van Riel
2014-05-13 14:23 ` Peter Zijlstra
2014-05-14 3:27 ` Michael wang
2014-05-14 7:36 ` Michael wang
2014-05-14 9:44 ` Peter Zijlstra [this message]
2014-05-15 3:46 ` Michael wang
2014-05-15 8:35 ` Peter Zijlstra
2014-05-15 8:46 ` Michael wang
2014-05-15 9:06 ` Peter Zijlstra
2014-05-15 9:35 ` Michael wang
2014-05-15 11:57 ` Peter Zijlstra
2014-05-16 2:23 ` Michael wang
2014-05-16 2:51 ` Mike Galbraith
2014-05-16 4:24 ` Michael wang
2014-05-16 7:54 ` Peter Zijlstra
2014-05-16 8:15 ` Michael wang
2014-06-10 8:56 ` Michael wang
2014-06-10 12:12 ` Peter Zijlstra
2014-06-11 6:13 ` Michael wang
2014-06-11 8:24 ` Peter Zijlstra
2014-06-11 9:18 ` Michael wang
2014-06-23 9:42 ` Peter Zijlstra
2014-06-24 3:10 ` Michael wang
2014-05-16 7:48 ` Peter Zijlstra
2014-05-14 3:21 ` Michael wang
2014-05-14 3:16 ` Michael wang
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=20140514094426.GF30445@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=alex.shi@linaro.org \
--cc=daniel.lezcano@linaro.org \
--cc=efault@gmx.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@kernel.org \
--cc=pjt@google.com \
--cc=riel@redhat.com \
--cc=wangyun@linux.vnet.ibm.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 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.