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