All of lore.kernel.org
 help / color / mirror / Atom feed
From: Akira Yokosawa <akiyks@gmail.com>
To: paulmck@linux.vnet.ibm.com
Cc: perfbook@vger.kernel.org, Akira Yokosawa <akiyks@gmail.com>
Subject: Re: Some questions
Date: Sat, 30 Apr 2016 01:00:29 +0900	[thread overview]
Message-ID: <bce4d958-0333-6611-7e81-5461ecebaebd@gmail.com> (raw)
In-Reply-To: <4cbb1be0-8d65-2f37-716f-f90723ab4cd7@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4367 bytes --]

On 2016/04/29 8:05, Akira Yokosawa wrote:
> On 2016/04/29 1:28, Paul E. McKenney wrote:
>> On Fri, Apr 29, 2016 at 12:39:09AM +0900, Akira Yokosawa wrote:
>>> On 2016/04/27 16:28:07 -0700, Paul E. McKenney wrote:
>>>> On Thu, Apr 28, 2016 at 08:01:31AM +0900, Akira Yokosawa wrote:
>>>>> On 2016/04/27 15:50:22 -0700, Paul E. McKenney wrote:
>>>>>> On Thu, Apr 28, 2016 at 07:15:05AM +0900, Akira Yokosawa wrote:
>>>>>>> On 2016/04/27 09:53:57 -0700, Paul E. McKenney wrote:
>>> [snip.
>>>>>>>> Please see attached for what it looks like to me.
>>>>>>>
>>>>>>> Well, this is identical to the one I built.
>>>>>>> So, do you intend to explicitly put numbers which show up fairly long time, and
>>>>>>> leave other cells blank even below changes of values denoted by (n) in italics?
>>>>>>
>>>>>> The blank cells represent cache misses.  The CPU is waiting for a read
>>>>>> to complete during that time.  A non-blank cell corresponds to a CPU
>>>>>> actually completing a read.
>>>>>
>>>>> Oh, I see. But this should be explained in the text, I think.
>>>>
>>>> Good point!  I also added several other possibilities, including
>>>> interrupts and preemption.
>>>>
>>>
>>> So, I have a few questions regarding to the added explanation of blank cells.
>>>
>>> According to the text, trace data used to create the table are said to be 
>>> obtained by a program that contains the code fragment shown in Figure 14.4.
>>> The loop in the code fragment will exit once it sees state.variable != mycpu.
>>> That means the actual program you used has an outer loop to record the
>>> changes of state.valuable for each cpu in the system, I suppose.
>>> Am I guessing right?
>>
>> IIRC, the program just stuffed timestamps and values into a set of per-CPU
>> big arrays, then printed them out.  A script took these values as input,
>> and compacted identical state.
>>
>>> If I am, (n)'s in the table denoting modification of variables must be
>>> entries in the trace data which were output from the outer loop, I think.
>>
>> The (n)'s mark changes in value for a given CPU.
>>
>>> However, in the table, there are a number of cases where (n)'s are followed
>>> by blanks just below itself. Does this mean fetched state.variables stay in
>>> the cache very briefly, but are (almost immediately) invalidated by a cache
>>> coherence mechanism? I can see interrupts and preemption would also cause the
>>> trace output to be suspended for a while.
>>
>> It marks places where a given CPU saw a value momentarily.  As you say,
>> this could be due to cache invalidation, interrupts, preemption, etc.
>>
>>> I'm not sure I have made out what the table means thus far, but am I seeing
>>> something close enough to what you intend the table to represent?
>>
>> The main point is that different CPUs can disagree on the value of a given
>> variable at a given point in time.  The following diagram shows that
>> this disagreement is nevertheless bounded, in that all CPUs must agree
>> on the ordering of values for that variable.
> 
> Yes, of course that's the main point.
> I should have asked in a different way.
> 
> There should be the same kind of situations in Figure 14.5.
> But you didn't depict them in the figure.
> 
> Why did you put the blank cells in the table in the first place?
> 
> I'm a little bit distracted by those blank cells, and began questioning
> about them.
> 
> Isn't it enough to just do the same way in Table 14.2 as in Figure 14.5?
> 
> Or, could the blank cell situation be explained in the form of an answer
> of a quick quiz?  It would be much easier for me to grasp the main point
> of this section "Variables Can Have More Than One Value" while reading the
> body of the text.
> 
> Thoughts?
> 
>                                                    Thanks, Akira
> 
>>
>> 							Thanx, Paul
>>
>>
> 

So I drew 2 figures based on Table 14.2.
No, I didn't actually drew them but wrote a rough program to generate .fig
format files from the value changes of each CPU extracted from Table 14.2.
I ignored the blank cells in the table just as in Figure 4.5.
Appended is a tar ball of two files.
out.fig is the overall diagram, and out-2.fig is a zoomed in view of
the beginning part.
I think they can provide a fairly interesting view of what's going on.

Please give a look at them.

                                                    Thanks, Akira

[-- Attachment #2: fig.tar.gz --]
[-- Type: application/gzip, Size: 2368 bytes --]

  reply	other threads:[~2016-04-29 16:00 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-27 15:21 Some questions Akira Yokosawa
     [not found] ` <20160427165357.GD4967@linux.vnet.ibm.com>
2016-04-27 22:15   ` Akira Yokosawa
2016-04-27 22:50     ` Paul E. McKenney
2016-04-27 23:01       ` Akira Yokosawa
2016-04-27 23:28         ` Paul E. McKenney
2016-04-28 15:39           ` Akira Yokosawa
2016-04-28 16:28             ` Paul E. McKenney
2016-04-28 23:05               ` Akira Yokosawa
2016-04-29 16:00                 ` Akira Yokosawa [this message]
2016-04-29 17:15                   ` Paul E. McKenney
2016-04-29 22:06                     ` Akira Yokosawa
2016-04-30  1:05                       ` Paul E. McKenney
     [not found] <CAGEeD9YPvDhbt7KFvLOJ6W99UM_Jck6PFF6HV2h=B5u2gChggg@mail.gmail.com>
2017-10-04  6:58 ` Никита Горбунов
2017-10-05  6:09   ` Sitsofe Wheeler
  -- strict thread matches above, loose matches on Subject: below --
2012-01-27 13:12 Артём Алексюк
2010-11-09 20:31 connecting ieee80211_hw and net_device Zoltan Herczeg
2010-11-10  0:26 ` Johannes Berg
2010-11-11 14:20   ` Zoltan Herczeg
2010-11-12 22:33     ` Zoltan Herczeg
2010-11-16 17:50       ` some questions Zoltan Herczeg
2010-03-08  5:08 Some questions Tiago Maluta
2008-08-22  7:31 some questions Thomas Pasch
2008-08-22  8:53 ` Matthieu Moy
2008-08-22 14:08   ` Shawn O. Pearce
2008-08-22  9:28 ` Jakub Narebski
2008-08-22 14:15   ` Shawn O. Pearce
2008-05-04 16:16 David Arendt
     [not found] ` <481DE17B.3080407-/LHdS3kC8BfYtjvyW6yDsg@public.gmane.org>
2008-05-05 15:55   ` Ryusuke Konishi
     [not found]     ` <20080506.005511.117028003.ryusuke-sG5X7nlA6pw@public.gmane.org>
2008-05-05 16:38       ` Ryusuke Konishi
2008-04-25  9:06 Some Questions James Scott
2008-04-26  7:48 ` Morten K. Poulsen
2008-04-27  9:47 ` James Scott
2003-08-19 15:53 Some questions Joerg Sommer
2003-03-05 12:18 Thomas Winischhofer
2003-03-05 13:26 ` Antonino Daplas
2003-03-05 14:06   ` Thomas Winischhofer
2003-03-05 15:25     ` Antonino Daplas
2003-03-05 15:37       ` Thomas Winischhofer
2003-03-05 15:44         ` Geert Uytterhoeven
2003-03-05 15:59           ` Thomas Winischhofer
2003-03-05 16:06             ` Geert Uytterhoeven
2003-03-05 16:34             ` Antonino Daplas
2003-03-05 16:06         ` Antonino Daplas
2003-03-05 16:17           ` Thomas Winischhofer
2003-03-05 16:44             ` Antonino Daplas
2003-03-05 17:01               ` Geert Uytterhoeven
2003-03-05 19:25                 ` James Simmons
2003-03-05 19:27               ` James Simmons
2003-03-05 15:40       ` Geert Uytterhoeven
2003-03-05 15:54         ` Antonino Daplas
2003-03-05 19:31         ` James Simmons
2003-03-05 15:48       ` Antonino Daplas
2003-03-05 19:43         ` James Simmons
2003-03-05 22:21           ` Thomas Winischhofer
2003-03-06  0:18             ` James Simmons
2003-03-06  9:03               ` Thomas Winischhofer
2003-03-06  1:18             ` Antonino Daplas
2003-03-06  1:18           ` Antonino Daplas
2003-03-06  8:49             ` Thomas Winischhofer
2003-03-06  9:12               ` Geert Uytterhoeven
2003-03-06  9:58                 ` Antonino Daplas
2003-03-06 10:14                   ` Geert Uytterhoeven
2003-03-06 10:30                     ` Antonino Daplas
2003-03-06  9:26               ` Antonino Daplas
2003-03-06  9:43                 ` Thomas Winischhofer
2003-03-06 10:05                   ` Antonino Daplas
2003-03-06 10:31                     ` Sven Luther
2003-03-06 10:48                       ` Antonino Daplas
2003-03-06 10:51                         ` Antonino Daplas
2003-03-06 11:40                           ` Sven Luther
2003-03-06 13:25                             ` Antonino Daplas
2003-03-06 15:25                             ` James Simmons
2003-03-06 15:27                       ` James Simmons
2003-03-07 12:08                         ` Thomas Winischhofer
2003-03-07 12:21                           ` Geert Uytterhoeven
2003-03-07 18:19                             ` James Simmons
2003-03-07 14:01                           ` Antonino Daplas
2003-03-07 15:19                             ` Thomas Winischhofer
2003-03-07 16:19                               ` Antonino Daplas
2003-03-07 17:00                                 ` Thomas Winischhofer
2003-03-07 17:42                                   ` Antonino Daplas
2003-03-07 18:31                               ` James Simmons
2003-03-07 17:49                                 ` Thomas Winischhofer
2003-03-11 16:23                                   ` James Simmons
2003-03-07 20:12                               ` Antonino Daplas
2003-03-07 20:51                                 ` Thomas Winischhofer
2003-03-08  0:58                                   ` Antonino Daplas
2003-03-08  5:40                                     ` Antonino Daplas
2003-03-08 14:11                                       ` Thomas Winischhofer
2003-03-08 14:20                                       ` Thomas Winischhofer
2003-03-08 22:03                                         ` Antonino Daplas
2003-03-09  3:47                                           ` Thomas Winischhofer
2003-03-09  6:18                                             ` Antonino Daplas
2003-03-07 18:30                             ` James Simmons
2003-03-11 16:07             ` James Simmons
2003-03-11 21:03               ` Thomas Winischhofer
2003-03-05 19:16       ` James Simmons
2003-03-05 19:30         ` Geert Uytterhoeven
2003-03-05 19:34           ` James Simmons
2003-03-05 22:13             ` Thomas Winischhofer
2003-03-05 23:53               ` James Simmons
2003-03-06  8:33             ` Geert Uytterhoeven
2003-03-06  9:00               ` Sven Luther
2003-03-06  9:03               ` Antonino Daplas
2003-03-11 16:29                 ` James Simmons
2003-03-11 20:07                   ` Antonino Daplas
2003-03-11 20:56                     ` Thomas Winischhofer
2003-03-11 21:45                       ` Antonino Daplas
2003-03-11 22:23                         ` Thomas Winischhofer
2003-03-11 22:51                           ` Antonino Daplas
2003-03-12  0:07                             ` Michel Dänzer
2003-03-12  1:02                               ` Antonino Daplas
2003-03-12  1:29                                 ` Michel Dänzer
2003-03-12  8:24                                   ` Geert Uytterhoeven
2003-03-12 15:56                                     ` Michel Dänzer
2003-03-11 22:27                         ` Thomas Winischhofer
2003-03-11 22:51                           ` Antonino Daplas
2003-03-11 23:12                             ` Thomas Winischhofer
2003-03-05 14:12   ` Geert Uytterhoeven
2003-03-05 14:18     ` Thomas Winischhofer
2003-03-05 14:16   ` Thomas Winischhofer
2003-03-05 15:25     ` Antonino Daplas
2003-03-05 14:22   ` Thomas Winischhofer
2003-03-05 19:02   ` James Simmons
2003-03-06  1:18     ` Antonino Daplas
2003-03-05 18:57 ` James Simmons
2001-10-05 12:50 Justin R. Smith
2001-10-05 13:57 ` Stephen Smalley
2001-10-05 16:36   ` Paul Krumviede
1998-06-05 22:34 Alex deVries
1998-06-06  0:25 ` Ariel Faigon
1998-06-06  0:25   ` Ariel Faigon
1998-06-06  6:32   ` Peter Maydell
1998-06-06 15:36     ` Jeremy John Welling
1998-06-08  6:14     ` ralf
1998-06-09  0:17       ` Steve Rikli

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=bce4d958-0333-6611-7e81-5461ecebaebd@gmail.com \
    --to=akiyks@gmail.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=perfbook@vger.kernel.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 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.