summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/bin/stackcollapse-record
diff options
context:
space:
mode:
authorMark Langsdorf <mark.langsdorf@amd.com>2009-10-06 14:25:02 -0500
committerAvi Kivity <avi@redhat.com>2009-12-03 09:32:17 +0200
commit565d0998ecac8373b9a9ecd5991abe74318cd235 (patch)
tree92b0964145a4e2cd7400eda3a9a8cb83eaa4ab33 /tools/perf/scripts/python/bin/stackcollapse-record
parent4b8d54f9726f1159330201c5ed2ea30bce7e63ea (diff)
downloadkernel-565d0998ecac8373b9a9ecd5991abe74318cd235.tar.gz
KVM: SVM: Support Pause Filter in AMD processors
New AMD processors (Family 0x10 models 8+) support the Pause Filter Feature. This feature creates a new field in the VMCB called Pause Filter Count. If Pause Filter Count is greater than 0 and intercepting PAUSEs is enabled, the processor will increment an internal counter when a PAUSE instruction occurs instead of intercepting. When the internal counter reaches the Pause Filter Count value, a PAUSE intercept will occur. This feature can be used to detect contended spinlocks, especially when the lock holding VCPU is not scheduled. Rescheduling another VCPU prevents the VCPU seeking the lock from wasting its quantum by spinning idly. Experimental results show that most spinlocks are held for less than 1000 PAUSE cycles or more than a few thousand. Default the Pause Filter Counter to 3000 to detect the contended spinlocks. Processor support for this feature is indicated by a CPUID bit. On a 24 core system running 4 guests each with 16 VCPUs, this patch improved overall performance of each guest's 32 job kernbench by approximately 3-5% when combined with a scheduler algorithm thati caused the VCPU to sleep for a brief period. Further performance improvement may be possible with a more sophisticated yield algorithm. Signed-off-by: Mark Langsdorf <mark.langsdorf@amd.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'tools/perf/scripts/python/bin/stackcollapse-record')
0 files changed, 0 insertions, 0 deletions
012-10-09 16:23:00 +0900'>2012-10-09CMA: migrate mlocked pagesMinchan Kim 2012-10-09mm: use clear_page_mlock() in page_remove_rmap()Hugh Dickins 2012-10-09mm: remove vma arg from page_evictableHugh Dickins 2012-10-09mm: compaction: Restart compaction from near where it left offMel Gorman 2012-10-09mm: compaction: cache if a pageblock was scanned and no pages were isolatedMel Gorman 2012-10-09revert "mm: have order > 0 compaction start off where it left"Mel Gorman 2012-10-09mm: compaction: abort compaction loop if lock is contended or run too longShaohua Li 2012-10-09cma: fix watermark checkingBartlomiej Zolnierkiewicz 2012-10-09mm: cma: discard clean pages during contiguous allocation instead of migrationMinchan Kim 2012-10-09mm: adjust final #endif position in mm/internal.hMichel Lespinasse 2012-10-09mm: compaction: capture a suitable high-order page immediately when it is mad...Mel Gorman 2012-08-21mm: compaction: Abort async compaction if locks are contended or taking too longMel Gorman 2012-07-31netvm: allow skb allocation to use PFMEMALLOC reservesMel Gorman 2012-07-31mm: sl[au]b: add knowledge of PFMEMALLOC reserve pagesMel Gorman 2012-07-31mm: setup pageblock_order before it's used by sparsememXishi Qiu 2012-07-31mm: have order > 0 compaction start off where it leftRik van Riel 2012-06-03Revert "mm: compaction: handle incorrect MIGRATE_UNMOVABLE type pageblocks"Linus Torvalds 2012-06-01Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vir...Linus Torvalds 2012-06-01new helper: vm_mmap_pgoff()Al Viro 2012-05-29mm: compaction: handle incorrect MIGRATE_UNMOVABLE type pageblocksBartlomiej Zolnierkiewicz 2012-05-29mm: rename is_mlocked_vma() to mlocked_vma_newpage()Ying Han 2012-05-21mm: compaction: export some of the functionsMichal Nazarewicz