* [RFT GIT PULL] Makefile: Add ".fig -> .eps" rule
@ 2016-08-11 15:14 Akira Yokosawa
2016-08-11 17:54 ` Paul E. McKenney
0 siblings, 1 reply; 9+ messages in thread
From: Akira Yokosawa @ 2016-08-11 15:14 UTC (permalink / raw)
To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa
Hi Paul,
As I said the other day, I added a rule for ".fig -> .eps" in Makefile and
evaluate the increase in time of the first build (or builds after
"make neatfreak").
To reduce the build time, 2nd patch moves several currently unused ".fig" files
to ".unused" sub-directories.
3rd patch removes ".eps" files in the repository whose sources are ".fig" files.
4th patch updates ".gitignore"s to reflect the removed files.
5th patch updates FAQ-BUILD.txt to notify people that we now need the "fig2ps"
package for "fig2eps" command on Ubuntu.
The result of the evaluation is as follows.
Time is measured by "time" command such as "$ make neatfreak; time make -j4"
on a virtual machine with 4 cpus. The "real" times are collected from the output.
The value in each cell is the simple average of 4 samples.
|before (sec)| after (sec)| |
no of thread | (1a508f6a) | (641b6a55) | diff (sec) | diff (%)
1 | 141.8 | 153.5 | 11.7 | 8.3
2 | 83.8 | 89.9 | 6.1 | 7.3
3 | 64.7 | 68.8 | 4.1 | 6.3
4 | 55.7 | 59.0 | 3.3 | 5.9
As you may see, the time increase would be almost unnoticeable if you are
building with more than -j4.
Of course, modification of Makefile needs to be fully tested before merging.
I've tested myself doing the above evaluation.
If you are satisfied with the change, please consider merging.
Thanks, Akira
-----
The following changes since commit 1a508f6ad8b6d4e722c8511c459ae7ae9d2591b5:
Get .gitignore in right place for hash-table code (2016-08-10 16:14:18 -0700)
are available in the git repository at:
https://github.com/akiyks/perfbook.git makefile-add-fig-eps-rule
for you to fetch changes up to 641b6a5541323d737b1e2ca31e9a805da19514f1:
FAQ-BUILD.txt: Add 'fig2ps' as necessary package on Ubuntu (2016-08-11 22:50:02 +0900)
----------------------------------------------------------------
Akira Yokosawa (5):
Makefile: Add .fig -> .eps rule
Move unused .fig and .eps files to .unused directory
Remove .eps files whose sources are .fig files
Update and create .gitignore files
FAQ-BUILD.txt: Add 'fig2ps' as necessary package on Ubuntu
FAQ-BUILD.txt | 2 +-
Makefile | 18 +-
SMPdesign/.gitignore | 10 +
SMPdesign/AllocatorPool.eps | 287 --
SMPdesign/LockGranularity.eps | 243 --
SMPdesign/MazeNumberPath.eps | 157 -
SMPdesign/MemoryBarrierPairing.eps | 218 --
SMPdesign/ParallelFastpath.eps | 213 -
SMPdesign/allocatorcache.eps | 225 --
SMPdesign/lockdeqhash.eps | 218 --
SMPdesign/lockdeqhash1R.eps | 784 ----
SMPdesign/lockdeqhashlots.eps | 479 ---
SMPdesign/lockdeqpair.eps | 177 -
advsync/.gitignore | 22 +
advsync/.unused/MoreThanOneValue-15CPU-noresp.eps | 1306 -------
advsync/AbstractMemoryAccessModel.eps | 191 -
advsync/DataDependencyNeeded.eps | 775 ----
advsync/DataDependencySupplied.eps | 738 ----
advsync/MemoryArchitecture.eps | 327 --
advsync/MemoryBarrierPairing.eps | 221 --
advsync/MoreThanOneValue-15CPU.eps | 1306 -------
advsync/MoreThanOneValue.eps | 200 -
advsync/RCU-API.eps | 200 -
advsync/RCUDeletion.eps | 253 --
advsync/RCUInsertion.eps | 210 -
advsync/RCUReaderGP.eps | 181 -
advsync/RCUReaderGPExtends.eps | 199 -
advsync/RCUReplacement.eps | 414 --
advsync/ReadBarrierNeeded.eps | 673 ----
advsync/ReadBarrierSupplied.eps | 693 ----
advsync/ReadBarrierSupplied1.eps | 722 ----
advsync/ReadBarrierSupplied2.eps | 699 ----
advsync/SpeculativeLoad.eps | 603 ---
advsync/SpeculativeLoadBarrier.eps | 595 ---
advsync/SpeculativeLoadBarrierCancel.eps | 633 ---
advsync/SplitCache.eps | 250 --
advsync/WriteBarrierOrdering.eps | 613 ---
appendix/questions/.gitignore | 1 +
appendix/questions/after.eps | 170 -
appendix/rcuhist/{ => .unused}/linux-RCU.eps | 0
appendix/rcuhist/{ => .unused}/linux-RCUlock.eps | 0
appendix/rcuhist/{ => .unused}/rcuAPI.eps | 0
.../rcuimpl/{ => .unused}/AdvanceRCUCallbacks.fig | 0
.../rcuimpl/{ => .unused}/BigTreeClassicRCU.fig | 0
.../rcuimpl/{ => .unused}/BigTreeClassicRCUBH.fig | 0
.../{ => .unused}/BigTreeClassicRCUBHdyntick.fig | 0
appendix/rcuimpl/{ => .unused}/FlatClassicRCU.fig | 0
.../{ => .unused}/GenericRCUStateMachine.fig | 0
appendix/rcuimpl/{ => .unused}/GracePeriodBad.fig | 0
appendix/rcuimpl/{ => .unused}/RCUTreeInit.fig | 0
appendix/rcuimpl/{ => .unused}/RCUTreeLeafScan.fig | 0
appendix/rcuimpl/{ => .unused}/RCUTreeQSScan.fig | 0
appendix/rcuimpl/{ => .unused}/RCUbweBlock.fig | 0
.../{ => .unused}/RCUpreemptCounterFlip.fig | 0
appendix/rcuimpl/{ => .unused}/RCUpreemptLists.fig | 0
.../{ => .unused}/RCUpreemptListsCompare.fig | 0
.../rcuimpl/{ => .unused}/RCUpreemptStates.fig | 0
.../rcuimpl/{ => .unused}/RCUpreemptTimeline.fig | 0
.../rcuimpl/{ => .unused}/RCUpreemptValidation.fig | 0
appendix/rcuimpl/{ => .unused}/RCUrt-MBnowaste.fig | 0
appendix/rcuimpl/{ => .unused}/RCUrt-MBwaste.fig | 0
.../rcuimpl/{ => .unused}/TinyRCUCallbacks.fig | 0
appendix/rcuimpl/{ => .unused}/TreeClassicRCU.fig | 0
.../rcuimpl/{ => .unused}/TreeClassicRCUGP.fig | 0
appendix/rcuimpl/{ => .unused}/TreeMapping.fig | 0
.../rcuimpl/{ => .unused}/TreeRCUStateMachine.fig | 0
appendix/rcuimpl/{ => .unused}/srcuds.fig | 0
appendix/rcuimpl/AdvanceRCUCallbacks.eps | 316 --
appendix/rcuimpl/BigTreeClassicRCU.eps | 286 --
appendix/rcuimpl/BigTreeClassicRCUBH.eps | 305 --
appendix/rcuimpl/BigTreeClassicRCUBHdyntick.eps | 462 ---
appendix/rcuimpl/FlatClassicRCU.eps | 254 --
appendix/rcuimpl/GenericRCUStateMachine.eps | 514 ---
appendix/rcuimpl/GracePeriodBad.eps | 194 -
appendix/rcuimpl/RCUTreeInit.eps | 490 ---
appendix/rcuimpl/RCUTreeLeafScan.eps | 504 ---
appendix/rcuimpl/RCUTreeQSScan.eps | 504 ---
appendix/rcuimpl/RCUbweBlock.eps | 575 ---
appendix/rcuimpl/RCUpreemptCounterFlip.eps | 291 --
appendix/rcuimpl/RCUpreemptLists.eps | 220 --
appendix/rcuimpl/RCUpreemptListsCompare.eps | 311 --
appendix/rcuimpl/RCUpreemptStates.eps | 4120 --------------------
appendix/rcuimpl/RCUpreemptTimeline.eps | 351 --
appendix/rcuimpl/RCUpreemptValidation.eps | 696 ----
appendix/rcuimpl/RCUrt-MBnowaste.eps | 273 --
appendix/rcuimpl/RCUrt-MBwaste.eps | 345 --
appendix/rcuimpl/TinyRCUCallbacks.eps | 233 --
appendix/rcuimpl/TreeClassicRCU.eps | 288 --
appendix/rcuimpl/TreeClassicRCUGP.eps | 730 ----
appendix/rcuimpl/TreeMapping.eps | 219 --
appendix/rcuimpl/TreeRCUStateMachine.eps | 358 --
appendix/rcuimpl/srcuds.eps | 268 --
appendix/whymb/.gitignore | 7 +
appendix/whymb/MESI.eps | 293 --
appendix/whymb/cacheSB.eps | 216 -
appendix/whymb/cacheSBf.eps | 247 --
appendix/whymb/cacheSBfIQ.eps | 271 --
appendix/whymb/cacheSC.eps | 150 -
appendix/whymb/cacheSCwrite.eps | 170 -
appendix/whymb/hostileordering.eps | 243 --
count/.gitignore | 5 +
count/GlobalInc.eps | 429 --
count/GlobalTreeInc.eps | 501 ---
count/PerThreadInc.eps | 421 --
count/count_lim.eps | 177 -
count/globbal.eps | 331 --
cpu/.gitignore | 2 +
cpu/3DI.eps | 193 -
cpu/SystemArch.eps | 395 --
datastruct/.gitignore | 1 +
datastruct/hashdiagram.eps | 301 --
defer/.gitignore | 10 +
defer/GracePeriodGood.eps | 210 -
defer/Linux_hlist.eps | 208 -
defer/Linux_list.eps | 241 --
defer/Linux_list_abbr.eps | 139 -
defer/QSBRGracePeriod.eps | 255 --
defer/RCUDeletion.eps | 253 --
defer/RCUListDeleteClassic.eps | 328 --
defer/RCUReplacement.eps | 470 ---
defer/RCUenvAPI.eps | 214 -
defer/rwlockRCUupdate.eps | 264 --
formal/.gitignore | 1 +
formal/RCUpreemptStates.eps | 4120 --------------------
intro/.gitignore | 4 +
intro/FourTaskCategories.eps | 261 --
intro/FourTaskOrder.eps | 321 --
intro/Generality.eps | 386 --
intro/PPGrelation.eps | 165 -
locking/.gitignore | 5 +
locking/DeadlockCycle.eps | 227 --
locking/LayeredLockHierarchy.eps | 222 --
locking/LocalLockHierarchy.eps | 221 --
locking/NonLocalLockHierarchy.eps | 221 --
locking/rnplock.eps | 305 --
toolsoftrade/.gitignore | 1 +
toolsoftrade/shellparallel.eps | 210 -
137 files changed, 84 insertions(+), 41864 deletions(-)
delete mode 100644 SMPdesign/AllocatorPool.eps
delete mode 100644 SMPdesign/LockGranularity.eps
delete mode 100644 SMPdesign/MazeNumberPath.eps
delete mode 100644 SMPdesign/MemoryBarrierPairing.eps
delete mode 100644 SMPdesign/ParallelFastpath.eps
delete mode 100644 SMPdesign/allocatorcache.eps
delete mode 100644 SMPdesign/lockdeqhash.eps
delete mode 100644 SMPdesign/lockdeqhash1R.eps
delete mode 100644 SMPdesign/lockdeqhashlots.eps
delete mode 100644 SMPdesign/lockdeqpair.eps
delete mode 100644 advsync/.unused/MoreThanOneValue-15CPU-noresp.eps
delete mode 100644 advsync/AbstractMemoryAccessModel.eps
delete mode 100644 advsync/DataDependencyNeeded.eps
delete mode 100644 advsync/DataDependencySupplied.eps
delete mode 100644 advsync/MemoryArchitecture.eps
delete mode 100644 advsync/MemoryBarrierPairing.eps
delete mode 100644 advsync/MoreThanOneValue-15CPU.eps
delete mode 100644 advsync/MoreThanOneValue.eps
delete mode 100644 advsync/RCU-API.eps
delete mode 100644 advsync/RCUDeletion.eps
delete mode 100644 advsync/RCUInsertion.eps
delete mode 100644 advsync/RCUReaderGP.eps
delete mode 100644 advsync/RCUReaderGPExtends.eps
delete mode 100644 advsync/RCUReplacement.eps
delete mode 100644 advsync/ReadBarrierNeeded.eps
delete mode 100644 advsync/ReadBarrierSupplied.eps
delete mode 100644 advsync/ReadBarrierSupplied1.eps
delete mode 100644 advsync/ReadBarrierSupplied2.eps
delete mode 100644 advsync/SpeculativeLoad.eps
delete mode 100644 advsync/SpeculativeLoadBarrier.eps
delete mode 100644 advsync/SpeculativeLoadBarrierCancel.eps
delete mode 100644 advsync/SplitCache.eps
delete mode 100644 advsync/WriteBarrierOrdering.eps
create mode 100644 appendix/questions/.gitignore
delete mode 100644 appendix/questions/after.eps
rename appendix/rcuhist/{ => .unused}/linux-RCU.eps (100%)
rename appendix/rcuhist/{ => .unused}/linux-RCUlock.eps (100%)
rename appendix/rcuhist/{ => .unused}/rcuAPI.eps (100%)
rename appendix/rcuimpl/{ => .unused}/AdvanceRCUCallbacks.fig (100%)
rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCU.fig (100%)
rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCUBH.fig (100%)
rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCUBHdyntick.fig (100%)
rename appendix/rcuimpl/{ => .unused}/FlatClassicRCU.fig (100%)
rename appendix/rcuimpl/{ => .unused}/GenericRCUStateMachine.fig (100%)
rename appendix/rcuimpl/{ => .unused}/GracePeriodBad.fig (100%)
rename appendix/rcuimpl/{ => .unused}/RCUTreeInit.fig (100%)
rename appendix/rcuimpl/{ => .unused}/RCUTreeLeafScan.fig (100%)
rename appendix/rcuimpl/{ => .unused}/RCUTreeQSScan.fig (100%)
rename appendix/rcuimpl/{ => .unused}/RCUbweBlock.fig (100%)
rename appendix/rcuimpl/{ => .unused}/RCUpreemptCounterFlip.fig (100%)
rename appendix/rcuimpl/{ => .unused}/RCUpreemptLists.fig (100%)
rename appendix/rcuimpl/{ => .unused}/RCUpreemptListsCompare.fig (100%)
rename appendix/rcuimpl/{ => .unused}/RCUpreemptStates.fig (100%)
rename appendix/rcuimpl/{ => .unused}/RCUpreemptTimeline.fig (100%)
rename appendix/rcuimpl/{ => .unused}/RCUpreemptValidation.fig (100%)
rename appendix/rcuimpl/{ => .unused}/RCUrt-MBnowaste.fig (100%)
rename appendix/rcuimpl/{ => .unused}/RCUrt-MBwaste.fig (100%)
rename appendix/rcuimpl/{ => .unused}/TinyRCUCallbacks.fig (100%)
rename appendix/rcuimpl/{ => .unused}/TreeClassicRCU.fig (100%)
rename appendix/rcuimpl/{ => .unused}/TreeClassicRCUGP.fig (100%)
rename appendix/rcuimpl/{ => .unused}/TreeMapping.fig (100%)
rename appendix/rcuimpl/{ => .unused}/TreeRCUStateMachine.fig (100%)
rename appendix/rcuimpl/{ => .unused}/srcuds.fig (100%)
delete mode 100644 appendix/rcuimpl/AdvanceRCUCallbacks.eps
delete mode 100644 appendix/rcuimpl/BigTreeClassicRCU.eps
delete mode 100644 appendix/rcuimpl/BigTreeClassicRCUBH.eps
delete mode 100644 appendix/rcuimpl/BigTreeClassicRCUBHdyntick.eps
delete mode 100644 appendix/rcuimpl/FlatClassicRCU.eps
delete mode 100644 appendix/rcuimpl/GenericRCUStateMachine.eps
delete mode 100644 appendix/rcuimpl/GracePeriodBad.eps
delete mode 100644 appendix/rcuimpl/RCUTreeInit.eps
delete mode 100644 appendix/rcuimpl/RCUTreeLeafScan.eps
delete mode 100644 appendix/rcuimpl/RCUTreeQSScan.eps
delete mode 100644 appendix/rcuimpl/RCUbweBlock.eps
delete mode 100644 appendix/rcuimpl/RCUpreemptCounterFlip.eps
delete mode 100644 appendix/rcuimpl/RCUpreemptLists.eps
delete mode 100644 appendix/rcuimpl/RCUpreemptListsCompare.eps
delete mode 100644 appendix/rcuimpl/RCUpreemptStates.eps
delete mode 100644 appendix/rcuimpl/RCUpreemptTimeline.eps
delete mode 100644 appendix/rcuimpl/RCUpreemptValidation.eps
delete mode 100644 appendix/rcuimpl/RCUrt-MBnowaste.eps
delete mode 100644 appendix/rcuimpl/RCUrt-MBwaste.eps
delete mode 100644 appendix/rcuimpl/TinyRCUCallbacks.eps
delete mode 100644 appendix/rcuimpl/TreeClassicRCU.eps
delete mode 100644 appendix/rcuimpl/TreeClassicRCUGP.eps
delete mode 100644 appendix/rcuimpl/TreeMapping.eps
delete mode 100644 appendix/rcuimpl/TreeRCUStateMachine.eps
delete mode 100644 appendix/rcuimpl/srcuds.eps
create mode 100644 appendix/whymb/.gitignore
delete mode 100644 appendix/whymb/MESI.eps
delete mode 100644 appendix/whymb/cacheSB.eps
delete mode 100644 appendix/whymb/cacheSBf.eps
delete mode 100644 appendix/whymb/cacheSBfIQ.eps
delete mode 100644 appendix/whymb/cacheSC.eps
delete mode 100644 appendix/whymb/cacheSCwrite.eps
delete mode 100644 appendix/whymb/hostileordering.eps
delete mode 100644 count/GlobalInc.eps
delete mode 100644 count/GlobalTreeInc.eps
delete mode 100644 count/PerThreadInc.eps
delete mode 100644 count/count_lim.eps
delete mode 100644 count/globbal.eps
create mode 100644 cpu/.gitignore
delete mode 100644 cpu/3DI.eps
delete mode 100644 cpu/SystemArch.eps
create mode 100644 datastruct/.gitignore
delete mode 100644 datastruct/hashdiagram.eps
create mode 100644 defer/.gitignore
delete mode 100644 defer/GracePeriodGood.eps
delete mode 100644 defer/Linux_hlist.eps
delete mode 100644 defer/Linux_list.eps
delete mode 100644 defer/Linux_list_abbr.eps
delete mode 100644 defer/QSBRGracePeriod.eps
delete mode 100644 defer/RCUDeletion.eps
delete mode 100644 defer/RCUListDeleteClassic.eps
delete mode 100644 defer/RCUReplacement.eps
delete mode 100644 defer/RCUenvAPI.eps
delete mode 100644 defer/rwlockRCUupdate.eps
create mode 100644 formal/.gitignore
delete mode 100644 formal/RCUpreemptStates.eps
create mode 100644 intro/.gitignore
delete mode 100644 intro/FourTaskCategories.eps
delete mode 100644 intro/FourTaskOrder.eps
delete mode 100644 intro/Generality.eps
delete mode 100644 intro/PPGrelation.eps
create mode 100644 locking/.gitignore
delete mode 100644 locking/DeadlockCycle.eps
delete mode 100644 locking/LayeredLockHierarchy.eps
delete mode 100644 locking/LocalLockHierarchy.eps
delete mode 100644 locking/NonLocalLockHierarchy.eps
delete mode 100644 locking/rnplock.eps
create mode 100644 toolsoftrade/.gitignore
delete mode 100644 toolsoftrade/shellparallel.eps
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFT GIT PULL] Makefile: Add ".fig -> .eps" rule
2016-08-11 15:14 [RFT GIT PULL] Makefile: Add ".fig -> .eps" rule Akira Yokosawa
@ 2016-08-11 17:54 ` Paul E. McKenney
2016-08-11 23:23 ` Akira Yokosawa
0 siblings, 1 reply; 9+ messages in thread
From: Paul E. McKenney @ 2016-08-11 17:54 UTC (permalink / raw)
To: Akira Yokosawa; +Cc: perfbook
On Fri, Aug 12, 2016 at 12:14:20AM +0900, Akira Yokosawa wrote:
> Hi Paul,
>
> As I said the other day, I added a rule for ".fig -> .eps" in Makefile and
> evaluate the increase in time of the first build (or builds after
> "make neatfreak").
>
> To reduce the build time, 2nd patch moves several currently unused ".fig" files
> to ".unused" sub-directories.
> 3rd patch removes ".eps" files in the repository whose sources are ".fig" files.
> 4th patch updates ".gitignore"s to reflect the removed files.
> 5th patch updates FAQ-BUILD.txt to notify people that we now need the "fig2ps"
> package for "fig2eps" command on Ubuntu.
>
> The result of the evaluation is as follows.
> Time is measured by "time" command such as "$ make neatfreak; time make -j4"
> on a virtual machine with 4 cpus. The "real" times are collected from the output.
> The value in each cell is the simple average of 4 samples.
>
> |before (sec)| after (sec)| |
> no of thread | (1a508f6a) | (641b6a55) | diff (sec) | diff (%)
> 1 | 141.8 | 153.5 | 11.7 | 8.3
> 2 | 83.8 | 89.9 | 6.1 | 7.3
> 3 | 64.7 | 68.8 | 4.1 | 6.3
> 4 | 55.7 | 59.0 | 3.3 | 5.9
>
> As you may see, the time increase would be almost unnoticeable if you are
> building with more than -j4.
>
> Of course, modification of Makefile needs to be fully tested before merging.
> I've tested myself doing the above evaluation.
>
> If you are satisfied with the change, please consider merging.
Hmmm...
Pulling this, and then cloning into a new repository gets me this:
$ make -j8
SMPdesign/AllocatorPool.fig --> SMPdesign/AllocatorPool.eps
make: *** [SMPdesign/AllocatorPool.eps] Error 127
make: *** Waiting for unfinished jobs....
SMPdesign/DiningPhilosopher5.tex --> SMPdesign/DiningPhilosopher5.eps
I get the same error if I do "make neatfreak" beforehand.
What am I doing wrong?
Thanx, Paul
> Thanks, Akira
>
> -----
> The following changes since commit 1a508f6ad8b6d4e722c8511c459ae7ae9d2591b5:
>
> Get .gitignore in right place for hash-table code (2016-08-10 16:14:18 -0700)
>
> are available in the git repository at:
>
> https://github.com/akiyks/perfbook.git makefile-add-fig-eps-rule
>
> for you to fetch changes up to 641b6a5541323d737b1e2ca31e9a805da19514f1:
>
> FAQ-BUILD.txt: Add 'fig2ps' as necessary package on Ubuntu (2016-08-11 22:50:02 +0900)
>
> ----------------------------------------------------------------
> Akira Yokosawa (5):
> Makefile: Add .fig -> .eps rule
> Move unused .fig and .eps files to .unused directory
> Remove .eps files whose sources are .fig files
> Update and create .gitignore files
> FAQ-BUILD.txt: Add 'fig2ps' as necessary package on Ubuntu
>
> FAQ-BUILD.txt | 2 +-
> Makefile | 18 +-
> SMPdesign/.gitignore | 10 +
> SMPdesign/AllocatorPool.eps | 287 --
> SMPdesign/LockGranularity.eps | 243 --
> SMPdesign/MazeNumberPath.eps | 157 -
> SMPdesign/MemoryBarrierPairing.eps | 218 --
> SMPdesign/ParallelFastpath.eps | 213 -
> SMPdesign/allocatorcache.eps | 225 --
> SMPdesign/lockdeqhash.eps | 218 --
> SMPdesign/lockdeqhash1R.eps | 784 ----
> SMPdesign/lockdeqhashlots.eps | 479 ---
> SMPdesign/lockdeqpair.eps | 177 -
> advsync/.gitignore | 22 +
> advsync/.unused/MoreThanOneValue-15CPU-noresp.eps | 1306 -------
> advsync/AbstractMemoryAccessModel.eps | 191 -
> advsync/DataDependencyNeeded.eps | 775 ----
> advsync/DataDependencySupplied.eps | 738 ----
> advsync/MemoryArchitecture.eps | 327 --
> advsync/MemoryBarrierPairing.eps | 221 --
> advsync/MoreThanOneValue-15CPU.eps | 1306 -------
> advsync/MoreThanOneValue.eps | 200 -
> advsync/RCU-API.eps | 200 -
> advsync/RCUDeletion.eps | 253 --
> advsync/RCUInsertion.eps | 210 -
> advsync/RCUReaderGP.eps | 181 -
> advsync/RCUReaderGPExtends.eps | 199 -
> advsync/RCUReplacement.eps | 414 --
> advsync/ReadBarrierNeeded.eps | 673 ----
> advsync/ReadBarrierSupplied.eps | 693 ----
> advsync/ReadBarrierSupplied1.eps | 722 ----
> advsync/ReadBarrierSupplied2.eps | 699 ----
> advsync/SpeculativeLoad.eps | 603 ---
> advsync/SpeculativeLoadBarrier.eps | 595 ---
> advsync/SpeculativeLoadBarrierCancel.eps | 633 ---
> advsync/SplitCache.eps | 250 --
> advsync/WriteBarrierOrdering.eps | 613 ---
> appendix/questions/.gitignore | 1 +
> appendix/questions/after.eps | 170 -
> appendix/rcuhist/{ => .unused}/linux-RCU.eps | 0
> appendix/rcuhist/{ => .unused}/linux-RCUlock.eps | 0
> appendix/rcuhist/{ => .unused}/rcuAPI.eps | 0
> .../rcuimpl/{ => .unused}/AdvanceRCUCallbacks.fig | 0
> .../rcuimpl/{ => .unused}/BigTreeClassicRCU.fig | 0
> .../rcuimpl/{ => .unused}/BigTreeClassicRCUBH.fig | 0
> .../{ => .unused}/BigTreeClassicRCUBHdyntick.fig | 0
> appendix/rcuimpl/{ => .unused}/FlatClassicRCU.fig | 0
> .../{ => .unused}/GenericRCUStateMachine.fig | 0
> appendix/rcuimpl/{ => .unused}/GracePeriodBad.fig | 0
> appendix/rcuimpl/{ => .unused}/RCUTreeInit.fig | 0
> appendix/rcuimpl/{ => .unused}/RCUTreeLeafScan.fig | 0
> appendix/rcuimpl/{ => .unused}/RCUTreeQSScan.fig | 0
> appendix/rcuimpl/{ => .unused}/RCUbweBlock.fig | 0
> .../{ => .unused}/RCUpreemptCounterFlip.fig | 0
> appendix/rcuimpl/{ => .unused}/RCUpreemptLists.fig | 0
> .../{ => .unused}/RCUpreemptListsCompare.fig | 0
> .../rcuimpl/{ => .unused}/RCUpreemptStates.fig | 0
> .../rcuimpl/{ => .unused}/RCUpreemptTimeline.fig | 0
> .../rcuimpl/{ => .unused}/RCUpreemptValidation.fig | 0
> appendix/rcuimpl/{ => .unused}/RCUrt-MBnowaste.fig | 0
> appendix/rcuimpl/{ => .unused}/RCUrt-MBwaste.fig | 0
> .../rcuimpl/{ => .unused}/TinyRCUCallbacks.fig | 0
> appendix/rcuimpl/{ => .unused}/TreeClassicRCU.fig | 0
> .../rcuimpl/{ => .unused}/TreeClassicRCUGP.fig | 0
> appendix/rcuimpl/{ => .unused}/TreeMapping.fig | 0
> .../rcuimpl/{ => .unused}/TreeRCUStateMachine.fig | 0
> appendix/rcuimpl/{ => .unused}/srcuds.fig | 0
> appendix/rcuimpl/AdvanceRCUCallbacks.eps | 316 --
> appendix/rcuimpl/BigTreeClassicRCU.eps | 286 --
> appendix/rcuimpl/BigTreeClassicRCUBH.eps | 305 --
> appendix/rcuimpl/BigTreeClassicRCUBHdyntick.eps | 462 ---
> appendix/rcuimpl/FlatClassicRCU.eps | 254 --
> appendix/rcuimpl/GenericRCUStateMachine.eps | 514 ---
> appendix/rcuimpl/GracePeriodBad.eps | 194 -
> appendix/rcuimpl/RCUTreeInit.eps | 490 ---
> appendix/rcuimpl/RCUTreeLeafScan.eps | 504 ---
> appendix/rcuimpl/RCUTreeQSScan.eps | 504 ---
> appendix/rcuimpl/RCUbweBlock.eps | 575 ---
> appendix/rcuimpl/RCUpreemptCounterFlip.eps | 291 --
> appendix/rcuimpl/RCUpreemptLists.eps | 220 --
> appendix/rcuimpl/RCUpreemptListsCompare.eps | 311 --
> appendix/rcuimpl/RCUpreemptStates.eps | 4120 --------------------
> appendix/rcuimpl/RCUpreemptTimeline.eps | 351 --
> appendix/rcuimpl/RCUpreemptValidation.eps | 696 ----
> appendix/rcuimpl/RCUrt-MBnowaste.eps | 273 --
> appendix/rcuimpl/RCUrt-MBwaste.eps | 345 --
> appendix/rcuimpl/TinyRCUCallbacks.eps | 233 --
> appendix/rcuimpl/TreeClassicRCU.eps | 288 --
> appendix/rcuimpl/TreeClassicRCUGP.eps | 730 ----
> appendix/rcuimpl/TreeMapping.eps | 219 --
> appendix/rcuimpl/TreeRCUStateMachine.eps | 358 --
> appendix/rcuimpl/srcuds.eps | 268 --
> appendix/whymb/.gitignore | 7 +
> appendix/whymb/MESI.eps | 293 --
> appendix/whymb/cacheSB.eps | 216 -
> appendix/whymb/cacheSBf.eps | 247 --
> appendix/whymb/cacheSBfIQ.eps | 271 --
> appendix/whymb/cacheSC.eps | 150 -
> appendix/whymb/cacheSCwrite.eps | 170 -
> appendix/whymb/hostileordering.eps | 243 --
> count/.gitignore | 5 +
> count/GlobalInc.eps | 429 --
> count/GlobalTreeInc.eps | 501 ---
> count/PerThreadInc.eps | 421 --
> count/count_lim.eps | 177 -
> count/globbal.eps | 331 --
> cpu/.gitignore | 2 +
> cpu/3DI.eps | 193 -
> cpu/SystemArch.eps | 395 --
> datastruct/.gitignore | 1 +
> datastruct/hashdiagram.eps | 301 --
> defer/.gitignore | 10 +
> defer/GracePeriodGood.eps | 210 -
> defer/Linux_hlist.eps | 208 -
> defer/Linux_list.eps | 241 --
> defer/Linux_list_abbr.eps | 139 -
> defer/QSBRGracePeriod.eps | 255 --
> defer/RCUDeletion.eps | 253 --
> defer/RCUListDeleteClassic.eps | 328 --
> defer/RCUReplacement.eps | 470 ---
> defer/RCUenvAPI.eps | 214 -
> defer/rwlockRCUupdate.eps | 264 --
> formal/.gitignore | 1 +
> formal/RCUpreemptStates.eps | 4120 --------------------
> intro/.gitignore | 4 +
> intro/FourTaskCategories.eps | 261 --
> intro/FourTaskOrder.eps | 321 --
> intro/Generality.eps | 386 --
> intro/PPGrelation.eps | 165 -
> locking/.gitignore | 5 +
> locking/DeadlockCycle.eps | 227 --
> locking/LayeredLockHierarchy.eps | 222 --
> locking/LocalLockHierarchy.eps | 221 --
> locking/NonLocalLockHierarchy.eps | 221 --
> locking/rnplock.eps | 305 --
> toolsoftrade/.gitignore | 1 +
> toolsoftrade/shellparallel.eps | 210 -
> 137 files changed, 84 insertions(+), 41864 deletions(-)
> delete mode 100644 SMPdesign/AllocatorPool.eps
> delete mode 100644 SMPdesign/LockGranularity.eps
> delete mode 100644 SMPdesign/MazeNumberPath.eps
> delete mode 100644 SMPdesign/MemoryBarrierPairing.eps
> delete mode 100644 SMPdesign/ParallelFastpath.eps
> delete mode 100644 SMPdesign/allocatorcache.eps
> delete mode 100644 SMPdesign/lockdeqhash.eps
> delete mode 100644 SMPdesign/lockdeqhash1R.eps
> delete mode 100644 SMPdesign/lockdeqhashlots.eps
> delete mode 100644 SMPdesign/lockdeqpair.eps
> delete mode 100644 advsync/.unused/MoreThanOneValue-15CPU-noresp.eps
> delete mode 100644 advsync/AbstractMemoryAccessModel.eps
> delete mode 100644 advsync/DataDependencyNeeded.eps
> delete mode 100644 advsync/DataDependencySupplied.eps
> delete mode 100644 advsync/MemoryArchitecture.eps
> delete mode 100644 advsync/MemoryBarrierPairing.eps
> delete mode 100644 advsync/MoreThanOneValue-15CPU.eps
> delete mode 100644 advsync/MoreThanOneValue.eps
> delete mode 100644 advsync/RCU-API.eps
> delete mode 100644 advsync/RCUDeletion.eps
> delete mode 100644 advsync/RCUInsertion.eps
> delete mode 100644 advsync/RCUReaderGP.eps
> delete mode 100644 advsync/RCUReaderGPExtends.eps
> delete mode 100644 advsync/RCUReplacement.eps
> delete mode 100644 advsync/ReadBarrierNeeded.eps
> delete mode 100644 advsync/ReadBarrierSupplied.eps
> delete mode 100644 advsync/ReadBarrierSupplied1.eps
> delete mode 100644 advsync/ReadBarrierSupplied2.eps
> delete mode 100644 advsync/SpeculativeLoad.eps
> delete mode 100644 advsync/SpeculativeLoadBarrier.eps
> delete mode 100644 advsync/SpeculativeLoadBarrierCancel.eps
> delete mode 100644 advsync/SplitCache.eps
> delete mode 100644 advsync/WriteBarrierOrdering.eps
> create mode 100644 appendix/questions/.gitignore
> delete mode 100644 appendix/questions/after.eps
> rename appendix/rcuhist/{ => .unused}/linux-RCU.eps (100%)
> rename appendix/rcuhist/{ => .unused}/linux-RCUlock.eps (100%)
> rename appendix/rcuhist/{ => .unused}/rcuAPI.eps (100%)
> rename appendix/rcuimpl/{ => .unused}/AdvanceRCUCallbacks.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCU.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCUBH.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCUBHdyntick.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/FlatClassicRCU.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/GenericRCUStateMachine.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/GracePeriodBad.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/RCUTreeInit.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/RCUTreeLeafScan.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/RCUTreeQSScan.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/RCUbweBlock.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/RCUpreemptCounterFlip.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/RCUpreemptLists.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/RCUpreemptListsCompare.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/RCUpreemptStates.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/RCUpreemptTimeline.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/RCUpreemptValidation.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/RCUrt-MBnowaste.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/RCUrt-MBwaste.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/TinyRCUCallbacks.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/TreeClassicRCU.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/TreeClassicRCUGP.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/TreeMapping.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/TreeRCUStateMachine.fig (100%)
> rename appendix/rcuimpl/{ => .unused}/srcuds.fig (100%)
> delete mode 100644 appendix/rcuimpl/AdvanceRCUCallbacks.eps
> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCU.eps
> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCUBH.eps
> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCUBHdyntick.eps
> delete mode 100644 appendix/rcuimpl/FlatClassicRCU.eps
> delete mode 100644 appendix/rcuimpl/GenericRCUStateMachine.eps
> delete mode 100644 appendix/rcuimpl/GracePeriodBad.eps
> delete mode 100644 appendix/rcuimpl/RCUTreeInit.eps
> delete mode 100644 appendix/rcuimpl/RCUTreeLeafScan.eps
> delete mode 100644 appendix/rcuimpl/RCUTreeQSScan.eps
> delete mode 100644 appendix/rcuimpl/RCUbweBlock.eps
> delete mode 100644 appendix/rcuimpl/RCUpreemptCounterFlip.eps
> delete mode 100644 appendix/rcuimpl/RCUpreemptLists.eps
> delete mode 100644 appendix/rcuimpl/RCUpreemptListsCompare.eps
> delete mode 100644 appendix/rcuimpl/RCUpreemptStates.eps
> delete mode 100644 appendix/rcuimpl/RCUpreemptTimeline.eps
> delete mode 100644 appendix/rcuimpl/RCUpreemptValidation.eps
> delete mode 100644 appendix/rcuimpl/RCUrt-MBnowaste.eps
> delete mode 100644 appendix/rcuimpl/RCUrt-MBwaste.eps
> delete mode 100644 appendix/rcuimpl/TinyRCUCallbacks.eps
> delete mode 100644 appendix/rcuimpl/TreeClassicRCU.eps
> delete mode 100644 appendix/rcuimpl/TreeClassicRCUGP.eps
> delete mode 100644 appendix/rcuimpl/TreeMapping.eps
> delete mode 100644 appendix/rcuimpl/TreeRCUStateMachine.eps
> delete mode 100644 appendix/rcuimpl/srcuds.eps
> create mode 100644 appendix/whymb/.gitignore
> delete mode 100644 appendix/whymb/MESI.eps
> delete mode 100644 appendix/whymb/cacheSB.eps
> delete mode 100644 appendix/whymb/cacheSBf.eps
> delete mode 100644 appendix/whymb/cacheSBfIQ.eps
> delete mode 100644 appendix/whymb/cacheSC.eps
> delete mode 100644 appendix/whymb/cacheSCwrite.eps
> delete mode 100644 appendix/whymb/hostileordering.eps
> delete mode 100644 count/GlobalInc.eps
> delete mode 100644 count/GlobalTreeInc.eps
> delete mode 100644 count/PerThreadInc.eps
> delete mode 100644 count/count_lim.eps
> delete mode 100644 count/globbal.eps
> create mode 100644 cpu/.gitignore
> delete mode 100644 cpu/3DI.eps
> delete mode 100644 cpu/SystemArch.eps
> create mode 100644 datastruct/.gitignore
> delete mode 100644 datastruct/hashdiagram.eps
> create mode 100644 defer/.gitignore
> delete mode 100644 defer/GracePeriodGood.eps
> delete mode 100644 defer/Linux_hlist.eps
> delete mode 100644 defer/Linux_list.eps
> delete mode 100644 defer/Linux_list_abbr.eps
> delete mode 100644 defer/QSBRGracePeriod.eps
> delete mode 100644 defer/RCUDeletion.eps
> delete mode 100644 defer/RCUListDeleteClassic.eps
> delete mode 100644 defer/RCUReplacement.eps
> delete mode 100644 defer/RCUenvAPI.eps
> delete mode 100644 defer/rwlockRCUupdate.eps
> create mode 100644 formal/.gitignore
> delete mode 100644 formal/RCUpreemptStates.eps
> create mode 100644 intro/.gitignore
> delete mode 100644 intro/FourTaskCategories.eps
> delete mode 100644 intro/FourTaskOrder.eps
> delete mode 100644 intro/Generality.eps
> delete mode 100644 intro/PPGrelation.eps
> create mode 100644 locking/.gitignore
> delete mode 100644 locking/DeadlockCycle.eps
> delete mode 100644 locking/LayeredLockHierarchy.eps
> delete mode 100644 locking/LocalLockHierarchy.eps
> delete mode 100644 locking/NonLocalLockHierarchy.eps
> delete mode 100644 locking/rnplock.eps
> create mode 100644 toolsoftrade/.gitignore
> delete mode 100644 toolsoftrade/shellparallel.eps
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFT GIT PULL] Makefile: Add ".fig -> .eps" rule
2016-08-11 17:54 ` Paul E. McKenney
@ 2016-08-11 23:23 ` Akira Yokosawa
2016-08-11 23:24 ` Akira Yokosawa
2016-08-11 23:39 ` Paul E. McKenney
0 siblings, 2 replies; 9+ messages in thread
From: Akira Yokosawa @ 2016-08-11 23:23 UTC (permalink / raw)
To: paulmck; +Cc: perfbook, Akira Yokosawa
On 2016/08/11 10:54:03 -0700, Paul E. McKenney wrote:
> On Fri, Aug 12, 2016 at 12:14:20AM +0900, Akira Yokosawa wrote:
>> Hi Paul,
>>
>> As I said the other day, I added a rule for ".fig -> .eps" in Makefile and
>> evaluate the increase in time of the first build (or builds after
>> "make neatfreak").
>>
>> To reduce the build time, 2nd patch moves several currently unused ".fig" files
>> to ".unused" sub-directories.
>> 3rd patch removes ".eps" files in the repository whose sources are ".fig" files.
>> 4th patch updates ".gitignore"s to reflect the removed files.
>> 5th patch updates FAQ-BUILD.txt to notify people that we now need the "fig2ps"
>> package for "fig2eps" command on Ubuntu.
>>
>> The result of the evaluation is as follows.
>> Time is measured by "time" command such as "$ make neatfreak; time make -j4"
>> on a virtual machine with 4 cpus. The "real" times are collected from the output.
>> The value in each cell is the simple average of 4 samples.
>>
>> |before (sec)| after (sec)| |
>> no of thread | (1a508f6a) | (641b6a55) | diff (sec) | diff (%)
>> 1 | 141.8 | 153.5 | 11.7 | 8.3
>> 2 | 83.8 | 89.9 | 6.1 | 7.3
>> 3 | 64.7 | 68.8 | 4.1 | 6.3
>> 4 | 55.7 | 59.0 | 3.3 | 5.9
>>
>> As you may see, the time increase would be almost unnoticeable if you are
>> building with more than -j4.
>>
>> Of course, modification of Makefile needs to be fully tested before merging.
>> I've tested myself doing the above evaluation.
>>
>> If you are satisfied with the change, please consider merging.
>
> Hmmm...
>
> Pulling this, and then cloning into a new repository gets me this:
>
> $ make -j8
> SMPdesign/AllocatorPool.fig --> SMPdesign/AllocatorPool.eps
> make: *** [SMPdesign/AllocatorPool.eps] Error 127
> make: *** Waiting for unfinished jobs....
> SMPdesign/DiningPhilosopher5.tex --> SMPdesign/DiningPhilosopher5.eps
>
> I get the same error if I do "make neatfreak" beforehand.
>
> What am I doing wrong?
Does "make SMPdesign/AllocatorPool.eps" alone work?
If it does, then there might be an issue in highly parallel build...
Whew!
If it does not, please apply the patch to be sent in the following mail
on top of current "makefile-add-fig-eps-rule" branch, then do the single
make above, and send me the content of a temporary directory named
/tmp/xxxxxxxxxx (xxxxxxxxxx is a random name fig2eps generates) as a tar
archive.
If you do full build of perfbook after applying the patch, there will be
a lot of temporary directories left in /tmp and it may be hard to find
which one is that of SMPdesign/AllocatorPool.eps
>
> Thanx, Paul
>
>> Thanks, Akira
>>
>> -----
>> The following changes since commit 1a508f6ad8b6d4e722c8511c459ae7ae9d2591b5:
>>
>> Get .gitignore in right place for hash-table code (2016-08-10 16:14:18 -0700)
>>
>> are available in the git repository at:
>>
>> https://github.com/akiyks/perfbook.git makefile-add-fig-eps-rule
>>
>> for you to fetch changes up to 641b6a5541323d737b1e2ca31e9a805da19514f1:
>>
>> FAQ-BUILD.txt: Add 'fig2ps' as necessary package on Ubuntu (2016-08-11 22:50:02 +0900)
>>
>> ----------------------------------------------------------------
>> Akira Yokosawa (5):
>> Makefile: Add .fig -> .eps rule
>> Move unused .fig and .eps files to .unused directory
>> Remove .eps files whose sources are .fig files
>> Update and create .gitignore files
>> FAQ-BUILD.txt: Add 'fig2ps' as necessary package on Ubuntu
>>
>> FAQ-BUILD.txt | 2 +-
>> Makefile | 18 +-
>> SMPdesign/.gitignore | 10 +
>> SMPdesign/AllocatorPool.eps | 287 --
>> SMPdesign/LockGranularity.eps | 243 --
>> SMPdesign/MazeNumberPath.eps | 157 -
>> SMPdesign/MemoryBarrierPairing.eps | 218 --
>> SMPdesign/ParallelFastpath.eps | 213 -
>> SMPdesign/allocatorcache.eps | 225 --
>> SMPdesign/lockdeqhash.eps | 218 --
>> SMPdesign/lockdeqhash1R.eps | 784 ----
>> SMPdesign/lockdeqhashlots.eps | 479 ---
>> SMPdesign/lockdeqpair.eps | 177 -
>> advsync/.gitignore | 22 +
>> advsync/.unused/MoreThanOneValue-15CPU-noresp.eps | 1306 -------
>> advsync/AbstractMemoryAccessModel.eps | 191 -
>> advsync/DataDependencyNeeded.eps | 775 ----
>> advsync/DataDependencySupplied.eps | 738 ----
>> advsync/MemoryArchitecture.eps | 327 --
>> advsync/MemoryBarrierPairing.eps | 221 --
>> advsync/MoreThanOneValue-15CPU.eps | 1306 -------
>> advsync/MoreThanOneValue.eps | 200 -
>> advsync/RCU-API.eps | 200 -
>> advsync/RCUDeletion.eps | 253 --
>> advsync/RCUInsertion.eps | 210 -
>> advsync/RCUReaderGP.eps | 181 -
>> advsync/RCUReaderGPExtends.eps | 199 -
>> advsync/RCUReplacement.eps | 414 --
>> advsync/ReadBarrierNeeded.eps | 673 ----
>> advsync/ReadBarrierSupplied.eps | 693 ----
>> advsync/ReadBarrierSupplied1.eps | 722 ----
>> advsync/ReadBarrierSupplied2.eps | 699 ----
>> advsync/SpeculativeLoad.eps | 603 ---
>> advsync/SpeculativeLoadBarrier.eps | 595 ---
>> advsync/SpeculativeLoadBarrierCancel.eps | 633 ---
>> advsync/SplitCache.eps | 250 --
>> advsync/WriteBarrierOrdering.eps | 613 ---
>> appendix/questions/.gitignore | 1 +
>> appendix/questions/after.eps | 170 -
>> appendix/rcuhist/{ => .unused}/linux-RCU.eps | 0
>> appendix/rcuhist/{ => .unused}/linux-RCUlock.eps | 0
>> appendix/rcuhist/{ => .unused}/rcuAPI.eps | 0
>> .../rcuimpl/{ => .unused}/AdvanceRCUCallbacks.fig | 0
>> .../rcuimpl/{ => .unused}/BigTreeClassicRCU.fig | 0
>> .../rcuimpl/{ => .unused}/BigTreeClassicRCUBH.fig | 0
>> .../{ => .unused}/BigTreeClassicRCUBHdyntick.fig | 0
>> appendix/rcuimpl/{ => .unused}/FlatClassicRCU.fig | 0
>> .../{ => .unused}/GenericRCUStateMachine.fig | 0
>> appendix/rcuimpl/{ => .unused}/GracePeriodBad.fig | 0
>> appendix/rcuimpl/{ => .unused}/RCUTreeInit.fig | 0
>> appendix/rcuimpl/{ => .unused}/RCUTreeLeafScan.fig | 0
>> appendix/rcuimpl/{ => .unused}/RCUTreeQSScan.fig | 0
>> appendix/rcuimpl/{ => .unused}/RCUbweBlock.fig | 0
>> .../{ => .unused}/RCUpreemptCounterFlip.fig | 0
>> appendix/rcuimpl/{ => .unused}/RCUpreemptLists.fig | 0
>> .../{ => .unused}/RCUpreemptListsCompare.fig | 0
>> .../rcuimpl/{ => .unused}/RCUpreemptStates.fig | 0
>> .../rcuimpl/{ => .unused}/RCUpreemptTimeline.fig | 0
>> .../rcuimpl/{ => .unused}/RCUpreemptValidation.fig | 0
>> appendix/rcuimpl/{ => .unused}/RCUrt-MBnowaste.fig | 0
>> appendix/rcuimpl/{ => .unused}/RCUrt-MBwaste.fig | 0
>> .../rcuimpl/{ => .unused}/TinyRCUCallbacks.fig | 0
>> appendix/rcuimpl/{ => .unused}/TreeClassicRCU.fig | 0
>> .../rcuimpl/{ => .unused}/TreeClassicRCUGP.fig | 0
>> appendix/rcuimpl/{ => .unused}/TreeMapping.fig | 0
>> .../rcuimpl/{ => .unused}/TreeRCUStateMachine.fig | 0
>> appendix/rcuimpl/{ => .unused}/srcuds.fig | 0
>> appendix/rcuimpl/AdvanceRCUCallbacks.eps | 316 --
>> appendix/rcuimpl/BigTreeClassicRCU.eps | 286 --
>> appendix/rcuimpl/BigTreeClassicRCUBH.eps | 305 --
>> appendix/rcuimpl/BigTreeClassicRCUBHdyntick.eps | 462 ---
>> appendix/rcuimpl/FlatClassicRCU.eps | 254 --
>> appendix/rcuimpl/GenericRCUStateMachine.eps | 514 ---
>> appendix/rcuimpl/GracePeriodBad.eps | 194 -
>> appendix/rcuimpl/RCUTreeInit.eps | 490 ---
>> appendix/rcuimpl/RCUTreeLeafScan.eps | 504 ---
>> appendix/rcuimpl/RCUTreeQSScan.eps | 504 ---
>> appendix/rcuimpl/RCUbweBlock.eps | 575 ---
>> appendix/rcuimpl/RCUpreemptCounterFlip.eps | 291 --
>> appendix/rcuimpl/RCUpreemptLists.eps | 220 --
>> appendix/rcuimpl/RCUpreemptListsCompare.eps | 311 --
>> appendix/rcuimpl/RCUpreemptStates.eps | 4120 --------------------
>> appendix/rcuimpl/RCUpreemptTimeline.eps | 351 --
>> appendix/rcuimpl/RCUpreemptValidation.eps | 696 ----
>> appendix/rcuimpl/RCUrt-MBnowaste.eps | 273 --
>> appendix/rcuimpl/RCUrt-MBwaste.eps | 345 --
>> appendix/rcuimpl/TinyRCUCallbacks.eps | 233 --
>> appendix/rcuimpl/TreeClassicRCU.eps | 288 --
>> appendix/rcuimpl/TreeClassicRCUGP.eps | 730 ----
>> appendix/rcuimpl/TreeMapping.eps | 219 --
>> appendix/rcuimpl/TreeRCUStateMachine.eps | 358 --
>> appendix/rcuimpl/srcuds.eps | 268 --
>> appendix/whymb/.gitignore | 7 +
>> appendix/whymb/MESI.eps | 293 --
>> appendix/whymb/cacheSB.eps | 216 -
>> appendix/whymb/cacheSBf.eps | 247 --
>> appendix/whymb/cacheSBfIQ.eps | 271 --
>> appendix/whymb/cacheSC.eps | 150 -
>> appendix/whymb/cacheSCwrite.eps | 170 -
>> appendix/whymb/hostileordering.eps | 243 --
>> count/.gitignore | 5 +
>> count/GlobalInc.eps | 429 --
>> count/GlobalTreeInc.eps | 501 ---
>> count/PerThreadInc.eps | 421 --
>> count/count_lim.eps | 177 -
>> count/globbal.eps | 331 --
>> cpu/.gitignore | 2 +
>> cpu/3DI.eps | 193 -
>> cpu/SystemArch.eps | 395 --
>> datastruct/.gitignore | 1 +
>> datastruct/hashdiagram.eps | 301 --
>> defer/.gitignore | 10 +
>> defer/GracePeriodGood.eps | 210 -
>> defer/Linux_hlist.eps | 208 -
>> defer/Linux_list.eps | 241 --
>> defer/Linux_list_abbr.eps | 139 -
>> defer/QSBRGracePeriod.eps | 255 --
>> defer/RCUDeletion.eps | 253 --
>> defer/RCUListDeleteClassic.eps | 328 --
>> defer/RCUReplacement.eps | 470 ---
>> defer/RCUenvAPI.eps | 214 -
>> defer/rwlockRCUupdate.eps | 264 --
>> formal/.gitignore | 1 +
>> formal/RCUpreemptStates.eps | 4120 --------------------
>> intro/.gitignore | 4 +
>> intro/FourTaskCategories.eps | 261 --
>> intro/FourTaskOrder.eps | 321 --
>> intro/Generality.eps | 386 --
>> intro/PPGrelation.eps | 165 -
>> locking/.gitignore | 5 +
>> locking/DeadlockCycle.eps | 227 --
>> locking/LayeredLockHierarchy.eps | 222 --
>> locking/LocalLockHierarchy.eps | 221 --
>> locking/NonLocalLockHierarchy.eps | 221 --
>> locking/rnplock.eps | 305 --
>> toolsoftrade/.gitignore | 1 +
>> toolsoftrade/shellparallel.eps | 210 -
>> 137 files changed, 84 insertions(+), 41864 deletions(-)
>> delete mode 100644 SMPdesign/AllocatorPool.eps
>> delete mode 100644 SMPdesign/LockGranularity.eps
>> delete mode 100644 SMPdesign/MazeNumberPath.eps
>> delete mode 100644 SMPdesign/MemoryBarrierPairing.eps
>> delete mode 100644 SMPdesign/ParallelFastpath.eps
>> delete mode 100644 SMPdesign/allocatorcache.eps
>> delete mode 100644 SMPdesign/lockdeqhash.eps
>> delete mode 100644 SMPdesign/lockdeqhash1R.eps
>> delete mode 100644 SMPdesign/lockdeqhashlots.eps
>> delete mode 100644 SMPdesign/lockdeqpair.eps
>> delete mode 100644 advsync/.unused/MoreThanOneValue-15CPU-noresp.eps
>> delete mode 100644 advsync/AbstractMemoryAccessModel.eps
>> delete mode 100644 advsync/DataDependencyNeeded.eps
>> delete mode 100644 advsync/DataDependencySupplied.eps
>> delete mode 100644 advsync/MemoryArchitecture.eps
>> delete mode 100644 advsync/MemoryBarrierPairing.eps
>> delete mode 100644 advsync/MoreThanOneValue-15CPU.eps
>> delete mode 100644 advsync/MoreThanOneValue.eps
>> delete mode 100644 advsync/RCU-API.eps
>> delete mode 100644 advsync/RCUDeletion.eps
>> delete mode 100644 advsync/RCUInsertion.eps
>> delete mode 100644 advsync/RCUReaderGP.eps
>> delete mode 100644 advsync/RCUReaderGPExtends.eps
>> delete mode 100644 advsync/RCUReplacement.eps
>> delete mode 100644 advsync/ReadBarrierNeeded.eps
>> delete mode 100644 advsync/ReadBarrierSupplied.eps
>> delete mode 100644 advsync/ReadBarrierSupplied1.eps
>> delete mode 100644 advsync/ReadBarrierSupplied2.eps
>> delete mode 100644 advsync/SpeculativeLoad.eps
>> delete mode 100644 advsync/SpeculativeLoadBarrier.eps
>> delete mode 100644 advsync/SpeculativeLoadBarrierCancel.eps
>> delete mode 100644 advsync/SplitCache.eps
>> delete mode 100644 advsync/WriteBarrierOrdering.eps
>> create mode 100644 appendix/questions/.gitignore
>> delete mode 100644 appendix/questions/after.eps
>> rename appendix/rcuhist/{ => .unused}/linux-RCU.eps (100%)
>> rename appendix/rcuhist/{ => .unused}/linux-RCUlock.eps (100%)
>> rename appendix/rcuhist/{ => .unused}/rcuAPI.eps (100%)
>> rename appendix/rcuimpl/{ => .unused}/AdvanceRCUCallbacks.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCU.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCUBH.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCUBHdyntick.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/FlatClassicRCU.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/GenericRCUStateMachine.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/GracePeriodBad.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/RCUTreeInit.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/RCUTreeLeafScan.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/RCUTreeQSScan.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/RCUbweBlock.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptCounterFlip.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptLists.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptListsCompare.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptStates.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptTimeline.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptValidation.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/RCUrt-MBnowaste.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/RCUrt-MBwaste.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/TinyRCUCallbacks.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/TreeClassicRCU.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/TreeClassicRCUGP.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/TreeMapping.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/TreeRCUStateMachine.fig (100%)
>> rename appendix/rcuimpl/{ => .unused}/srcuds.fig (100%)
>> delete mode 100644 appendix/rcuimpl/AdvanceRCUCallbacks.eps
>> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCU.eps
>> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCUBH.eps
>> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCUBHdyntick.eps
>> delete mode 100644 appendix/rcuimpl/FlatClassicRCU.eps
>> delete mode 100644 appendix/rcuimpl/GenericRCUStateMachine.eps
>> delete mode 100644 appendix/rcuimpl/GracePeriodBad.eps
>> delete mode 100644 appendix/rcuimpl/RCUTreeInit.eps
>> delete mode 100644 appendix/rcuimpl/RCUTreeLeafScan.eps
>> delete mode 100644 appendix/rcuimpl/RCUTreeQSScan.eps
>> delete mode 100644 appendix/rcuimpl/RCUbweBlock.eps
>> delete mode 100644 appendix/rcuimpl/RCUpreemptCounterFlip.eps
>> delete mode 100644 appendix/rcuimpl/RCUpreemptLists.eps
>> delete mode 100644 appendix/rcuimpl/RCUpreemptListsCompare.eps
>> delete mode 100644 appendix/rcuimpl/RCUpreemptStates.eps
>> delete mode 100644 appendix/rcuimpl/RCUpreemptTimeline.eps
>> delete mode 100644 appendix/rcuimpl/RCUpreemptValidation.eps
>> delete mode 100644 appendix/rcuimpl/RCUrt-MBnowaste.eps
>> delete mode 100644 appendix/rcuimpl/RCUrt-MBwaste.eps
>> delete mode 100644 appendix/rcuimpl/TinyRCUCallbacks.eps
>> delete mode 100644 appendix/rcuimpl/TreeClassicRCU.eps
>> delete mode 100644 appendix/rcuimpl/TreeClassicRCUGP.eps
>> delete mode 100644 appendix/rcuimpl/TreeMapping.eps
>> delete mode 100644 appendix/rcuimpl/TreeRCUStateMachine.eps
>> delete mode 100644 appendix/rcuimpl/srcuds.eps
>> create mode 100644 appendix/whymb/.gitignore
>> delete mode 100644 appendix/whymb/MESI.eps
>> delete mode 100644 appendix/whymb/cacheSB.eps
>> delete mode 100644 appendix/whymb/cacheSBf.eps
>> delete mode 100644 appendix/whymb/cacheSBfIQ.eps
>> delete mode 100644 appendix/whymb/cacheSC.eps
>> delete mode 100644 appendix/whymb/cacheSCwrite.eps
>> delete mode 100644 appendix/whymb/hostileordering.eps
>> delete mode 100644 count/GlobalInc.eps
>> delete mode 100644 count/GlobalTreeInc.eps
>> delete mode 100644 count/PerThreadInc.eps
>> delete mode 100644 count/count_lim.eps
>> delete mode 100644 count/globbal.eps
>> create mode 100644 cpu/.gitignore
>> delete mode 100644 cpu/3DI.eps
>> delete mode 100644 cpu/SystemArch.eps
>> create mode 100644 datastruct/.gitignore
>> delete mode 100644 datastruct/hashdiagram.eps
>> create mode 100644 defer/.gitignore
>> delete mode 100644 defer/GracePeriodGood.eps
>> delete mode 100644 defer/Linux_hlist.eps
>> delete mode 100644 defer/Linux_list.eps
>> delete mode 100644 defer/Linux_list_abbr.eps
>> delete mode 100644 defer/QSBRGracePeriod.eps
>> delete mode 100644 defer/RCUDeletion.eps
>> delete mode 100644 defer/RCUListDeleteClassic.eps
>> delete mode 100644 defer/RCUReplacement.eps
>> delete mode 100644 defer/RCUenvAPI.eps
>> delete mode 100644 defer/rwlockRCUupdate.eps
>> create mode 100644 formal/.gitignore
>> delete mode 100644 formal/RCUpreemptStates.eps
>> create mode 100644 intro/.gitignore
>> delete mode 100644 intro/FourTaskCategories.eps
>> delete mode 100644 intro/FourTaskOrder.eps
>> delete mode 100644 intro/Generality.eps
>> delete mode 100644 intro/PPGrelation.eps
>> create mode 100644 locking/.gitignore
>> delete mode 100644 locking/DeadlockCycle.eps
>> delete mode 100644 locking/LayeredLockHierarchy.eps
>> delete mode 100644 locking/LocalLockHierarchy.eps
>> delete mode 100644 locking/NonLocalLockHierarchy.eps
>> delete mode 100644 locking/rnplock.eps
>> create mode 100644 toolsoftrade/.gitignore
>> delete mode 100644 toolsoftrade/shellparallel.eps
>>
>
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFT GIT PULL] Makefile: Add ".fig -> .eps" rule
2016-08-11 23:23 ` Akira Yokosawa
@ 2016-08-11 23:24 ` Akira Yokosawa
2016-08-11 23:39 ` Paul E. McKenney
1 sibling, 0 replies; 9+ messages in thread
From: Akira Yokosawa @ 2016-08-11 23:24 UTC (permalink / raw)
To: paulmck; +Cc: perfbook, Akira Yokosawa
From 6cfc7b3b1642c5b80badd9efeb582d24e9a9293c Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Fri, 12 Aug 2016 08:01:01 +0900
Subject: [PATCH] Makefile: Enable fig2eps --keep option for debugging
Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index d50420d..be5c50a 100644
--- a/Makefile
+++ b/Makefile
@@ -112,7 +112,7 @@ $(EPSSOURCES_FROM_DOT): %.eps: %.dot
$(EPSSOURCES_FROM_FIG): %.eps: %.fig
@echo "$< --> $@"
- @fig2eps --nogv $< > /dev/null 2>&1
+ @fig2eps --nogv --keep $<
@sh utilities/fixanepsfonts.sh $@
$(PDFTARGETS_OF_EPS): %.pdf: %.eps
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [RFT GIT PULL] Makefile: Add ".fig -> .eps" rule
2016-08-11 23:23 ` Akira Yokosawa
2016-08-11 23:24 ` Akira Yokosawa
@ 2016-08-11 23:39 ` Paul E. McKenney
2016-08-11 23:47 ` Akira Yokosawa
1 sibling, 1 reply; 9+ messages in thread
From: Paul E. McKenney @ 2016-08-11 23:39 UTC (permalink / raw)
To: Akira Yokosawa; +Cc: perfbook
On Fri, Aug 12, 2016 at 08:23:15AM +0900, Akira Yokosawa wrote:
> On 2016/08/11 10:54:03 -0700, Paul E. McKenney wrote:
> > On Fri, Aug 12, 2016 at 12:14:20AM +0900, Akira Yokosawa wrote:
> >> Hi Paul,
> >>
> >> As I said the other day, I added a rule for ".fig -> .eps" in Makefile and
> >> evaluate the increase in time of the first build (or builds after
> >> "make neatfreak").
> >>
> >> To reduce the build time, 2nd patch moves several currently unused ".fig" files
> >> to ".unused" sub-directories.
> >> 3rd patch removes ".eps" files in the repository whose sources are ".fig" files.
> >> 4th patch updates ".gitignore"s to reflect the removed files.
> >> 5th patch updates FAQ-BUILD.txt to notify people that we now need the "fig2ps"
> >> package for "fig2eps" command on Ubuntu.
> >>
> >> The result of the evaluation is as follows.
> >> Time is measured by "time" command such as "$ make neatfreak; time make -j4"
> >> on a virtual machine with 4 cpus. The "real" times are collected from the output.
> >> The value in each cell is the simple average of 4 samples.
> >>
> >> |before (sec)| after (sec)| |
> >> no of thread | (1a508f6a) | (641b6a55) | diff (sec) | diff (%)
> >> 1 | 141.8 | 153.5 | 11.7 | 8.3
> >> 2 | 83.8 | 89.9 | 6.1 | 7.3
> >> 3 | 64.7 | 68.8 | 4.1 | 6.3
> >> 4 | 55.7 | 59.0 | 3.3 | 5.9
> >>
> >> As you may see, the time increase would be almost unnoticeable if you are
> >> building with more than -j4.
> >>
> >> Of course, modification of Makefile needs to be fully tested before merging.
> >> I've tested myself doing the above evaluation.
> >>
> >> If you are satisfied with the change, please consider merging.
> >
> > Hmmm...
> >
> > Pulling this, and then cloning into a new repository gets me this:
> >
> > $ make -j8
> > SMPdesign/AllocatorPool.fig --> SMPdesign/AllocatorPool.eps
> > make: *** [SMPdesign/AllocatorPool.eps] Error 127
> > make: *** Waiting for unfinished jobs....
> > SMPdesign/DiningPhilosopher5.tex --> SMPdesign/DiningPhilosopher5.eps
> >
> > I get the same error if I do "make neatfreak" beforehand.
> >
> > What am I doing wrong?
>
> Does "make SMPdesign/AllocatorPool.eps" alone work?
>
> If it does, then there might be an issue in highly parallel build...
> Whew!
Sorry, but no joy:
$ make SMPdesign/AllocatorPool.eps
SMPdesign/AllocatorPool.fig --> SMPdesign/AllocatorPool.eps
make: *** [SMPdesign/AllocatorPool.eps] Error 127
Hmmm... How about if I install fig2ps? :-/
When I do that, it seems to build just fine, apologies for the noise!
Thanx, Paul
> If it does not, please apply the patch to be sent in the following mail
> on top of current "makefile-add-fig-eps-rule" branch, then do the single
> make above, and send me the content of a temporary directory named
> /tmp/xxxxxxxxxx (xxxxxxxxxx is a random name fig2eps generates) as a tar
> archive.
>
> If you do full build of perfbook after applying the patch, there will be
> a lot of temporary directories left in /tmp and it may be hard to find
> which one is that of SMPdesign/AllocatorPool.eps
>
> >
> > Thanx, Paul
> >
> >> Thanks, Akira
> >>
> >> -----
> >> The following changes since commit 1a508f6ad8b6d4e722c8511c459ae7ae9d2591b5:
> >>
> >> Get .gitignore in right place for hash-table code (2016-08-10 16:14:18 -0700)
> >>
> >> are available in the git repository at:
> >>
> >> https://github.com/akiyks/perfbook.git makefile-add-fig-eps-rule
> >>
> >> for you to fetch changes up to 641b6a5541323d737b1e2ca31e9a805da19514f1:
> >>
> >> FAQ-BUILD.txt: Add 'fig2ps' as necessary package on Ubuntu (2016-08-11 22:50:02 +0900)
> >>
> >> ----------------------------------------------------------------
> >> Akira Yokosawa (5):
> >> Makefile: Add .fig -> .eps rule
> >> Move unused .fig and .eps files to .unused directory
> >> Remove .eps files whose sources are .fig files
> >> Update and create .gitignore files
> >> FAQ-BUILD.txt: Add 'fig2ps' as necessary package on Ubuntu
> >>
> >> FAQ-BUILD.txt | 2 +-
> >> Makefile | 18 +-
> >> SMPdesign/.gitignore | 10 +
> >> SMPdesign/AllocatorPool.eps | 287 --
> >> SMPdesign/LockGranularity.eps | 243 --
> >> SMPdesign/MazeNumberPath.eps | 157 -
> >> SMPdesign/MemoryBarrierPairing.eps | 218 --
> >> SMPdesign/ParallelFastpath.eps | 213 -
> >> SMPdesign/allocatorcache.eps | 225 --
> >> SMPdesign/lockdeqhash.eps | 218 --
> >> SMPdesign/lockdeqhash1R.eps | 784 ----
> >> SMPdesign/lockdeqhashlots.eps | 479 ---
> >> SMPdesign/lockdeqpair.eps | 177 -
> >> advsync/.gitignore | 22 +
> >> advsync/.unused/MoreThanOneValue-15CPU-noresp.eps | 1306 -------
> >> advsync/AbstractMemoryAccessModel.eps | 191 -
> >> advsync/DataDependencyNeeded.eps | 775 ----
> >> advsync/DataDependencySupplied.eps | 738 ----
> >> advsync/MemoryArchitecture.eps | 327 --
> >> advsync/MemoryBarrierPairing.eps | 221 --
> >> advsync/MoreThanOneValue-15CPU.eps | 1306 -------
> >> advsync/MoreThanOneValue.eps | 200 -
> >> advsync/RCU-API.eps | 200 -
> >> advsync/RCUDeletion.eps | 253 --
> >> advsync/RCUInsertion.eps | 210 -
> >> advsync/RCUReaderGP.eps | 181 -
> >> advsync/RCUReaderGPExtends.eps | 199 -
> >> advsync/RCUReplacement.eps | 414 --
> >> advsync/ReadBarrierNeeded.eps | 673 ----
> >> advsync/ReadBarrierSupplied.eps | 693 ----
> >> advsync/ReadBarrierSupplied1.eps | 722 ----
> >> advsync/ReadBarrierSupplied2.eps | 699 ----
> >> advsync/SpeculativeLoad.eps | 603 ---
> >> advsync/SpeculativeLoadBarrier.eps | 595 ---
> >> advsync/SpeculativeLoadBarrierCancel.eps | 633 ---
> >> advsync/SplitCache.eps | 250 --
> >> advsync/WriteBarrierOrdering.eps | 613 ---
> >> appendix/questions/.gitignore | 1 +
> >> appendix/questions/after.eps | 170 -
> >> appendix/rcuhist/{ => .unused}/linux-RCU.eps | 0
> >> appendix/rcuhist/{ => .unused}/linux-RCUlock.eps | 0
> >> appendix/rcuhist/{ => .unused}/rcuAPI.eps | 0
> >> .../rcuimpl/{ => .unused}/AdvanceRCUCallbacks.fig | 0
> >> .../rcuimpl/{ => .unused}/BigTreeClassicRCU.fig | 0
> >> .../rcuimpl/{ => .unused}/BigTreeClassicRCUBH.fig | 0
> >> .../{ => .unused}/BigTreeClassicRCUBHdyntick.fig | 0
> >> appendix/rcuimpl/{ => .unused}/FlatClassicRCU.fig | 0
> >> .../{ => .unused}/GenericRCUStateMachine.fig | 0
> >> appendix/rcuimpl/{ => .unused}/GracePeriodBad.fig | 0
> >> appendix/rcuimpl/{ => .unused}/RCUTreeInit.fig | 0
> >> appendix/rcuimpl/{ => .unused}/RCUTreeLeafScan.fig | 0
> >> appendix/rcuimpl/{ => .unused}/RCUTreeQSScan.fig | 0
> >> appendix/rcuimpl/{ => .unused}/RCUbweBlock.fig | 0
> >> .../{ => .unused}/RCUpreemptCounterFlip.fig | 0
> >> appendix/rcuimpl/{ => .unused}/RCUpreemptLists.fig | 0
> >> .../{ => .unused}/RCUpreemptListsCompare.fig | 0
> >> .../rcuimpl/{ => .unused}/RCUpreemptStates.fig | 0
> >> .../rcuimpl/{ => .unused}/RCUpreemptTimeline.fig | 0
> >> .../rcuimpl/{ => .unused}/RCUpreemptValidation.fig | 0
> >> appendix/rcuimpl/{ => .unused}/RCUrt-MBnowaste.fig | 0
> >> appendix/rcuimpl/{ => .unused}/RCUrt-MBwaste.fig | 0
> >> .../rcuimpl/{ => .unused}/TinyRCUCallbacks.fig | 0
> >> appendix/rcuimpl/{ => .unused}/TreeClassicRCU.fig | 0
> >> .../rcuimpl/{ => .unused}/TreeClassicRCUGP.fig | 0
> >> appendix/rcuimpl/{ => .unused}/TreeMapping.fig | 0
> >> .../rcuimpl/{ => .unused}/TreeRCUStateMachine.fig | 0
> >> appendix/rcuimpl/{ => .unused}/srcuds.fig | 0
> >> appendix/rcuimpl/AdvanceRCUCallbacks.eps | 316 --
> >> appendix/rcuimpl/BigTreeClassicRCU.eps | 286 --
> >> appendix/rcuimpl/BigTreeClassicRCUBH.eps | 305 --
> >> appendix/rcuimpl/BigTreeClassicRCUBHdyntick.eps | 462 ---
> >> appendix/rcuimpl/FlatClassicRCU.eps | 254 --
> >> appendix/rcuimpl/GenericRCUStateMachine.eps | 514 ---
> >> appendix/rcuimpl/GracePeriodBad.eps | 194 -
> >> appendix/rcuimpl/RCUTreeInit.eps | 490 ---
> >> appendix/rcuimpl/RCUTreeLeafScan.eps | 504 ---
> >> appendix/rcuimpl/RCUTreeQSScan.eps | 504 ---
> >> appendix/rcuimpl/RCUbweBlock.eps | 575 ---
> >> appendix/rcuimpl/RCUpreemptCounterFlip.eps | 291 --
> >> appendix/rcuimpl/RCUpreemptLists.eps | 220 --
> >> appendix/rcuimpl/RCUpreemptListsCompare.eps | 311 --
> >> appendix/rcuimpl/RCUpreemptStates.eps | 4120 --------------------
> >> appendix/rcuimpl/RCUpreemptTimeline.eps | 351 --
> >> appendix/rcuimpl/RCUpreemptValidation.eps | 696 ----
> >> appendix/rcuimpl/RCUrt-MBnowaste.eps | 273 --
> >> appendix/rcuimpl/RCUrt-MBwaste.eps | 345 --
> >> appendix/rcuimpl/TinyRCUCallbacks.eps | 233 --
> >> appendix/rcuimpl/TreeClassicRCU.eps | 288 --
> >> appendix/rcuimpl/TreeClassicRCUGP.eps | 730 ----
> >> appendix/rcuimpl/TreeMapping.eps | 219 --
> >> appendix/rcuimpl/TreeRCUStateMachine.eps | 358 --
> >> appendix/rcuimpl/srcuds.eps | 268 --
> >> appendix/whymb/.gitignore | 7 +
> >> appendix/whymb/MESI.eps | 293 --
> >> appendix/whymb/cacheSB.eps | 216 -
> >> appendix/whymb/cacheSBf.eps | 247 --
> >> appendix/whymb/cacheSBfIQ.eps | 271 --
> >> appendix/whymb/cacheSC.eps | 150 -
> >> appendix/whymb/cacheSCwrite.eps | 170 -
> >> appendix/whymb/hostileordering.eps | 243 --
> >> count/.gitignore | 5 +
> >> count/GlobalInc.eps | 429 --
> >> count/GlobalTreeInc.eps | 501 ---
> >> count/PerThreadInc.eps | 421 --
> >> count/count_lim.eps | 177 -
> >> count/globbal.eps | 331 --
> >> cpu/.gitignore | 2 +
> >> cpu/3DI.eps | 193 -
> >> cpu/SystemArch.eps | 395 --
> >> datastruct/.gitignore | 1 +
> >> datastruct/hashdiagram.eps | 301 --
> >> defer/.gitignore | 10 +
> >> defer/GracePeriodGood.eps | 210 -
> >> defer/Linux_hlist.eps | 208 -
> >> defer/Linux_list.eps | 241 --
> >> defer/Linux_list_abbr.eps | 139 -
> >> defer/QSBRGracePeriod.eps | 255 --
> >> defer/RCUDeletion.eps | 253 --
> >> defer/RCUListDeleteClassic.eps | 328 --
> >> defer/RCUReplacement.eps | 470 ---
> >> defer/RCUenvAPI.eps | 214 -
> >> defer/rwlockRCUupdate.eps | 264 --
> >> formal/.gitignore | 1 +
> >> formal/RCUpreemptStates.eps | 4120 --------------------
> >> intro/.gitignore | 4 +
> >> intro/FourTaskCategories.eps | 261 --
> >> intro/FourTaskOrder.eps | 321 --
> >> intro/Generality.eps | 386 --
> >> intro/PPGrelation.eps | 165 -
> >> locking/.gitignore | 5 +
> >> locking/DeadlockCycle.eps | 227 --
> >> locking/LayeredLockHierarchy.eps | 222 --
> >> locking/LocalLockHierarchy.eps | 221 --
> >> locking/NonLocalLockHierarchy.eps | 221 --
> >> locking/rnplock.eps | 305 --
> >> toolsoftrade/.gitignore | 1 +
> >> toolsoftrade/shellparallel.eps | 210 -
> >> 137 files changed, 84 insertions(+), 41864 deletions(-)
> >> delete mode 100644 SMPdesign/AllocatorPool.eps
> >> delete mode 100644 SMPdesign/LockGranularity.eps
> >> delete mode 100644 SMPdesign/MazeNumberPath.eps
> >> delete mode 100644 SMPdesign/MemoryBarrierPairing.eps
> >> delete mode 100644 SMPdesign/ParallelFastpath.eps
> >> delete mode 100644 SMPdesign/allocatorcache.eps
> >> delete mode 100644 SMPdesign/lockdeqhash.eps
> >> delete mode 100644 SMPdesign/lockdeqhash1R.eps
> >> delete mode 100644 SMPdesign/lockdeqhashlots.eps
> >> delete mode 100644 SMPdesign/lockdeqpair.eps
> >> delete mode 100644 advsync/.unused/MoreThanOneValue-15CPU-noresp.eps
> >> delete mode 100644 advsync/AbstractMemoryAccessModel.eps
> >> delete mode 100644 advsync/DataDependencyNeeded.eps
> >> delete mode 100644 advsync/DataDependencySupplied.eps
> >> delete mode 100644 advsync/MemoryArchitecture.eps
> >> delete mode 100644 advsync/MemoryBarrierPairing.eps
> >> delete mode 100644 advsync/MoreThanOneValue-15CPU.eps
> >> delete mode 100644 advsync/MoreThanOneValue.eps
> >> delete mode 100644 advsync/RCU-API.eps
> >> delete mode 100644 advsync/RCUDeletion.eps
> >> delete mode 100644 advsync/RCUInsertion.eps
> >> delete mode 100644 advsync/RCUReaderGP.eps
> >> delete mode 100644 advsync/RCUReaderGPExtends.eps
> >> delete mode 100644 advsync/RCUReplacement.eps
> >> delete mode 100644 advsync/ReadBarrierNeeded.eps
> >> delete mode 100644 advsync/ReadBarrierSupplied.eps
> >> delete mode 100644 advsync/ReadBarrierSupplied1.eps
> >> delete mode 100644 advsync/ReadBarrierSupplied2.eps
> >> delete mode 100644 advsync/SpeculativeLoad.eps
> >> delete mode 100644 advsync/SpeculativeLoadBarrier.eps
> >> delete mode 100644 advsync/SpeculativeLoadBarrierCancel.eps
> >> delete mode 100644 advsync/SplitCache.eps
> >> delete mode 100644 advsync/WriteBarrierOrdering.eps
> >> create mode 100644 appendix/questions/.gitignore
> >> delete mode 100644 appendix/questions/after.eps
> >> rename appendix/rcuhist/{ => .unused}/linux-RCU.eps (100%)
> >> rename appendix/rcuhist/{ => .unused}/linux-RCUlock.eps (100%)
> >> rename appendix/rcuhist/{ => .unused}/rcuAPI.eps (100%)
> >> rename appendix/rcuimpl/{ => .unused}/AdvanceRCUCallbacks.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCU.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCUBH.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCUBHdyntick.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/FlatClassicRCU.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/GenericRCUStateMachine.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/GracePeriodBad.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/RCUTreeInit.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/RCUTreeLeafScan.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/RCUTreeQSScan.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/RCUbweBlock.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/RCUpreemptCounterFlip.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/RCUpreemptLists.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/RCUpreemptListsCompare.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/RCUpreemptStates.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/RCUpreemptTimeline.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/RCUpreemptValidation.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/RCUrt-MBnowaste.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/RCUrt-MBwaste.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/TinyRCUCallbacks.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/TreeClassicRCU.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/TreeClassicRCUGP.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/TreeMapping.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/TreeRCUStateMachine.fig (100%)
> >> rename appendix/rcuimpl/{ => .unused}/srcuds.fig (100%)
> >> delete mode 100644 appendix/rcuimpl/AdvanceRCUCallbacks.eps
> >> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCU.eps
> >> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCUBH.eps
> >> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCUBHdyntick.eps
> >> delete mode 100644 appendix/rcuimpl/FlatClassicRCU.eps
> >> delete mode 100644 appendix/rcuimpl/GenericRCUStateMachine.eps
> >> delete mode 100644 appendix/rcuimpl/GracePeriodBad.eps
> >> delete mode 100644 appendix/rcuimpl/RCUTreeInit.eps
> >> delete mode 100644 appendix/rcuimpl/RCUTreeLeafScan.eps
> >> delete mode 100644 appendix/rcuimpl/RCUTreeQSScan.eps
> >> delete mode 100644 appendix/rcuimpl/RCUbweBlock.eps
> >> delete mode 100644 appendix/rcuimpl/RCUpreemptCounterFlip.eps
> >> delete mode 100644 appendix/rcuimpl/RCUpreemptLists.eps
> >> delete mode 100644 appendix/rcuimpl/RCUpreemptListsCompare.eps
> >> delete mode 100644 appendix/rcuimpl/RCUpreemptStates.eps
> >> delete mode 100644 appendix/rcuimpl/RCUpreemptTimeline.eps
> >> delete mode 100644 appendix/rcuimpl/RCUpreemptValidation.eps
> >> delete mode 100644 appendix/rcuimpl/RCUrt-MBnowaste.eps
> >> delete mode 100644 appendix/rcuimpl/RCUrt-MBwaste.eps
> >> delete mode 100644 appendix/rcuimpl/TinyRCUCallbacks.eps
> >> delete mode 100644 appendix/rcuimpl/TreeClassicRCU.eps
> >> delete mode 100644 appendix/rcuimpl/TreeClassicRCUGP.eps
> >> delete mode 100644 appendix/rcuimpl/TreeMapping.eps
> >> delete mode 100644 appendix/rcuimpl/TreeRCUStateMachine.eps
> >> delete mode 100644 appendix/rcuimpl/srcuds.eps
> >> create mode 100644 appendix/whymb/.gitignore
> >> delete mode 100644 appendix/whymb/MESI.eps
> >> delete mode 100644 appendix/whymb/cacheSB.eps
> >> delete mode 100644 appendix/whymb/cacheSBf.eps
> >> delete mode 100644 appendix/whymb/cacheSBfIQ.eps
> >> delete mode 100644 appendix/whymb/cacheSC.eps
> >> delete mode 100644 appendix/whymb/cacheSCwrite.eps
> >> delete mode 100644 appendix/whymb/hostileordering.eps
> >> delete mode 100644 count/GlobalInc.eps
> >> delete mode 100644 count/GlobalTreeInc.eps
> >> delete mode 100644 count/PerThreadInc.eps
> >> delete mode 100644 count/count_lim.eps
> >> delete mode 100644 count/globbal.eps
> >> create mode 100644 cpu/.gitignore
> >> delete mode 100644 cpu/3DI.eps
> >> delete mode 100644 cpu/SystemArch.eps
> >> create mode 100644 datastruct/.gitignore
> >> delete mode 100644 datastruct/hashdiagram.eps
> >> create mode 100644 defer/.gitignore
> >> delete mode 100644 defer/GracePeriodGood.eps
> >> delete mode 100644 defer/Linux_hlist.eps
> >> delete mode 100644 defer/Linux_list.eps
> >> delete mode 100644 defer/Linux_list_abbr.eps
> >> delete mode 100644 defer/QSBRGracePeriod.eps
> >> delete mode 100644 defer/RCUDeletion.eps
> >> delete mode 100644 defer/RCUListDeleteClassic.eps
> >> delete mode 100644 defer/RCUReplacement.eps
> >> delete mode 100644 defer/RCUenvAPI.eps
> >> delete mode 100644 defer/rwlockRCUupdate.eps
> >> create mode 100644 formal/.gitignore
> >> delete mode 100644 formal/RCUpreemptStates.eps
> >> create mode 100644 intro/.gitignore
> >> delete mode 100644 intro/FourTaskCategories.eps
> >> delete mode 100644 intro/FourTaskOrder.eps
> >> delete mode 100644 intro/Generality.eps
> >> delete mode 100644 intro/PPGrelation.eps
> >> create mode 100644 locking/.gitignore
> >> delete mode 100644 locking/DeadlockCycle.eps
> >> delete mode 100644 locking/LayeredLockHierarchy.eps
> >> delete mode 100644 locking/LocalLockHierarchy.eps
> >> delete mode 100644 locking/NonLocalLockHierarchy.eps
> >> delete mode 100644 locking/rnplock.eps
> >> create mode 100644 toolsoftrade/.gitignore
> >> delete mode 100644 toolsoftrade/shellparallel.eps
> >>
> >
> >
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFT GIT PULL] Makefile: Add ".fig -> .eps" rule
2016-08-11 23:39 ` Paul E. McKenney
@ 2016-08-11 23:47 ` Akira Yokosawa
2016-08-12 0:11 ` Paul E. McKenney
2016-08-12 1:56 ` [RFT GIT PULL v2] " Akira Yokosawa
0 siblings, 2 replies; 9+ messages in thread
From: Akira Yokosawa @ 2016-08-11 23:47 UTC (permalink / raw)
To: paulmck; +Cc: perfbook, Akira Yokosawa
On 2016/08/12 8:39, Paul E. McKenney wrote:
> On Fri, Aug 12, 2016 at 08:23:15AM +0900, Akira Yokosawa wrote:
>> On 2016/08/11 10:54:03 -0700, Paul E. McKenney wrote:
>>> On Fri, Aug 12, 2016 at 12:14:20AM +0900, Akira Yokosawa wrote:
>>>> Hi Paul,
>>>>
>>>> As I said the other day, I added a rule for ".fig -> .eps" in Makefile and
>>>> evaluate the increase in time of the first build (or builds after
>>>> "make neatfreak").
>>>>
>>>> To reduce the build time, 2nd patch moves several currently unused ".fig" files
>>>> to ".unused" sub-directories.
>>>> 3rd patch removes ".eps" files in the repository whose sources are ".fig" files.
>>>> 4th patch updates ".gitignore"s to reflect the removed files.
>>>> 5th patch updates FAQ-BUILD.txt to notify people that we now need the "fig2ps"
>>>> package for "fig2eps" command on Ubuntu.
>>>>
>>>> The result of the evaluation is as follows.
>>>> Time is measured by "time" command such as "$ make neatfreak; time make -j4"
>>>> on a virtual machine with 4 cpus. The "real" times are collected from the output.
>>>> The value in each cell is the simple average of 4 samples.
>>>>
>>>> |before (sec)| after (sec)| |
>>>> no of thread | (1a508f6a) | (641b6a55) | diff (sec) | diff (%)
>>>> 1 | 141.8 | 153.5 | 11.7 | 8.3
>>>> 2 | 83.8 | 89.9 | 6.1 | 7.3
>>>> 3 | 64.7 | 68.8 | 4.1 | 6.3
>>>> 4 | 55.7 | 59.0 | 3.3 | 5.9
>>>>
>>>> As you may see, the time increase would be almost unnoticeable if you are
>>>> building with more than -j4.
>>>>
>>>> Of course, modification of Makefile needs to be fully tested before merging.
>>>> I've tested myself doing the above evaluation.
>>>>
>>>> If you are satisfied with the change, please consider merging.
>>>
>>> Hmmm...
>>>
>>> Pulling this, and then cloning into a new repository gets me this:
>>>
>>> $ make -j8
>>> SMPdesign/AllocatorPool.fig --> SMPdesign/AllocatorPool.eps
>>> make: *** [SMPdesign/AllocatorPool.eps] Error 127
>>> make: *** Waiting for unfinished jobs....
>>> SMPdesign/DiningPhilosopher5.tex --> SMPdesign/DiningPhilosopher5.eps
>>>
>>> I get the same error if I do "make neatfreak" beforehand.
>>>
>>> What am I doing wrong?
>>
>> Does "make SMPdesign/AllocatorPool.eps" alone work?
>>
>> If it does, then there might be an issue in highly parallel build...
>> Whew!
>
> Sorry, but no joy:
>
> $ make SMPdesign/AllocatorPool.eps
> SMPdesign/AllocatorPool.fig --> SMPdesign/AllocatorPool.eps
> make: *** [SMPdesign/AllocatorPool.eps] Error 127
>
> Hmmm... How about if I install fig2ps? :-/
>
> When I do that, it seems to build just fine, apologies for the noise!
Ah!
But other people would encounter the same issue.
We need to check the existence of fig2eps at the begging of a build,
don't we?
I'll see what I can do. I'd like you to wait merging to master until
I add the check.
Thanks, Akira
>
> Thanx, Paul
>
>> If it does not, please apply the patch to be sent in the following mail
>> on top of current "makefile-add-fig-eps-rule" branch, then do the single
>> make above, and send me the content of a temporary directory named
>> /tmp/xxxxxxxxxx (xxxxxxxxxx is a random name fig2eps generates) as a tar
>> archive.
>>
>> If you do full build of perfbook after applying the patch, there will be
>> a lot of temporary directories left in /tmp and it may be hard to find
>> which one is that of SMPdesign/AllocatorPool.eps
>>
>>>
>>> Thanx, Paul
>>>
>>>> Thanks, Akira
>>>>
>>>> -----
>>>> The following changes since commit 1a508f6ad8b6d4e722c8511c459ae7ae9d2591b5:
>>>>
>>>> Get .gitignore in right place for hash-table code (2016-08-10 16:14:18 -0700)
>>>>
>>>> are available in the git repository at:
>>>>
>>>> https://github.com/akiyks/perfbook.git makefile-add-fig-eps-rule
>>>>
>>>> for you to fetch changes up to 641b6a5541323d737b1e2ca31e9a805da19514f1:
>>>>
>>>> FAQ-BUILD.txt: Add 'fig2ps' as necessary package on Ubuntu (2016-08-11 22:50:02 +0900)
>>>>
>>>> ----------------------------------------------------------------
>>>> Akira Yokosawa (5):
>>>> Makefile: Add .fig -> .eps rule
>>>> Move unused .fig and .eps files to .unused directory
>>>> Remove .eps files whose sources are .fig files
>>>> Update and create .gitignore files
>>>> FAQ-BUILD.txt: Add 'fig2ps' as necessary package on Ubuntu
>>>>
>>>> FAQ-BUILD.txt | 2 +-
>>>> Makefile | 18 +-
>>>> SMPdesign/.gitignore | 10 +
>>>> SMPdesign/AllocatorPool.eps | 287 --
>>>> SMPdesign/LockGranularity.eps | 243 --
>>>> SMPdesign/MazeNumberPath.eps | 157 -
>>>> SMPdesign/MemoryBarrierPairing.eps | 218 --
>>>> SMPdesign/ParallelFastpath.eps | 213 -
>>>> SMPdesign/allocatorcache.eps | 225 --
>>>> SMPdesign/lockdeqhash.eps | 218 --
>>>> SMPdesign/lockdeqhash1R.eps | 784 ----
>>>> SMPdesign/lockdeqhashlots.eps | 479 ---
>>>> SMPdesign/lockdeqpair.eps | 177 -
>>>> advsync/.gitignore | 22 +
>>>> advsync/.unused/MoreThanOneValue-15CPU-noresp.eps | 1306 -------
>>>> advsync/AbstractMemoryAccessModel.eps | 191 -
>>>> advsync/DataDependencyNeeded.eps | 775 ----
>>>> advsync/DataDependencySupplied.eps | 738 ----
>>>> advsync/MemoryArchitecture.eps | 327 --
>>>> advsync/MemoryBarrierPairing.eps | 221 --
>>>> advsync/MoreThanOneValue-15CPU.eps | 1306 -------
>>>> advsync/MoreThanOneValue.eps | 200 -
>>>> advsync/RCU-API.eps | 200 -
>>>> advsync/RCUDeletion.eps | 253 --
>>>> advsync/RCUInsertion.eps | 210 -
>>>> advsync/RCUReaderGP.eps | 181 -
>>>> advsync/RCUReaderGPExtends.eps | 199 -
>>>> advsync/RCUReplacement.eps | 414 --
>>>> advsync/ReadBarrierNeeded.eps | 673 ----
>>>> advsync/ReadBarrierSupplied.eps | 693 ----
>>>> advsync/ReadBarrierSupplied1.eps | 722 ----
>>>> advsync/ReadBarrierSupplied2.eps | 699 ----
>>>> advsync/SpeculativeLoad.eps | 603 ---
>>>> advsync/SpeculativeLoadBarrier.eps | 595 ---
>>>> advsync/SpeculativeLoadBarrierCancel.eps | 633 ---
>>>> advsync/SplitCache.eps | 250 --
>>>> advsync/WriteBarrierOrdering.eps | 613 ---
>>>> appendix/questions/.gitignore | 1 +
>>>> appendix/questions/after.eps | 170 -
>>>> appendix/rcuhist/{ => .unused}/linux-RCU.eps | 0
>>>> appendix/rcuhist/{ => .unused}/linux-RCUlock.eps | 0
>>>> appendix/rcuhist/{ => .unused}/rcuAPI.eps | 0
>>>> .../rcuimpl/{ => .unused}/AdvanceRCUCallbacks.fig | 0
>>>> .../rcuimpl/{ => .unused}/BigTreeClassicRCU.fig | 0
>>>> .../rcuimpl/{ => .unused}/BigTreeClassicRCUBH.fig | 0
>>>> .../{ => .unused}/BigTreeClassicRCUBHdyntick.fig | 0
>>>> appendix/rcuimpl/{ => .unused}/FlatClassicRCU.fig | 0
>>>> .../{ => .unused}/GenericRCUStateMachine.fig | 0
>>>> appendix/rcuimpl/{ => .unused}/GracePeriodBad.fig | 0
>>>> appendix/rcuimpl/{ => .unused}/RCUTreeInit.fig | 0
>>>> appendix/rcuimpl/{ => .unused}/RCUTreeLeafScan.fig | 0
>>>> appendix/rcuimpl/{ => .unused}/RCUTreeQSScan.fig | 0
>>>> appendix/rcuimpl/{ => .unused}/RCUbweBlock.fig | 0
>>>> .../{ => .unused}/RCUpreemptCounterFlip.fig | 0
>>>> appendix/rcuimpl/{ => .unused}/RCUpreemptLists.fig | 0
>>>> .../{ => .unused}/RCUpreemptListsCompare.fig | 0
>>>> .../rcuimpl/{ => .unused}/RCUpreemptStates.fig | 0
>>>> .../rcuimpl/{ => .unused}/RCUpreemptTimeline.fig | 0
>>>> .../rcuimpl/{ => .unused}/RCUpreemptValidation.fig | 0
>>>> appendix/rcuimpl/{ => .unused}/RCUrt-MBnowaste.fig | 0
>>>> appendix/rcuimpl/{ => .unused}/RCUrt-MBwaste.fig | 0
>>>> .../rcuimpl/{ => .unused}/TinyRCUCallbacks.fig | 0
>>>> appendix/rcuimpl/{ => .unused}/TreeClassicRCU.fig | 0
>>>> .../rcuimpl/{ => .unused}/TreeClassicRCUGP.fig | 0
>>>> appendix/rcuimpl/{ => .unused}/TreeMapping.fig | 0
>>>> .../rcuimpl/{ => .unused}/TreeRCUStateMachine.fig | 0
>>>> appendix/rcuimpl/{ => .unused}/srcuds.fig | 0
>>>> appendix/rcuimpl/AdvanceRCUCallbacks.eps | 316 --
>>>> appendix/rcuimpl/BigTreeClassicRCU.eps | 286 --
>>>> appendix/rcuimpl/BigTreeClassicRCUBH.eps | 305 --
>>>> appendix/rcuimpl/BigTreeClassicRCUBHdyntick.eps | 462 ---
>>>> appendix/rcuimpl/FlatClassicRCU.eps | 254 --
>>>> appendix/rcuimpl/GenericRCUStateMachine.eps | 514 ---
>>>> appendix/rcuimpl/GracePeriodBad.eps | 194 -
>>>> appendix/rcuimpl/RCUTreeInit.eps | 490 ---
>>>> appendix/rcuimpl/RCUTreeLeafScan.eps | 504 ---
>>>> appendix/rcuimpl/RCUTreeQSScan.eps | 504 ---
>>>> appendix/rcuimpl/RCUbweBlock.eps | 575 ---
>>>> appendix/rcuimpl/RCUpreemptCounterFlip.eps | 291 --
>>>> appendix/rcuimpl/RCUpreemptLists.eps | 220 --
>>>> appendix/rcuimpl/RCUpreemptListsCompare.eps | 311 --
>>>> appendix/rcuimpl/RCUpreemptStates.eps | 4120 --------------------
>>>> appendix/rcuimpl/RCUpreemptTimeline.eps | 351 --
>>>> appendix/rcuimpl/RCUpreemptValidation.eps | 696 ----
>>>> appendix/rcuimpl/RCUrt-MBnowaste.eps | 273 --
>>>> appendix/rcuimpl/RCUrt-MBwaste.eps | 345 --
>>>> appendix/rcuimpl/TinyRCUCallbacks.eps | 233 --
>>>> appendix/rcuimpl/TreeClassicRCU.eps | 288 --
>>>> appendix/rcuimpl/TreeClassicRCUGP.eps | 730 ----
>>>> appendix/rcuimpl/TreeMapping.eps | 219 --
>>>> appendix/rcuimpl/TreeRCUStateMachine.eps | 358 --
>>>> appendix/rcuimpl/srcuds.eps | 268 --
>>>> appendix/whymb/.gitignore | 7 +
>>>> appendix/whymb/MESI.eps | 293 --
>>>> appendix/whymb/cacheSB.eps | 216 -
>>>> appendix/whymb/cacheSBf.eps | 247 --
>>>> appendix/whymb/cacheSBfIQ.eps | 271 --
>>>> appendix/whymb/cacheSC.eps | 150 -
>>>> appendix/whymb/cacheSCwrite.eps | 170 -
>>>> appendix/whymb/hostileordering.eps | 243 --
>>>> count/.gitignore | 5 +
>>>> count/GlobalInc.eps | 429 --
>>>> count/GlobalTreeInc.eps | 501 ---
>>>> count/PerThreadInc.eps | 421 --
>>>> count/count_lim.eps | 177 -
>>>> count/globbal.eps | 331 --
>>>> cpu/.gitignore | 2 +
>>>> cpu/3DI.eps | 193 -
>>>> cpu/SystemArch.eps | 395 --
>>>> datastruct/.gitignore | 1 +
>>>> datastruct/hashdiagram.eps | 301 --
>>>> defer/.gitignore | 10 +
>>>> defer/GracePeriodGood.eps | 210 -
>>>> defer/Linux_hlist.eps | 208 -
>>>> defer/Linux_list.eps | 241 --
>>>> defer/Linux_list_abbr.eps | 139 -
>>>> defer/QSBRGracePeriod.eps | 255 --
>>>> defer/RCUDeletion.eps | 253 --
>>>> defer/RCUListDeleteClassic.eps | 328 --
>>>> defer/RCUReplacement.eps | 470 ---
>>>> defer/RCUenvAPI.eps | 214 -
>>>> defer/rwlockRCUupdate.eps | 264 --
>>>> formal/.gitignore | 1 +
>>>> formal/RCUpreemptStates.eps | 4120 --------------------
>>>> intro/.gitignore | 4 +
>>>> intro/FourTaskCategories.eps | 261 --
>>>> intro/FourTaskOrder.eps | 321 --
>>>> intro/Generality.eps | 386 --
>>>> intro/PPGrelation.eps | 165 -
>>>> locking/.gitignore | 5 +
>>>> locking/DeadlockCycle.eps | 227 --
>>>> locking/LayeredLockHierarchy.eps | 222 --
>>>> locking/LocalLockHierarchy.eps | 221 --
>>>> locking/NonLocalLockHierarchy.eps | 221 --
>>>> locking/rnplock.eps | 305 --
>>>> toolsoftrade/.gitignore | 1 +
>>>> toolsoftrade/shellparallel.eps | 210 -
>>>> 137 files changed, 84 insertions(+), 41864 deletions(-)
>>>> delete mode 100644 SMPdesign/AllocatorPool.eps
>>>> delete mode 100644 SMPdesign/LockGranularity.eps
>>>> delete mode 100644 SMPdesign/MazeNumberPath.eps
>>>> delete mode 100644 SMPdesign/MemoryBarrierPairing.eps
>>>> delete mode 100644 SMPdesign/ParallelFastpath.eps
>>>> delete mode 100644 SMPdesign/allocatorcache.eps
>>>> delete mode 100644 SMPdesign/lockdeqhash.eps
>>>> delete mode 100644 SMPdesign/lockdeqhash1R.eps
>>>> delete mode 100644 SMPdesign/lockdeqhashlots.eps
>>>> delete mode 100644 SMPdesign/lockdeqpair.eps
>>>> delete mode 100644 advsync/.unused/MoreThanOneValue-15CPU-noresp.eps
>>>> delete mode 100644 advsync/AbstractMemoryAccessModel.eps
>>>> delete mode 100644 advsync/DataDependencyNeeded.eps
>>>> delete mode 100644 advsync/DataDependencySupplied.eps
>>>> delete mode 100644 advsync/MemoryArchitecture.eps
>>>> delete mode 100644 advsync/MemoryBarrierPairing.eps
>>>> delete mode 100644 advsync/MoreThanOneValue-15CPU.eps
>>>> delete mode 100644 advsync/MoreThanOneValue.eps
>>>> delete mode 100644 advsync/RCU-API.eps
>>>> delete mode 100644 advsync/RCUDeletion.eps
>>>> delete mode 100644 advsync/RCUInsertion.eps
>>>> delete mode 100644 advsync/RCUReaderGP.eps
>>>> delete mode 100644 advsync/RCUReaderGPExtends.eps
>>>> delete mode 100644 advsync/RCUReplacement.eps
>>>> delete mode 100644 advsync/ReadBarrierNeeded.eps
>>>> delete mode 100644 advsync/ReadBarrierSupplied.eps
>>>> delete mode 100644 advsync/ReadBarrierSupplied1.eps
>>>> delete mode 100644 advsync/ReadBarrierSupplied2.eps
>>>> delete mode 100644 advsync/SpeculativeLoad.eps
>>>> delete mode 100644 advsync/SpeculativeLoadBarrier.eps
>>>> delete mode 100644 advsync/SpeculativeLoadBarrierCancel.eps
>>>> delete mode 100644 advsync/SplitCache.eps
>>>> delete mode 100644 advsync/WriteBarrierOrdering.eps
>>>> create mode 100644 appendix/questions/.gitignore
>>>> delete mode 100644 appendix/questions/after.eps
>>>> rename appendix/rcuhist/{ => .unused}/linux-RCU.eps (100%)
>>>> rename appendix/rcuhist/{ => .unused}/linux-RCUlock.eps (100%)
>>>> rename appendix/rcuhist/{ => .unused}/rcuAPI.eps (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/AdvanceRCUCallbacks.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCU.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCUBH.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCUBHdyntick.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/FlatClassicRCU.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/GenericRCUStateMachine.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/GracePeriodBad.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/RCUTreeInit.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/RCUTreeLeafScan.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/RCUTreeQSScan.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/RCUbweBlock.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptCounterFlip.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptLists.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptListsCompare.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptStates.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptTimeline.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptValidation.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/RCUrt-MBnowaste.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/RCUrt-MBwaste.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/TinyRCUCallbacks.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/TreeClassicRCU.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/TreeClassicRCUGP.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/TreeMapping.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/TreeRCUStateMachine.fig (100%)
>>>> rename appendix/rcuimpl/{ => .unused}/srcuds.fig (100%)
>>>> delete mode 100644 appendix/rcuimpl/AdvanceRCUCallbacks.eps
>>>> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCU.eps
>>>> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCUBH.eps
>>>> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCUBHdyntick.eps
>>>> delete mode 100644 appendix/rcuimpl/FlatClassicRCU.eps
>>>> delete mode 100644 appendix/rcuimpl/GenericRCUStateMachine.eps
>>>> delete mode 100644 appendix/rcuimpl/GracePeriodBad.eps
>>>> delete mode 100644 appendix/rcuimpl/RCUTreeInit.eps
>>>> delete mode 100644 appendix/rcuimpl/RCUTreeLeafScan.eps
>>>> delete mode 100644 appendix/rcuimpl/RCUTreeQSScan.eps
>>>> delete mode 100644 appendix/rcuimpl/RCUbweBlock.eps
>>>> delete mode 100644 appendix/rcuimpl/RCUpreemptCounterFlip.eps
>>>> delete mode 100644 appendix/rcuimpl/RCUpreemptLists.eps
>>>> delete mode 100644 appendix/rcuimpl/RCUpreemptListsCompare.eps
>>>> delete mode 100644 appendix/rcuimpl/RCUpreemptStates.eps
>>>> delete mode 100644 appendix/rcuimpl/RCUpreemptTimeline.eps
>>>> delete mode 100644 appendix/rcuimpl/RCUpreemptValidation.eps
>>>> delete mode 100644 appendix/rcuimpl/RCUrt-MBnowaste.eps
>>>> delete mode 100644 appendix/rcuimpl/RCUrt-MBwaste.eps
>>>> delete mode 100644 appendix/rcuimpl/TinyRCUCallbacks.eps
>>>> delete mode 100644 appendix/rcuimpl/TreeClassicRCU.eps
>>>> delete mode 100644 appendix/rcuimpl/TreeClassicRCUGP.eps
>>>> delete mode 100644 appendix/rcuimpl/TreeMapping.eps
>>>> delete mode 100644 appendix/rcuimpl/TreeRCUStateMachine.eps
>>>> delete mode 100644 appendix/rcuimpl/srcuds.eps
>>>> create mode 100644 appendix/whymb/.gitignore
>>>> delete mode 100644 appendix/whymb/MESI.eps
>>>> delete mode 100644 appendix/whymb/cacheSB.eps
>>>> delete mode 100644 appendix/whymb/cacheSBf.eps
>>>> delete mode 100644 appendix/whymb/cacheSBfIQ.eps
>>>> delete mode 100644 appendix/whymb/cacheSC.eps
>>>> delete mode 100644 appendix/whymb/cacheSCwrite.eps
>>>> delete mode 100644 appendix/whymb/hostileordering.eps
>>>> delete mode 100644 count/GlobalInc.eps
>>>> delete mode 100644 count/GlobalTreeInc.eps
>>>> delete mode 100644 count/PerThreadInc.eps
>>>> delete mode 100644 count/count_lim.eps
>>>> delete mode 100644 count/globbal.eps
>>>> create mode 100644 cpu/.gitignore
>>>> delete mode 100644 cpu/3DI.eps
>>>> delete mode 100644 cpu/SystemArch.eps
>>>> create mode 100644 datastruct/.gitignore
>>>> delete mode 100644 datastruct/hashdiagram.eps
>>>> create mode 100644 defer/.gitignore
>>>> delete mode 100644 defer/GracePeriodGood.eps
>>>> delete mode 100644 defer/Linux_hlist.eps
>>>> delete mode 100644 defer/Linux_list.eps
>>>> delete mode 100644 defer/Linux_list_abbr.eps
>>>> delete mode 100644 defer/QSBRGracePeriod.eps
>>>> delete mode 100644 defer/RCUDeletion.eps
>>>> delete mode 100644 defer/RCUListDeleteClassic.eps
>>>> delete mode 100644 defer/RCUReplacement.eps
>>>> delete mode 100644 defer/RCUenvAPI.eps
>>>> delete mode 100644 defer/rwlockRCUupdate.eps
>>>> create mode 100644 formal/.gitignore
>>>> delete mode 100644 formal/RCUpreemptStates.eps
>>>> create mode 100644 intro/.gitignore
>>>> delete mode 100644 intro/FourTaskCategories.eps
>>>> delete mode 100644 intro/FourTaskOrder.eps
>>>> delete mode 100644 intro/Generality.eps
>>>> delete mode 100644 intro/PPGrelation.eps
>>>> create mode 100644 locking/.gitignore
>>>> delete mode 100644 locking/DeadlockCycle.eps
>>>> delete mode 100644 locking/LayeredLockHierarchy.eps
>>>> delete mode 100644 locking/LocalLockHierarchy.eps
>>>> delete mode 100644 locking/NonLocalLockHierarchy.eps
>>>> delete mode 100644 locking/rnplock.eps
>>>> create mode 100644 toolsoftrade/.gitignore
>>>> delete mode 100644 toolsoftrade/shellparallel.eps
>>>>
>>>
>>>
>>
>
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFT GIT PULL] Makefile: Add ".fig -> .eps" rule
2016-08-11 23:47 ` Akira Yokosawa
@ 2016-08-12 0:11 ` Paul E. McKenney
2016-08-12 1:56 ` [RFT GIT PULL v2] " Akira Yokosawa
1 sibling, 0 replies; 9+ messages in thread
From: Paul E. McKenney @ 2016-08-12 0:11 UTC (permalink / raw)
To: Akira Yokosawa; +Cc: perfbook
On Fri, Aug 12, 2016 at 08:47:56AM +0900, Akira Yokosawa wrote:
> On 2016/08/12 8:39, Paul E. McKenney wrote:
> > On Fri, Aug 12, 2016 at 08:23:15AM +0900, Akira Yokosawa wrote:
> >> On 2016/08/11 10:54:03 -0700, Paul E. McKenney wrote:
> >>> On Fri, Aug 12, 2016 at 12:14:20AM +0900, Akira Yokosawa wrote:
> >>>> Hi Paul,
> >>>>
> >>>> As I said the other day, I added a rule for ".fig -> .eps" in Makefile and
> >>>> evaluate the increase in time of the first build (or builds after
> >>>> "make neatfreak").
> >>>>
> >>>> To reduce the build time, 2nd patch moves several currently unused ".fig" files
> >>>> to ".unused" sub-directories.
> >>>> 3rd patch removes ".eps" files in the repository whose sources are ".fig" files.
> >>>> 4th patch updates ".gitignore"s to reflect the removed files.
> >>>> 5th patch updates FAQ-BUILD.txt to notify people that we now need the "fig2ps"
> >>>> package for "fig2eps" command on Ubuntu.
> >>>>
> >>>> The result of the evaluation is as follows.
> >>>> Time is measured by "time" command such as "$ make neatfreak; time make -j4"
> >>>> on a virtual machine with 4 cpus. The "real" times are collected from the output.
> >>>> The value in each cell is the simple average of 4 samples.
> >>>>
> >>>> |before (sec)| after (sec)| |
> >>>> no of thread | (1a508f6a) | (641b6a55) | diff (sec) | diff (%)
> >>>> 1 | 141.8 | 153.5 | 11.7 | 8.3
> >>>> 2 | 83.8 | 89.9 | 6.1 | 7.3
> >>>> 3 | 64.7 | 68.8 | 4.1 | 6.3
> >>>> 4 | 55.7 | 59.0 | 3.3 | 5.9
> >>>>
> >>>> As you may see, the time increase would be almost unnoticeable if you are
> >>>> building with more than -j4.
> >>>>
> >>>> Of course, modification of Makefile needs to be fully tested before merging.
> >>>> I've tested myself doing the above evaluation.
> >>>>
> >>>> If you are satisfied with the change, please consider merging.
> >>>
> >>> Hmmm...
> >>>
> >>> Pulling this, and then cloning into a new repository gets me this:
> >>>
> >>> $ make -j8
> >>> SMPdesign/AllocatorPool.fig --> SMPdesign/AllocatorPool.eps
> >>> make: *** [SMPdesign/AllocatorPool.eps] Error 127
> >>> make: *** Waiting for unfinished jobs....
> >>> SMPdesign/DiningPhilosopher5.tex --> SMPdesign/DiningPhilosopher5.eps
> >>>
> >>> I get the same error if I do "make neatfreak" beforehand.
> >>>
> >>> What am I doing wrong?
> >>
> >> Does "make SMPdesign/AllocatorPool.eps" alone work?
> >>
> >> If it does, then there might be an issue in highly parallel build...
> >> Whew!
> >
> > Sorry, but no joy:
> >
> > $ make SMPdesign/AllocatorPool.eps
> > SMPdesign/AllocatorPool.fig --> SMPdesign/AllocatorPool.eps
> > make: *** [SMPdesign/AllocatorPool.eps] Error 127
> >
> > Hmmm... How about if I install fig2ps? :-/
> >
> > When I do that, it seems to build just fine, apologies for the noise!
>
> Ah!
> But other people would encounter the same issue.
> We need to check the existence of fig2eps at the begging of a build,
> don't we?
>
> I'll see what I can do. I'd like you to wait merging to master until
> I add the check.
A check would be very good, thank you!
Thanx, Paul
> Thanks, Akira
>
> >
> > Thanx, Paul
> >
> >> If it does not, please apply the patch to be sent in the following mail
> >> on top of current "makefile-add-fig-eps-rule" branch, then do the single
> >> make above, and send me the content of a temporary directory named
> >> /tmp/xxxxxxxxxx (xxxxxxxxxx is a random name fig2eps generates) as a tar
> >> archive.
> >>
> >> If you do full build of perfbook after applying the patch, there will be
> >> a lot of temporary directories left in /tmp and it may be hard to find
> >> which one is that of SMPdesign/AllocatorPool.eps
> >>
> >>>
> >>> Thanx, Paul
> >>>
> >>>> Thanks, Akira
> >>>>
> >>>> -----
> >>>> The following changes since commit 1a508f6ad8b6d4e722c8511c459ae7ae9d2591b5:
> >>>>
> >>>> Get .gitignore in right place for hash-table code (2016-08-10 16:14:18 -0700)
> >>>>
> >>>> are available in the git repository at:
> >>>>
> >>>> https://github.com/akiyks/perfbook.git makefile-add-fig-eps-rule
> >>>>
> >>>> for you to fetch changes up to 641b6a5541323d737b1e2ca31e9a805da19514f1:
> >>>>
> >>>> FAQ-BUILD.txt: Add 'fig2ps' as necessary package on Ubuntu (2016-08-11 22:50:02 +0900)
> >>>>
> >>>> ----------------------------------------------------------------
> >>>> Akira Yokosawa (5):
> >>>> Makefile: Add .fig -> .eps rule
> >>>> Move unused .fig and .eps files to .unused directory
> >>>> Remove .eps files whose sources are .fig files
> >>>> Update and create .gitignore files
> >>>> FAQ-BUILD.txt: Add 'fig2ps' as necessary package on Ubuntu
> >>>>
> >>>> FAQ-BUILD.txt | 2 +-
> >>>> Makefile | 18 +-
> >>>> SMPdesign/.gitignore | 10 +
> >>>> SMPdesign/AllocatorPool.eps | 287 --
> >>>> SMPdesign/LockGranularity.eps | 243 --
> >>>> SMPdesign/MazeNumberPath.eps | 157 -
> >>>> SMPdesign/MemoryBarrierPairing.eps | 218 --
> >>>> SMPdesign/ParallelFastpath.eps | 213 -
> >>>> SMPdesign/allocatorcache.eps | 225 --
> >>>> SMPdesign/lockdeqhash.eps | 218 --
> >>>> SMPdesign/lockdeqhash1R.eps | 784 ----
> >>>> SMPdesign/lockdeqhashlots.eps | 479 ---
> >>>> SMPdesign/lockdeqpair.eps | 177 -
> >>>> advsync/.gitignore | 22 +
> >>>> advsync/.unused/MoreThanOneValue-15CPU-noresp.eps | 1306 -------
> >>>> advsync/AbstractMemoryAccessModel.eps | 191 -
> >>>> advsync/DataDependencyNeeded.eps | 775 ----
> >>>> advsync/DataDependencySupplied.eps | 738 ----
> >>>> advsync/MemoryArchitecture.eps | 327 --
> >>>> advsync/MemoryBarrierPairing.eps | 221 --
> >>>> advsync/MoreThanOneValue-15CPU.eps | 1306 -------
> >>>> advsync/MoreThanOneValue.eps | 200 -
> >>>> advsync/RCU-API.eps | 200 -
> >>>> advsync/RCUDeletion.eps | 253 --
> >>>> advsync/RCUInsertion.eps | 210 -
> >>>> advsync/RCUReaderGP.eps | 181 -
> >>>> advsync/RCUReaderGPExtends.eps | 199 -
> >>>> advsync/RCUReplacement.eps | 414 --
> >>>> advsync/ReadBarrierNeeded.eps | 673 ----
> >>>> advsync/ReadBarrierSupplied.eps | 693 ----
> >>>> advsync/ReadBarrierSupplied1.eps | 722 ----
> >>>> advsync/ReadBarrierSupplied2.eps | 699 ----
> >>>> advsync/SpeculativeLoad.eps | 603 ---
> >>>> advsync/SpeculativeLoadBarrier.eps | 595 ---
> >>>> advsync/SpeculativeLoadBarrierCancel.eps | 633 ---
> >>>> advsync/SplitCache.eps | 250 --
> >>>> advsync/WriteBarrierOrdering.eps | 613 ---
> >>>> appendix/questions/.gitignore | 1 +
> >>>> appendix/questions/after.eps | 170 -
> >>>> appendix/rcuhist/{ => .unused}/linux-RCU.eps | 0
> >>>> appendix/rcuhist/{ => .unused}/linux-RCUlock.eps | 0
> >>>> appendix/rcuhist/{ => .unused}/rcuAPI.eps | 0
> >>>> .../rcuimpl/{ => .unused}/AdvanceRCUCallbacks.fig | 0
> >>>> .../rcuimpl/{ => .unused}/BigTreeClassicRCU.fig | 0
> >>>> .../rcuimpl/{ => .unused}/BigTreeClassicRCUBH.fig | 0
> >>>> .../{ => .unused}/BigTreeClassicRCUBHdyntick.fig | 0
> >>>> appendix/rcuimpl/{ => .unused}/FlatClassicRCU.fig | 0
> >>>> .../{ => .unused}/GenericRCUStateMachine.fig | 0
> >>>> appendix/rcuimpl/{ => .unused}/GracePeriodBad.fig | 0
> >>>> appendix/rcuimpl/{ => .unused}/RCUTreeInit.fig | 0
> >>>> appendix/rcuimpl/{ => .unused}/RCUTreeLeafScan.fig | 0
> >>>> appendix/rcuimpl/{ => .unused}/RCUTreeQSScan.fig | 0
> >>>> appendix/rcuimpl/{ => .unused}/RCUbweBlock.fig | 0
> >>>> .../{ => .unused}/RCUpreemptCounterFlip.fig | 0
> >>>> appendix/rcuimpl/{ => .unused}/RCUpreemptLists.fig | 0
> >>>> .../{ => .unused}/RCUpreemptListsCompare.fig | 0
> >>>> .../rcuimpl/{ => .unused}/RCUpreemptStates.fig | 0
> >>>> .../rcuimpl/{ => .unused}/RCUpreemptTimeline.fig | 0
> >>>> .../rcuimpl/{ => .unused}/RCUpreemptValidation.fig | 0
> >>>> appendix/rcuimpl/{ => .unused}/RCUrt-MBnowaste.fig | 0
> >>>> appendix/rcuimpl/{ => .unused}/RCUrt-MBwaste.fig | 0
> >>>> .../rcuimpl/{ => .unused}/TinyRCUCallbacks.fig | 0
> >>>> appendix/rcuimpl/{ => .unused}/TreeClassicRCU.fig | 0
> >>>> .../rcuimpl/{ => .unused}/TreeClassicRCUGP.fig | 0
> >>>> appendix/rcuimpl/{ => .unused}/TreeMapping.fig | 0
> >>>> .../rcuimpl/{ => .unused}/TreeRCUStateMachine.fig | 0
> >>>> appendix/rcuimpl/{ => .unused}/srcuds.fig | 0
> >>>> appendix/rcuimpl/AdvanceRCUCallbacks.eps | 316 --
> >>>> appendix/rcuimpl/BigTreeClassicRCU.eps | 286 --
> >>>> appendix/rcuimpl/BigTreeClassicRCUBH.eps | 305 --
> >>>> appendix/rcuimpl/BigTreeClassicRCUBHdyntick.eps | 462 ---
> >>>> appendix/rcuimpl/FlatClassicRCU.eps | 254 --
> >>>> appendix/rcuimpl/GenericRCUStateMachine.eps | 514 ---
> >>>> appendix/rcuimpl/GracePeriodBad.eps | 194 -
> >>>> appendix/rcuimpl/RCUTreeInit.eps | 490 ---
> >>>> appendix/rcuimpl/RCUTreeLeafScan.eps | 504 ---
> >>>> appendix/rcuimpl/RCUTreeQSScan.eps | 504 ---
> >>>> appendix/rcuimpl/RCUbweBlock.eps | 575 ---
> >>>> appendix/rcuimpl/RCUpreemptCounterFlip.eps | 291 --
> >>>> appendix/rcuimpl/RCUpreemptLists.eps | 220 --
> >>>> appendix/rcuimpl/RCUpreemptListsCompare.eps | 311 --
> >>>> appendix/rcuimpl/RCUpreemptStates.eps | 4120 --------------------
> >>>> appendix/rcuimpl/RCUpreemptTimeline.eps | 351 --
> >>>> appendix/rcuimpl/RCUpreemptValidation.eps | 696 ----
> >>>> appendix/rcuimpl/RCUrt-MBnowaste.eps | 273 --
> >>>> appendix/rcuimpl/RCUrt-MBwaste.eps | 345 --
> >>>> appendix/rcuimpl/TinyRCUCallbacks.eps | 233 --
> >>>> appendix/rcuimpl/TreeClassicRCU.eps | 288 --
> >>>> appendix/rcuimpl/TreeClassicRCUGP.eps | 730 ----
> >>>> appendix/rcuimpl/TreeMapping.eps | 219 --
> >>>> appendix/rcuimpl/TreeRCUStateMachine.eps | 358 --
> >>>> appendix/rcuimpl/srcuds.eps | 268 --
> >>>> appendix/whymb/.gitignore | 7 +
> >>>> appendix/whymb/MESI.eps | 293 --
> >>>> appendix/whymb/cacheSB.eps | 216 -
> >>>> appendix/whymb/cacheSBf.eps | 247 --
> >>>> appendix/whymb/cacheSBfIQ.eps | 271 --
> >>>> appendix/whymb/cacheSC.eps | 150 -
> >>>> appendix/whymb/cacheSCwrite.eps | 170 -
> >>>> appendix/whymb/hostileordering.eps | 243 --
> >>>> count/.gitignore | 5 +
> >>>> count/GlobalInc.eps | 429 --
> >>>> count/GlobalTreeInc.eps | 501 ---
> >>>> count/PerThreadInc.eps | 421 --
> >>>> count/count_lim.eps | 177 -
> >>>> count/globbal.eps | 331 --
> >>>> cpu/.gitignore | 2 +
> >>>> cpu/3DI.eps | 193 -
> >>>> cpu/SystemArch.eps | 395 --
> >>>> datastruct/.gitignore | 1 +
> >>>> datastruct/hashdiagram.eps | 301 --
> >>>> defer/.gitignore | 10 +
> >>>> defer/GracePeriodGood.eps | 210 -
> >>>> defer/Linux_hlist.eps | 208 -
> >>>> defer/Linux_list.eps | 241 --
> >>>> defer/Linux_list_abbr.eps | 139 -
> >>>> defer/QSBRGracePeriod.eps | 255 --
> >>>> defer/RCUDeletion.eps | 253 --
> >>>> defer/RCUListDeleteClassic.eps | 328 --
> >>>> defer/RCUReplacement.eps | 470 ---
> >>>> defer/RCUenvAPI.eps | 214 -
> >>>> defer/rwlockRCUupdate.eps | 264 --
> >>>> formal/.gitignore | 1 +
> >>>> formal/RCUpreemptStates.eps | 4120 --------------------
> >>>> intro/.gitignore | 4 +
> >>>> intro/FourTaskCategories.eps | 261 --
> >>>> intro/FourTaskOrder.eps | 321 --
> >>>> intro/Generality.eps | 386 --
> >>>> intro/PPGrelation.eps | 165 -
> >>>> locking/.gitignore | 5 +
> >>>> locking/DeadlockCycle.eps | 227 --
> >>>> locking/LayeredLockHierarchy.eps | 222 --
> >>>> locking/LocalLockHierarchy.eps | 221 --
> >>>> locking/NonLocalLockHierarchy.eps | 221 --
> >>>> locking/rnplock.eps | 305 --
> >>>> toolsoftrade/.gitignore | 1 +
> >>>> toolsoftrade/shellparallel.eps | 210 -
> >>>> 137 files changed, 84 insertions(+), 41864 deletions(-)
> >>>> delete mode 100644 SMPdesign/AllocatorPool.eps
> >>>> delete mode 100644 SMPdesign/LockGranularity.eps
> >>>> delete mode 100644 SMPdesign/MazeNumberPath.eps
> >>>> delete mode 100644 SMPdesign/MemoryBarrierPairing.eps
> >>>> delete mode 100644 SMPdesign/ParallelFastpath.eps
> >>>> delete mode 100644 SMPdesign/allocatorcache.eps
> >>>> delete mode 100644 SMPdesign/lockdeqhash.eps
> >>>> delete mode 100644 SMPdesign/lockdeqhash1R.eps
> >>>> delete mode 100644 SMPdesign/lockdeqhashlots.eps
> >>>> delete mode 100644 SMPdesign/lockdeqpair.eps
> >>>> delete mode 100644 advsync/.unused/MoreThanOneValue-15CPU-noresp.eps
> >>>> delete mode 100644 advsync/AbstractMemoryAccessModel.eps
> >>>> delete mode 100644 advsync/DataDependencyNeeded.eps
> >>>> delete mode 100644 advsync/DataDependencySupplied.eps
> >>>> delete mode 100644 advsync/MemoryArchitecture.eps
> >>>> delete mode 100644 advsync/MemoryBarrierPairing.eps
> >>>> delete mode 100644 advsync/MoreThanOneValue-15CPU.eps
> >>>> delete mode 100644 advsync/MoreThanOneValue.eps
> >>>> delete mode 100644 advsync/RCU-API.eps
> >>>> delete mode 100644 advsync/RCUDeletion.eps
> >>>> delete mode 100644 advsync/RCUInsertion.eps
> >>>> delete mode 100644 advsync/RCUReaderGP.eps
> >>>> delete mode 100644 advsync/RCUReaderGPExtends.eps
> >>>> delete mode 100644 advsync/RCUReplacement.eps
> >>>> delete mode 100644 advsync/ReadBarrierNeeded.eps
> >>>> delete mode 100644 advsync/ReadBarrierSupplied.eps
> >>>> delete mode 100644 advsync/ReadBarrierSupplied1.eps
> >>>> delete mode 100644 advsync/ReadBarrierSupplied2.eps
> >>>> delete mode 100644 advsync/SpeculativeLoad.eps
> >>>> delete mode 100644 advsync/SpeculativeLoadBarrier.eps
> >>>> delete mode 100644 advsync/SpeculativeLoadBarrierCancel.eps
> >>>> delete mode 100644 advsync/SplitCache.eps
> >>>> delete mode 100644 advsync/WriteBarrierOrdering.eps
> >>>> create mode 100644 appendix/questions/.gitignore
> >>>> delete mode 100644 appendix/questions/after.eps
> >>>> rename appendix/rcuhist/{ => .unused}/linux-RCU.eps (100%)
> >>>> rename appendix/rcuhist/{ => .unused}/linux-RCUlock.eps (100%)
> >>>> rename appendix/rcuhist/{ => .unused}/rcuAPI.eps (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/AdvanceRCUCallbacks.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCU.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCUBH.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/BigTreeClassicRCUBHdyntick.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/FlatClassicRCU.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/GenericRCUStateMachine.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/GracePeriodBad.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/RCUTreeInit.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/RCUTreeLeafScan.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/RCUTreeQSScan.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/RCUbweBlock.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptCounterFlip.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptLists.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptListsCompare.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptStates.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptTimeline.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/RCUpreemptValidation.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/RCUrt-MBnowaste.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/RCUrt-MBwaste.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/TinyRCUCallbacks.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/TreeClassicRCU.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/TreeClassicRCUGP.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/TreeMapping.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/TreeRCUStateMachine.fig (100%)
> >>>> rename appendix/rcuimpl/{ => .unused}/srcuds.fig (100%)
> >>>> delete mode 100644 appendix/rcuimpl/AdvanceRCUCallbacks.eps
> >>>> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCU.eps
> >>>> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCUBH.eps
> >>>> delete mode 100644 appendix/rcuimpl/BigTreeClassicRCUBHdyntick.eps
> >>>> delete mode 100644 appendix/rcuimpl/FlatClassicRCU.eps
> >>>> delete mode 100644 appendix/rcuimpl/GenericRCUStateMachine.eps
> >>>> delete mode 100644 appendix/rcuimpl/GracePeriodBad.eps
> >>>> delete mode 100644 appendix/rcuimpl/RCUTreeInit.eps
> >>>> delete mode 100644 appendix/rcuimpl/RCUTreeLeafScan.eps
> >>>> delete mode 100644 appendix/rcuimpl/RCUTreeQSScan.eps
> >>>> delete mode 100644 appendix/rcuimpl/RCUbweBlock.eps
> >>>> delete mode 100644 appendix/rcuimpl/RCUpreemptCounterFlip.eps
> >>>> delete mode 100644 appendix/rcuimpl/RCUpreemptLists.eps
> >>>> delete mode 100644 appendix/rcuimpl/RCUpreemptListsCompare.eps
> >>>> delete mode 100644 appendix/rcuimpl/RCUpreemptStates.eps
> >>>> delete mode 100644 appendix/rcuimpl/RCUpreemptTimeline.eps
> >>>> delete mode 100644 appendix/rcuimpl/RCUpreemptValidation.eps
> >>>> delete mode 100644 appendix/rcuimpl/RCUrt-MBnowaste.eps
> >>>> delete mode 100644 appendix/rcuimpl/RCUrt-MBwaste.eps
> >>>> delete mode 100644 appendix/rcuimpl/TinyRCUCallbacks.eps
> >>>> delete mode 100644 appendix/rcuimpl/TreeClassicRCU.eps
> >>>> delete mode 100644 appendix/rcuimpl/TreeClassicRCUGP.eps
> >>>> delete mode 100644 appendix/rcuimpl/TreeMapping.eps
> >>>> delete mode 100644 appendix/rcuimpl/TreeRCUStateMachine.eps
> >>>> delete mode 100644 appendix/rcuimpl/srcuds.eps
> >>>> create mode 100644 appendix/whymb/.gitignore
> >>>> delete mode 100644 appendix/whymb/MESI.eps
> >>>> delete mode 100644 appendix/whymb/cacheSB.eps
> >>>> delete mode 100644 appendix/whymb/cacheSBf.eps
> >>>> delete mode 100644 appendix/whymb/cacheSBfIQ.eps
> >>>> delete mode 100644 appendix/whymb/cacheSC.eps
> >>>> delete mode 100644 appendix/whymb/cacheSCwrite.eps
> >>>> delete mode 100644 appendix/whymb/hostileordering.eps
> >>>> delete mode 100644 count/GlobalInc.eps
> >>>> delete mode 100644 count/GlobalTreeInc.eps
> >>>> delete mode 100644 count/PerThreadInc.eps
> >>>> delete mode 100644 count/count_lim.eps
> >>>> delete mode 100644 count/globbal.eps
> >>>> create mode 100644 cpu/.gitignore
> >>>> delete mode 100644 cpu/3DI.eps
> >>>> delete mode 100644 cpu/SystemArch.eps
> >>>> create mode 100644 datastruct/.gitignore
> >>>> delete mode 100644 datastruct/hashdiagram.eps
> >>>> create mode 100644 defer/.gitignore
> >>>> delete mode 100644 defer/GracePeriodGood.eps
> >>>> delete mode 100644 defer/Linux_hlist.eps
> >>>> delete mode 100644 defer/Linux_list.eps
> >>>> delete mode 100644 defer/Linux_list_abbr.eps
> >>>> delete mode 100644 defer/QSBRGracePeriod.eps
> >>>> delete mode 100644 defer/RCUDeletion.eps
> >>>> delete mode 100644 defer/RCUListDeleteClassic.eps
> >>>> delete mode 100644 defer/RCUReplacement.eps
> >>>> delete mode 100644 defer/RCUenvAPI.eps
> >>>> delete mode 100644 defer/rwlockRCUupdate.eps
> >>>> create mode 100644 formal/.gitignore
> >>>> delete mode 100644 formal/RCUpreemptStates.eps
> >>>> create mode 100644 intro/.gitignore
> >>>> delete mode 100644 intro/FourTaskCategories.eps
> >>>> delete mode 100644 intro/FourTaskOrder.eps
> >>>> delete mode 100644 intro/Generality.eps
> >>>> delete mode 100644 intro/PPGrelation.eps
> >>>> create mode 100644 locking/.gitignore
> >>>> delete mode 100644 locking/DeadlockCycle.eps
> >>>> delete mode 100644 locking/LayeredLockHierarchy.eps
> >>>> delete mode 100644 locking/LocalLockHierarchy.eps
> >>>> delete mode 100644 locking/NonLocalLockHierarchy.eps
> >>>> delete mode 100644 locking/rnplock.eps
> >>>> create mode 100644 toolsoftrade/.gitignore
> >>>> delete mode 100644 toolsoftrade/shellparallel.eps
> >>>>
> >>>
> >>>
> >>
> >
> >
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [RFT GIT PULL v2] Makefile: Add ".fig -> .eps" rule
2016-08-11 23:47 ` Akira Yokosawa
2016-08-12 0:11 ` Paul E. McKenney
@ 2016-08-12 1:56 ` Akira Yokosawa
2016-08-14 2:16 ` Paul E. McKenney
1 sibling, 1 reply; 9+ messages in thread
From: Akira Yokosawa @ 2016-08-12 1:56 UTC (permalink / raw)
To: paulmck; +Cc: perfbook, Akira Yokosawa
Hi Paul,
I've added the availability check of "fig2eps" in Makefile, as well as that of "dot"
command which was added fairly recently to necessary commands.
I hope this helps people after the merge of branch.
If you want to see what the error message would look like, after pulling this branch,
modify the definition of "FIG2EPS" or "DOT" macro around line 40 of Makefile,
then "make neatfreak; make" will show a false positive error message.
This pull request is relative to the previous RFT pull request.
Thanks, Akira
-------
The following changes since commit 641b6a5541323d737b1e2ca31e9a805da19514f1:
FAQ-BUILD.txt: Add 'fig2ps' as necessary package on Ubuntu (2016-08-11 22:50:02 +0900)
are available in the git repository at:
https://github.com/akiyks/perfbook.git makefile-add-fig-eps-rule
for you to fetch changes up to 7f8776ab67bb37bccb7128dc67be6c85a5aacfb6:
Makefile: Add availability check of 'fig2eps' and 'dot' commands (2016-08-12 10:39:36 +0900)
----------------------------------------------------------------
Akira Yokosawa (1):
Makefile: Add availability check of 'fig2eps' and 'dot' commands
Makefile | 10 ++++++++++
1 file changed, 10 insertions(+)
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFT GIT PULL v2] Makefile: Add ".fig -> .eps" rule
2016-08-12 1:56 ` [RFT GIT PULL v2] " Akira Yokosawa
@ 2016-08-14 2:16 ` Paul E. McKenney
0 siblings, 0 replies; 9+ messages in thread
From: Paul E. McKenney @ 2016-08-14 2:16 UTC (permalink / raw)
To: Akira Yokosawa; +Cc: perfbook
On Fri, Aug 12, 2016 at 10:56:11AM +0900, Akira Yokosawa wrote:
> Hi Paul,
>
> I've added the availability check of "fig2eps" in Makefile, as well as that of "dot"
> command which was added fairly recently to necessary commands.
>
> I hope this helps people after the merge of branch.
>
> If you want to see what the error message would look like, after pulling this branch,
> modify the definition of "FIG2EPS" or "DOT" macro around line 40 of Makefile,
> then "make neatfreak; make" will show a false positive error message.
>
> This pull request is relative to the previous RFT pull request.
Pull the full group, thank you!
Thanx, Paul
> Thanks, Akira
> -------
> The following changes since commit 641b6a5541323d737b1e2ca31e9a805da19514f1:
>
> FAQ-BUILD.txt: Add 'fig2ps' as necessary package on Ubuntu (2016-08-11 22:50:02 +0900)
>
> are available in the git repository at:
>
> https://github.com/akiyks/perfbook.git makefile-add-fig-eps-rule
>
> for you to fetch changes up to 7f8776ab67bb37bccb7128dc67be6c85a5aacfb6:
>
> Makefile: Add availability check of 'fig2eps' and 'dot' commands (2016-08-12 10:39:36 +0900)
>
> ----------------------------------------------------------------
> Akira Yokosawa (1):
> Makefile: Add availability check of 'fig2eps' and 'dot' commands
>
> Makefile | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2016-08-14 8:43 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-11 15:14 [RFT GIT PULL] Makefile: Add ".fig -> .eps" rule Akira Yokosawa
2016-08-11 17:54 ` Paul E. McKenney
2016-08-11 23:23 ` Akira Yokosawa
2016-08-11 23:24 ` Akira Yokosawa
2016-08-11 23:39 ` Paul E. McKenney
2016-08-11 23:47 ` Akira Yokosawa
2016-08-12 0:11 ` Paul E. McKenney
2016-08-12 1:56 ` [RFT GIT PULL v2] " Akira Yokosawa
2016-08-14 2:16 ` Paul E. McKenney
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.