All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Ahern <dsahern@gmail.com>
To: "Ted Ts'o" <tytso@mit.edu>,
	"Frederic Weisbecker" <fweisbec@gmail.com>,
	"Pádraig Brady" <P@draigBrady.com>,
	linux-kernel@vger.kernel.org
Subject: Re: scheduler / perf stat question about CPU-migrations
Date: Thu, 16 Jun 2011 23:58:41 -0600	[thread overview]
Message-ID: <4DFAED11.6060701@gmail.com> (raw)
In-Reply-To: <20110617024425.GE29725@thunk.org>



On 06/16/2011 08:44 PM, Ted Ts'o wrote:
> On Thu, Jun 16, 2011 at 05:18:39PM +0200, Frederic Weisbecker wrote:
>> The only solution is too set perf affinity itself:
>>
>> 	schedtool -a 1 -e perf stat -- e2fsck -ft /dev/funarg/kbuild

I don't have schedtool, but I was able to repeat it with taskset:

taskset -pc 2 $$
perf stat -- e2fsck -ft <device>

where <device> is a 400G ext4 partition. First time through perf-stat
showed a number of migrations over the 134 second window. e2fsck runs
much quicker after the initial one, and migrations aren't showing up as
easily.

Try this:

perf record -Tg -e migrations -fo /tmp/perf.data -- schedtool -a 1 -e
perf stat -- e2fsck -ft /dev/funarg/kbuild

The outer perf-record will capture when the migrations occur.  If you
don't mind recompiling perf, modify tools/perf/builtin-record.c and
force the capture of the cpu id on the samples. In config_attr() you want:

attr->sample_type       |= PERF_SAMPLE_CPU;

On the captured data file run:
perf script -i /tmp/perf.data

You'll see something like this (captured on a run where I was able to
get 2 migrations):
          e2fsck  2069 [002]   210.671401: CPU-migrations:
ffffffff81045a7b set_task_cpu ([kern
          e2fsck  2069 [002]   213.675785: CPU-migrations:
ffffffff81045a7b set_task_cpu ([kern

David


> 
> Nope, that doesn't solve the problem:
> 
> # schedtool -a 1 -e perf stat -- e2fsck -ft /dev/funarg/kbuild
> e2fsck 1.41.14 (22-Dec-2010)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> /dev/funarg/kbuild: 223466/1638400 files (0.3% non-contiguous), 4915668/6553600 blocks
> Memory used: 2600k/0k (1069k/1532k), time:  6.72/ 1.18/ 0.36
> I/O read: 137MB, write: 1MB, rate: 20.38MB/s
> 
>  Performance counter stats for 'e2fsck -ft /dev/funarg/kbuild':
> 
>        1523.616797 task-clock                #    0.224 CPUs utilized          
>               7227 context-switches          #    0.005 M/sec                  
>                253 CPU-migrations            #    0.000 M/sec                  
>               1936 page-faults               #    0.001 M/sec                  
>         4176409631 cycles                    #    2.741 GHz                    
>      <not counted> stalled-cycles-frontend 
>      <not counted> stalled-cycles-backend  
>         4828485353 instructions              #    1.16  insns per cycle        
>          877742160 branches                  #  576.091 M/sec                  
>            8017490 branch-misses             #    0.91% of all branches        
> 
>        6.798746204 seconds time elapsed
> 
> Note the 253 CPU migration....
> 
> 							- Ted
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

      reply	other threads:[~2011-06-17  5:58 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-16 14:46 scheduler / perf stat question about CPU-migrations Theodore Ts'o
2011-06-16 15:03 ` Frederic Weisbecker
2011-06-16 15:11   ` Pádraig Brady
2011-06-16 15:18     ` Frederic Weisbecker
2011-06-17  2:44       ` Ted Ts'o
2011-06-17  5:58         ` David Ahern [this message]

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=4DFAED11.6060701@gmail.com \
    --to=dsahern@gmail.com \
    --cc=P@draigBrady.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tytso@mit.edu \
    /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.