Re: [PATCH 0/2] litmus test updates

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 11, 2017 at 07:14:24AM +0900, Akira Yokosawa wrote:
> On 2017/07/09 12:26:55 -0700, Paul E. McKenney wrote:
> > On Sun, Jul 09, 2017 at 10:39:46AM +0900, Akira Yokosawa wrote:
> >> >From 955eefe8ad5a64fddd2e33b343ac3a1e171dd089 Mon Sep 17 00:00:00 2001
> >> From: Akira Yokosawa <akiyks@xxxxxxxxx>
> >> Date: Sun, 9 Jul 2017 09:53:28 +0900
> >> Subject: [PATCH 0/2] litmus test updates
> >>
> >> Hi Paul,
> >>
> >> I thought that embedding kernel API definitions in each litmus test is
> >> redundant. We can use #include instead. In this case, we need to
> >> specify a -I option for gcc as the compilation is done in a temporally
> >> directory. We can do so by using -ccopts option of litmus7.
> >>
> >> Patch 1 does this change.
> > 
> > You know, I tried this and it kept complaining about not finding the
> > include file.  No idea what I was doing wrong, but whatever it was,
> > thank you very much for getting it right!!!
> > 
> >> However, in native run on x86_64, I'm seeing a significant difference
> >> in the resulting statistics.
> >> Before the change, a typical result is:
> >>
> >>     Test C-SB+o-o+o-o Allowed
> >>     Histogram (4 states)
> >>     54    *>0:r2=0; 1:r2=0;
> >>     49999628:>0:r2=2; 1:r2=0;
> >>     49999697:>0:r2=0; 1:r2=2;
> >>     621   :>0:r2=2; 1:r2=2;
> >>     Ok
> >>
> >> After the change, the result is something like:
> >>
> >>     Test C-SB+o-o+o-o Allowed
> >>     Histogram (4 states)
> >>     26    *>0:r2=0; 1:r2=0;
> >>     49999782:>0:r2=2; 1:r2=0;
> >>     49999818:>0:r2=0; 1:r2=2;
> >>     374   :>0:r2=2; 1:r2=2;
> >>     Ok
> >>
> >> In cross compilation mode, the result is similar and consistent
> >> with the native run after the change.
> >> So I suspect litmus7's behavior of native run is affected by the
> >> "-ccopts" option. Again, this might depend on the platform variation.
> > 
> > Between differences in compilers, compiler options, and hardware,
> > we should expect quite a bit of of variation.  In fact, there are
> > sometimes specific pieces of hardware that have much stronger
> > memory ordering than the architecture guarantees.
> > 
> >> Patch 2 adds targets for cross compilation mode of litmus7.
> >> Because we need to copy the custom header file "api.h" into the target
> >> directory, I made the recipe to do so.
> > 
> > Looks good!
> > 
> >> I stopped short of adding recipes to make an archive and scp it to
> >> remote host and to do remote compilation and execution via ssh.
> >> They can be added later.
> > 
> > Your choice on this one.  ;-)
> > 
> >> On PPC, the result of C-SB+o-o+o-o.litmus looks interesting.
> >> (Of course, you are familiar with PPC, but...)
> >>
> >>     Test C-SB+o-o+o-o Allowed
> >>     Histogram (4 states)
> >>     988335*>0:r2=0; 1:r2=0;
> >>     49516879:>0:r2=2; 1:r2=0;
> >>     49494779:>0:r2=0; 1:r2=2;
> >>     7     :>0:r2=2; 1:r2=2;
> >>     Ok
> > 
> > I am not surprised by this.  PPC tends to do more local processing for
> > longer than x86 does, as an extremely rough rule of thumb.  PPC's weak
> > ordering enables this.  So getting the outcome where both CPUs communicate
> > with each other should be harder on PPC than on x86.
> > 
> >>     Witnesses
> >>     Positive: 988335, Negative: 99011665
> >>     Condition exists (1:r2=0 /\ 0:r2=0) is validated
> >>     Hash=9bb70a6ed845b4be5f335c7eeb134f3f
> >>
> >> Note that I've not tested the result of "cross-arm" target actually
> >> builds and runs on ARM hosts.
> > 
> > There are supposed to be places to get free access to ARM hardware.
> > If you don't find one, let me know, and I will be happy to reach out
> > to my contacts at ARM and Linaro.
> 
> Well, I tried Linaro Developer Cloud, but they are not accepting
> requests of new instances. The request page says:
> 
> > Capacity reached
> > Due to the very high levels of interest in Developer Cloud, we have
> > temporarily reached our capacity limits. We are in the process of
> > expanding our service but, in the meantime, we are currently not able
> > to accept any more requests for instances. Once capacity is available
> > again, the "Request Cloud Instance" option will be available again.
> 
> So I'm waiting the capacity to become available.
> Are you aware of an alternative service?

One of the people I am meeting with said that he would check, so if
anything comes of that I will let you know.

> BTW, I managed to have a (sporadic) access to an ARMv8 host yesterday.
> 
> I tried the result of "cross-arm" target, and it worked just fine.
> However, "make" in other CodeSamples' sub-directories didn't go well,
> I'm attempting to add support for arm64. If it works, I'll submit
> a patch set.

Looking forward to it!

							Thanx, Paul

>        Thanks, Akira
> 
> >> How does this approach look like?
> > 
> > Quite nice!  I queued and pushed it, again, thank you!
> > 
> > 							Thanx, Paul
> > 
> >>         Thanks, Akira
> >> -- 
> >> Akira Yokosawa (2):
> >>   advsync: Use '#include "api.h"' in litmus tests
> >>   advsync: Add cross compilation targets
> >>
> >>  CodeSamples/advsync/herd/.gitignore                |  5 ++++
> >>  CodeSamples/advsync/herd/C-SB+o-mb-o+o-mb-o.litmus |  4 +--
> >>  CodeSamples/advsync/herd/C-SB+o-o+o-o.litmus       |  3 +-
> >>  CodeSamples/advsync/herd/Makefile                  | 34 ++++++++++++++++++++--
> >>  CodeSamples/advsync/herd/api.h                     |  8 +++++
> >>  5 files changed, 47 insertions(+), 7 deletions(-)
> >>  create mode 100644 CodeSamples/advsync/herd/api.h
> >>
> >> -- 
> >> 2.7.4
> >>
> > 
> > 
> 

--
To unsubscribe from this list: send the line "unsubscribe perfbook" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux