'\" t .\" Title: perf-c2c .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 09/04/2026 .\" Manual: perf Manual .\" Source: perf .\" Language: English .\" .TH "PERF\-C2C" "1" "09/04/2026" "perf" "perf Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" perf-c2c \- تحلیل‌گر C2C/HITM داده‌های اشتراکی .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fIperf c2c record\fR [] \fIperf c2c record\fR [] \-\- [] \fIperf c2c report\fR [] .fi .SH "توضیحات (DESCRIPTION)" .sp عبارت C2C مخفف Cache To Cache (حافظه نهان به حافظه نهان) است\&. .sp ابزار perf c2c سازوکارهایی را برای تحلیل C2C/HITM داده‌های اشتراکی فراهم می‌آورد\&. این ابزار به شما امکان می‌دهد رقابت بر سر خط حافظه نهان (cacheline contentions) را ردیابی کنید\&. .sp در پردازنده‌های Intel، این ابزار مبتنی بر رویدادهای تأخیر بارگذاری (load latency) و سازوکار ذخیره‌سازی دقیق (precise store facility) ارائه‌شده توسط پردازنده‌های Intel است\&. در PowerPC، این ابزار از نمونه‌برداری تصادفی دستورالعمل همراه با قابلیت آستانه‌گذاری استفاده می‌کند\&. در AMD، این ابزار از IBS op pmu بهره می‌برد (به‌دلیل محدودیت‌های سخت‌افزاری، perf c2c در پردازنده‌های Zen3 پشتیبانی نمی‌شود)\&. در Arm64 از SPE برای نمونه‌برداری از عملیات بارگذاری (load) و ذخیره‌سازی (store) استفاده می‌کند، بنابراین به پشتیبانی سخت‌افزاری و هسته نیاز دارد\&. برای راهنمای راه‌اندازی، \fBperf-arm-spe\fR(1) را ببینید\&. با توجه به ماهیت آماری نمونه‌برداری Arm SPE، تمام عملیات‌های حافظه نمونه‌برداری نخواهند شد\&. .sp این رویدادها موارد زیر را فراهم می‌کنند: \- نشانی حافظه مورد دسترسی \- نوع دسترسی (جزئیات load و store) \- تأخیر (بر حسب چرخه) دسترسی بارگذاری .sp ابزار c2c امکانی را برای ضبط این داده‌ها و گزارش جزئیات دسترسی برای خطوط حافظه نهانی فراهم می‌کند که بیشترین رقابت \- بالاترین تعداد دسترسی‌های HITM \- را دارند\&. .sp گردش کار پایه با این ابزار از مراحل استاندارد record/report پیروی می‌کند\&. کاربر از دستور record برای ضبط داده‌های رویدادها و از دستور report برای نمایش آن استفاده می‌کند\&. .SH "گزینه‌های ضبط (RECORD OPTIONS)" .PP \-e, \-\-event= .RS 4 انتخاب رویداد PMU\&. از \fIperf c2c record \-e list\fR برای فهرست کردن رویدادهای موجود استفاده کنید\&. .RE .PP \-v, \-\-verbose .RS 4 نمایش خروجی با جزئیات بیشتر (نمایش خطاهای باز کردن شمارنده و غیره)\&. .RE .PP \-l, \-\-ldlat .RS 4 پیکربندی تأخیر mem\-loads\&. در Intel، Arm64 و برخی از پردازنده‌های AMD پشتیبانی می‌شود\&. در سایر معماری‌ها نادیده گرفته می‌شود\&. .sp .if n \{\ .RS 4 .\} .nf در پردازنده‌های پشتیبانی‌شده AMD: \- فایل /sys/bus/event_source/devices/ibs_op/caps/ldlat حاوی \*(Aq1\*(Aq است\&. \- مقادیر تأخیر پشتیبانی‌شده از 128 تا 2048 (شامل هر دو) هستند\&. \- مقدار تأخیری که مضربی از 128 باشد، در مقایسه با سایر مقادیر سربار profiling اندکی کمتری تحمیل می‌کند\&. \- فیلتر کردن تأخیر بارگذاری (load latency) به‌طور پیش‌فرض غیرفعال است\&. .fi .if n \{\ .RE .\} .RE .PP \-k, \-\-all\-kernel .RS 4 پیکربندی تمام رویدادهای استفاده‌شده برای اجرا در فضای هسته (kernel space)\&. .RE .PP \-u, \-\-all\-user .RS 4 پیکربندی تمام رویدادهای استفاده‌شده برای اجرا در فضای کاربر (user space)\&. .RE.SH "گزینه‌های گزارش (REPORT OPTIONS)" .PP \-k, \-\-vmlinux= .RS 4 مسیر فایل vmlinux .RE .PP \-v, \-\-verbose .RS 4 پرگویی بیشتر (نمایش خطاهای باز کردن شمارنده و غیره)\&. .RE .PP \-i, \-\-input .RS 4 مشخص کردن فایل ورودی برای پردازش\&. .RE .PP \-N, \-\-node\-info .RS 4 نمایش اطلاعات اضافی گره در گزارش (بخش NODE INFO را ببینید) .RE .PP \-c, \-\-coalesce .RS 4 مشخص کردن فیلدهای مرتب‌سازی برای نمایش تک‌خط حافظه موقت (cacheline)\&. فیلدهای زیر در دسترس هستند: tid، pid، iaddr، dso (بخش COALESCE را ببینید) .RE .PP \-g, \-\-call\-graph .RS 4 برپایی پارامترهای زنجیره فراخوانی (callchains)\&. لطفاً برای جزئیات به صفحه راهنمای perf\-report مراجعه کنید\&. .RE .PP \-\-stdio .RS 4 اجبار به خروجی stdio (بخش STDIO OUTPUT را ببینید) .RE .PP \-\-stats .RS 4 نمایش صرفاً جدول‌های آماری و اجبار به حالت stdio\&. .RE .PP \-\-full\-symbols .RS 4 نمایش طول کامل نمادها\&. .RE .PP \-\-no\-source .RS 4 عدم نمایش ستون Source:Line\&. .RE .PP \-\-show\-all .RS 4 نمایش تمام خطوط HITM ثبت‌شده، بدون در نظر گرفتن محدودیت 0\&.0005 درصدی HITM\&. .RE .PP \-f, \-\-force .RS 4 عدم انجام اعتبارسنجی مالکیت\&. .RE .PP \-d, \-\-display .RS 4 تغییر به نوع HITM (rmt، lcl) یا نوع تجسس همتا (peer) جهت نمایش و مرتب‌سازی بر اساس آن\&. کل HITMها (tot) به عنوان پیش‌فرض در نظر گرفته می‌شود، به جز در Arm64 که حالت peer پیش‌فرض است\&. .RE .PP \-\-stitch\-lbr .RS 4 نمایش گراف فراخوانی با LBRهای پیوندخورده (stitched)، که ممکن است گراف فراخوانی کامل‌تری ارائه دهد\&. فایل perf\&.data باید با استفاده از perf c2c record \-\-call\-graph lbr به دست آمده باشد\&. به‌طور پیش‌فرض غیرفعال است\&. در موارد رایج با سرریز پشته فراخوانی، می‌تواند پشته‌های فراخوانی بهتری نسبت به خروجی پیش‌فرض پشته فراخوانی lbr بازسازی کند\&. اما این رویکرد بی‌نقص نیست\&. مواردی وجود دارد که در آن‌ها ممکن است به دلیل تطابق‌های نادرست، پشته‌های فراخوانی اشتباه ایجاد شود\&. محدودیت‌های شناخته‌شده شامل مدیریت استثناهایی مانند setjmp/longjmp است که در آن‌ها فراخوانی‌ها/بازگشت‌ها مطابقت نخواهند داشت\&. .RE .PP \-\-double\-cl .RS 4 گروه‌بندی تشخیص رویدادهای خط حافظه موقت (cacheline) مشترک در دانه‌بندی خط حافظه موقت دوگانه\&. برخی معماری‌ها دارای ویژگی Adjacent Cacheline Prefetch هستند که باعث می‌شود اشتراک خط حافظه موقت رفتاری مشابه دو برابر شدن اندازه خط حافظه موقت داشته باشد\&. .RE .PP \-M, \-\-disassembler\-style= .RS 4 تنظیم سبک دیس‌اسمبلر برای objdump\&. .RE .PP \-\-objdump= .RS 4 مسیر فایل باینری objdump\&. .RE.SH "C2C RECORD" .sp دستور perf c2c record گزینه‌های مربوط به تحلیل cachelineهای HITM را پیکربندی کرده و دستور استاندارد perf record را فراخوانی می‌کند\&. .sp گزینه‌های زیر از perf record به‌طور پیش‌فرض پیکربندی شده‌اند: (برای جزئیات به صفحهٔ راهنمای perf record مراجعه کنید) .sp .if n \{\ .RS 4 .\} .nf \-W,\-d,\-\-phys\-data,\-\-sample\-cpu .fi .if n \{\ .RE .\} .sp جدول زیر رویدادهای پایش‌شده در معماری‌های گوناگون را فهرست می‌کند\&. ابزار رویدادهای پیش‌فرض را انتخاب خواهد کرد، مگر آنکه با گزینهٔ \-e به شکل دیگری مشخص شده باشد\&. .sp .if n \{\ .RS 4 .\} .nf +\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | Arch | Configuration | Options | Events | +\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | Intel | Default | \-e ldlat\-loads | cpu/mem\-loads,ldlat=30/P | | | | \-e ldlat\-stores | cpu/mem\-stores/P | | |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | | Load only | \-e ldlat\-loads | cpu/mem\-loads,ldlat=30/P | | |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | | Store only | \-e ldlat\-stores | cpu/mem\-stores/P | +\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | Intel | Default | \-e ldlat\-loads | {cpu/mem\-loads\-aux/,cpu/mem\-loads,ldlat=30/}:P | | with | | \-e ldlat\-stores | cpu/mem\-stores/P | | AUX |\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | | Load only | \-e ldlat\-loads | {cpu/mem\-loads\-aux/,cpu/mem\-loads,ldlat=30/}:P | | |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | | Store only | \-e ldlat\-stores | cpu/mem\-stores/P | +\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | AMD | Default | \-e mem\-ldst | ibs_op// (without latency support) | | | | | ibs_op/ldlat=30/ (with latency support) | +\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | PowerPC| Default | \-e ldlat\-loads | cpu/mem\-loads/ | | | | \-e ldlat\-stores | cpu/mem\-stores/ | | |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | | Load only | \-e ldlat\-loads | cpu/mem\-loads/ | | |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | | Store only | \-e ldlat\-stores | cpu/mem\-stores/ | +\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | Arm | Default | \-e spe\-ldst | arm_spe_0/ts_enable=1,pa_enable=1,load_filter=1,store_filter=1,min_latency=30/ | | SPE |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | | Load only | \-e spe\-load | arm_spe_0/ts_enable=1,pa_enable=1,load_filter=1,min_latency=30/ | | |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | | Store only | \-e spe\-store | arm_spe_0/ts_enable=1,pa_enable=1,store_filter=1/ | +\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ .fi .if n \{\ .RE .\} .sp کاربر می‌تواند هر گزینهٔ \fIperf record\fR را پس از علامت \fI\-\-\fR مشخص کند، مانند (برای فعال‌سازی زنجیره‌های فراخوانی و پایش در سطح کل سیستم): .sp .if n \{\ .RS 4 .\} .nf $ perf c2c record \-\- \-g \-a .fi .if n \{\ .RE .\} .sp لطفاً برای گزینه‌های خاص c2c record، بخش RECORD OPTIONS را بررسی کنید\&. .SH "C2C REPORT" .sp دستور perf c2c report تحلیل داده‌های اشتراکی را نمایش می‌دهد\&. این دستور در دو حالت نمایش ارائه می‌شود: stdio و tui (پیش‌فرض)\&. .sp گردش‌کار دستور report به این صورت است: \- مرتب‌سازی تمام داده‌ها بر اساس نشانی cacheline \- ذخیرهٔ جزئیات دسترسی برای هر cacheline \- مرتب‌سازی تمام cachelineها بر اساس تنظیمات کاربر \- نمایش داده‌ها .sp به‌طور کلی، خروجی perf report از ۲ نمای اصلی تشکیل شده است: ۱) فهرست پرهزینه‌ترین cachelineها ۲) جزئیات آفست‌ها برای هر cacheline .sp برای هر cacheline در فهرست ۱)، داده‌های زیر نمایش داده می‌شود: (هر دو حالت stdio و TUI از فیلدهای خروجی یکسانی پیروی می‌کنند) .sp .if n \{\ .RS 4 .\} .nf Index \- نمایه با مبنای صفر برای شناسایی cacheline .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Cacheline \- نشانی cacheline (عدد هگزادسیمال) .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Rmt/Lcl Hitm (نمایش با انواع HITM) \- درصد cacheline از کل دسترسی‌های دوردست/محلی HITM .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Peer Snoop (نمایش با نوع peer) \- درصد cacheline از کل دسترسی‌های همتا (peer) .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf LLC Load Hitm \- Total, LclHitm, RmtHitm (برای نمایش با انواع HITM) \- شمار بارهای HITM کل/محلی/دوردست .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Load Peer \- Total, Local, Remote (برای نمایش با نوع peer) \- شمار بارهای کل/محلی/دوردست از حافظهٔ نهان همتا یا DRAM .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Total records \- مجموع کل دسترسی‌ها به cachelineها .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Total loads \- مجموع کل دسترسی‌های بارگذاری (load) .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Total stores \- مجموع کل دسترسی‌های ذخیره‌سازی (store) .fi .if n \{\ .RE .\}.sp .if n \{\ .RS 4 .\} .nf Store Reference \- L1Hit, L1Miss, N/A L1Hit \- دسترسی‌های store که با اصابت به L1 مواجه شده‌اند L1Miss \- دسترسی‌های store که در L1 دچار عدم اصابت شده‌اند N/A \- دسترسی‌های store که سطح حافظه آن‌ها در دسترس نیست .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Core Load Hit \- FB, L1, L2 \- تعداد اصابت‌های بارگذاری (load hits) در حافظه‌های نهان L1 ،FB (بافر پُرکننده) و L2 .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf LLC Load Hit \- LlcHit, LclHitm \- تعداد دسترسی‌های بارگذاری LLC، شامل اصابت‌های LLC و HITMهای LLC .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf RMT Load Hit \- RmtHit, RmtHitm \- تعداد دسترسی‌های بارگذاری دوردست (remote)، شامل اصابت‌های دوردست و HITMهای دوردست؛ روی هسته‌های Arm neoverse، از RmtHit برای شمارش دسترسی‌های دوردست استفاده می‌شود، شامل DRAM دوردست یا هر سطح بالاتری از حافظه نهان در گره دوردست .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Load Dram \- Lcl, Rmt \- تعداد دسترسی‌های محلی (local) و دوردست (remote) به DRAM .fi .if n \{\ .RE .\} .sp برای هر آفست در فهرست ۲)، داده‌های زیر نمایش داده می‌شود: .sp .if n \{\ .RS 4 .\} .nf HITM \- Rmt, Lcl (نمایش با انواع HITM) \- درصد دسترسی‌های HITM دوردست/محلی برای آفست مشخص در خط حافظه نهان (cacheline) .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Peer Snoop \- Rmt, Lcl (نمایش با نوع peer) \- درصد دسترسی‌های همتا (peer) دوردست/محلی برای آفست مشخص در خط حافظه نهان (cacheline) .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Store Refs \- L1 Hit, L1 Miss, N/A \- درصد دسترسی‌های store که دارای اصابت به L1، عدم اصابت در L1 و سطح حافظه نامشخص (N/A) برای آفست مشخص در خط حافظه نهان هستند .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Data address \- Offset \- نشانی آفست (offset address) .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Pid \- شناسه فرآیند (pid) مسئول دسترسی‌ها .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Tid \- شناسه ریسه (tid) مسئول دسترسی‌ها .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Code address \- نشانی کد مسئول دسترسی‌ها .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf cycles \- rmt hitm, lcl hitm, load (نمایش با انواع HITM) \- مجموع چرخه‌ها برای دسترسی‌های مشخص \- HITM دوردست/محلی و بارگذاری عمومی .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf cycles \- rmt peer, lcl peer, load (نمایش با نوع peer) \- مجموع چرخه‌ها برای دسترسی‌های مشخص \- بارگذاری همتای دوردست/محلی و بارگذاری عمومی .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf cpu cnt \- تعداد پردازنده‌هایی که در دسترسی مشارکت داشته‌اند .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Symbol \- نماد کد مرتبط با مقدار \*(AqCode address\*(Aq .fi .if n \{\ .RE .\}.sp .if n \{\ .RS 4 .\} .nf Shared Object \- نام شئ اشتراکی مربوط به مقدار \*(AqCode address\*(Aq .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Source:Line \- اطلاعات کد مبدأ مربوط به مقدار \*(AqCode address\*(Aq .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Node \- گره‌های مشارکت‌کننده در دسترسی (بخش اطلاعات گره (NODE INFO) را ببینید) .fi .if n \{\ .RE .\} .SH "اطلاعات گره (NODE INFO)" .sp فیلد \fINode\fR گره‌هایی را نمایش می‌دهد که به آفست خط حافظه نهان (cacheline) داده‌شده دسترسی دارند\&. خروجی آن به ۳ حالت ارائه می‌شود: \- شناسه‌های گره که با \fI,\fR جدا شده‌اند \- شناسه‌های گره به همراه آمار برای هر شناسه، در قالب زیر: Node{cpus %hitms %stores} (نمایش با انواع HITM) Node{cpus %peers %stores} (نمایش با نوع peer) \- شناسه‌های گره با فهرستی از پردازنده‌های متأثر در قالب زیر: Node{cpu list} .sp کاربر می‌تواند با گزینهٔ \-N بین حالت‌های بالا جابه‌جا شود یا از کلید \fIn\fR برای جابه‌جایی تعاملی در حالت TUI استفاده کند\&. .SH "ادغام (COALESCE)" .sp کاربر می‌تواند نحوهٔ مرتب‌سازی آفست‌ها را برای خط حافظه نهان مشخص کند\&. .sp فیلدهای زیر در دسترس هستند و مجموعه فیلدهای نهایی را برای خروجی آفست‌های خط حافظه نهان تعیین می‌کنند: .sp .if n \{\ .RS 4 .\} .nf tid \- ادغام بر اساس TIDهای فرایند pid \- ادغام بر اساس PIDهای فرایند iaddr \- ادغام بر اساس آدرس کد؛ فیلدهای زیر نمایش داده می‌شوند: Code address, Code symbol, Shared Object, Source line dso \- ادغام بر اساس شئ اشتراکی (shared object) .fi .if n \{\ .RE .\} .sp به‌طور پیش‌فرض، ادغام با \fIpid,iaddr\fR تنظیم شده است\&. .SH "خروجی STDIO (STDIO OUTPUT)" .sp خروجی stdio داده‌ها را روی خروجی استاندارد نمایش می‌دهد\&. .sp جدول‌های زیر نمایش داده می‌شوند: Trace Event Information \- آمار کلی دسترسی‌های حافظه .sp .if n \{\ .RS 4 .\} .nf Global Shared Cache Line Event Information \- آمار کلی دربارهٔ خطوط حافظه نهان اشتراکی .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Shared Data Cache Line Table \- فهرست پرهزینه‌ترین خطوط حافظه نهان .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Shared Cache Line Distribution Pareto \- فهرست تمام آفست‌های دسترسی‌یافته برای هر خط حافظه نهان .fi .if n \{\ .RE .\}.SH "خروجی TUI (TUI OUTPUT)" .sp خروجی TUI یک رابط کاربری تعاملی برای پیمایش در فهرست خطوط کَش (cachelines) و نمایش جزئیات آفست (offset) فراهم می‌کند\&. .sp برای جزئیات بیشتر لطفاً با فشردن کلید \fI?\fR به پنجره راهنما مراجعه کنید\&. .SH "قدردانی (CREDITS)" .sp اگرچه Don Zickus، Dick Fowles و Joe Mario برای پیاده‌سازی این ابزار با یکدیگر همکاری کردند، اما کمک‌های اولیه فراوانی از سوی Arnaldo Carvalho de Melo، Stephane Eranian، Jiri Olsa و Andi Kleen صورت گرفت\&. .SH "وبلاگ C2C (C2C BLOG)" .sp برای توضیحات دقیق درباره سناریوهای کاربردی، وبلاگ Joe درباره ابزار c2c را بررسی کنید: \m[blue]\fBhttps://joemario\&.github\&.io/blog/2016/09/01/c2c\-blog\fR\m[] .SH "همچنین ببینید (SEE ALSO)" .sp \fBperf-record\fR(1), \fBperf-mem\fR(1), \fBperf-arm-spe\fR(1)