PERF-FTRACE(1) perf Manual PERF-FTRACE(1)

perf-ftrace - واسط ساده برای قابلیت‌های ftrace در هسته

perf ftrace {trace|latency|profile} <command>

دستور perf ftrace مجموعه‌ای از زیردستورها را فراهم می‌کند که از زیرساخت ftrace هسته استفاده می‌کنند.

دستور 'perf ftrace trace' یک واسط ساده برای ftrace است. در حال حاضر
تنها از ردیابی تک‌رشته‌ای پشتیبانی می‌کند و صرفاً trace_pipe را به صورت متنی خوانده
و به خروجی استاندارد (stdout) می‌نویسد.
دستور 'perf ftrace latency' تاخیر اجرای یک تابع مشخص را محاسبه کرده
(اختیاری با BPF) و آن را به شکل یک نمودار فراوانی (هیستوگرام) نمایش می‌دهد.
دستور 'perf ftrace profile' یک نمایه اجرایی برای هر تابع شامل زمان کل،
میانگین، حداکثر زمان و تعداد فراخوانی‌ها نمایش می‌دهد.

گزینه‌های زیر برای perf ftrace به کار می‌روند.

-p, --pid=

ردیابی روی شناسه فرآیند (PID) موجود (فهرست جداشده با کاما).

--tid=

ردیابی روی شناسه رشته (TID) موجود (فهرست جداشده با کاما).

-a, --all-cpus

اجبار به جمع‌آوری داده در سطح کل سیستم. اسکریپت‌هایی که بدون <command> اجرا می‌شوند معمولاً به‌طور پیش‌فرض از -a استفاده می‌کنند، در حالی که اسکریپت‌های اجراشده با <command> معمولاً چنین نیستند - این گزینه امکان اجرای حالت دوم را در حالت سراسری سیستم فراهم می‌کند.

-C, --cpu=

ردیابی فقط برای فهرست پردازنده‌های ارائه‌شده. چندین پردازنده را می‌توان به‌صورت فهرستی جداشده با کاما و بدون فاصله مشخص کرد، مانند: 0,1. بازه‌های پردازنده‌ها با - مشخص می‌شوند: 0-2. پیش‌فرض، ردیابی روی همه پردازنده‌های آنلاین است.

-v, --verbose

افزایش سطح جزئیات پیام‌ها.

-t, --tracer=

ردیاب مورد استفاده هنگامی که هیچ‌کدام از گزینه‌های -G یا -F مشخص نشده باشند: function_graph یا function.

-F, --funcs

فهرست کردن توابع موجود برای ردیابی. این گزینه یک الگو را می‌پذیرد تا فقط توابع مورد نظر فهرست شوند.

-D, --delay

زمان انتظار (میلی‌ثانیه) پیش از آغاز ردیابی پس از شروع برنامه.

-m, --buffer-size

تنظیم اندازه بافر ردیابی به ازای هر پردازنده؛ انتظار می‌رود <size> یک عدد با نویسه واحد الصاق‌شده - B/K/M/G باشد.

--inherit

ردیابی فرآیندهای فرزند ایجادشده توسط هدف مورد نظر.

-T, --trace-funcs=

انتخاب ردیاب function و تنظیم فیلتر تابع روی تابع داده‌شده (یا یک الگوی glob). با استفاده بیش از یک بار از این گزینه می‌توان چندین تابع را مشخص کرد. آرگومان تابع می‌تواند یک الگوی glob نیز باشد. این مقدار به set_ftrace_filter در tracefs ارسال خواهد شد.

-N, --notrace-funcs=

انتخاب ردیاب function و عدم ردیابی توابع ارائه‌شده در آرگومان. همانند گزینه -T، این گزینه می‌تواند بیش از یک بار برای مشخص کردن چندین تابع (یا الگوهای glob) استفاده شود. این مقدار به set_ftrace_notrace در tracefs ارسال خواهد شد.

--func-opts

فهرست گزینه‌های مجاز برای تنظیم:
•call-graph - نمایش رد پشته هسته برای ردیاب تابع (function tracer).
•irq-info - نمایش اطلاعات بافتار وقفه (irq) برای ردیاب تابع.

-G, --graph-funcs=

انتخاب ردیاب function_graph و تنظیم فیلتر گراف روی تابع داده‌شده (یا یک الگوی glob). این گزینه برای ردیابی توابعی که از درون تابع داده‌شده اجرا می‌شوند مفید است. این گزینه می‌تواند بیش از یک بار برای مشخص کردن چندین تابع به کار رود. این مقدار به set_graph_function در tracefs ارسال خواهد شد.

-g, --nograph-funcs=

انتخاب ردیاب function_graph و تنظیم فیلتر عدم ردیابی گراف روی تابع داده‌شده (یا یک الگوی glob). همانند گزینه -G، این گزینه فقط برای ردیاب function_graph کاربرد دارد و ردیابی را برای توابعی که از تابع داده‌شده اجرا می‌شوند غیرفعال می‌کند. این گزینه می‌تواند بیش از یک بار برای مشخص کردن چندین تابع استفاده شود. این مقدار به set_graph_notrace در tracefs ارسال خواهد شد.

--graph-opts

فهرست گزینه‌های مجاز برای تنظیم:
•args - نمایش آرگومان‌های تابع.
•retval - نمایش مقدار بازگشتی تابع.
•retval-hex - نمایش مقدار بازگشتی تابع در قالب هگزادسیمال.
•retaddr - نمایش آدرس بازگشت تابع.
•nosleep-time - اندازه‌گیری زمان صرف‌شده روی پردازنده (on-CPU) فقط برای ردیاب function_graph.
•noirqs - نادیده گرفتن توابعی که درون وقفه رخ می‌دهند.
•verbose - نمایش نام فرآیندها، شناسه‌ها (PID)، برچسب‌های زمانی و موارد دیگر.
•thresh=<n> - تنظیم آستانه مدت‌زمان ردیابی بر حسب میکروثانیه.
•depth=<n> - تنظیم حداکثر عمق برای دنبال کردن توسط ردیاب گراف تابع.
•tail - چاپ نام تابع در پایان آن.

-T, --trace-funcs=

تنظیم نام تابع برای دریافت نمودار فراوانی (هیستوگرام). برخلاف perf ftrace trace، این گزینه تنها اجازه مشخص کردن یک تابع را برای محاسبه هیستوگرام می‌دهد.

-e, --events=

تنظیم جفت رویدادها برای دریافت نمودار فراوانی. نمودار فراوانی بر اساس اختلاف زمانی میان دو رویداد از یک رشته محاسبه می‌شود. این گزینه نیازمند گزینه -b/--use-bpf است.

-b, --use-bpf

استفاده از BPF برای اندازه‌گیری تاخیر تابع به جای استفاده از ftrace (به صورت داخلی از ردیاب function_graph استفاده می‌کند).

-n, --use-nsec

استفاده از نانوثانیه به جای میکروثانیه به عنوان واحد پایه نمودار فراوانی.

--bucket-range=

دامنه هر بازه (bucket) بر حسب میلی‌ثانیه یا نانوثانیه (با توجه به -n/--use-nsec)؛ پیش‌فرض در حالت log2() است.

--min-latency=

حداقل تاخیر برای شروع اولین بازه، بر حسب میلی‌ثانیه یا نانوثانیه (با توجه به -n/--use-nsec).

--max-latency=

حداکثر تاخیر برای شروع آخرین بازه، بر حسب میلی‌ثانیه یا نانوثانیه (با توجه به -n/--use-nsec). اگر مقدار واردشده منجر به بیش از ۲۲ بازه شود، این تنظیم نادیده گرفته می‌شود.

-T, --trace-funcs=

تنظیم فیلتر تابع روی تابع داده‌شده (یا یک الگوی glob). با استفاده بیش از یک بار از این گزینه می‌توان چندین تابع را مشخص کرد. آرگومان تابع می‌تواند یک الگوی glob نیز باشد. این مقدار به set_ftrace_filter در tracefs ارسال خواهد شد.

-N, --notrace-funcs=

عدم ردیابی توابع ارائه‌شده در آرگومان. همانند گزینه -T، این گزینه می‌تواند بیش از یک بار برای مشخص کردن چندین تابع (یا الگوهای glob) استفاده شود. این مقدار به set_ftrace_notrace در tracefs ارسال خواهد شد.

-G, --graph-funcs=

تنظیم فیلتر گراف روی تابع داده‌شده (یا یک الگوی glob). این گزینه برای ردیابی توابعی که از درون تابع داده‌شده اجرا می‌شوند مفید است. این گزینه می‌تواند بیش از یک بار برای مشخص کردن چندین تابع به کار رود. این مقدار به set_graph_function در tracefs ارسال خواهد شد.

-g, --nograph-funcs=

تنظیم فیلتر عدم ردیابی گراف روی تابع داده‌شده (یا یک الگوی glob). همانند گزینه -G، این گزینه فقط برای ردیاب function_graph کاربرد دارد و ردیابی را برای توابعی که از تابع داده‌شده اجرا می‌شوند غیرفعال می‌کند. این گزینه می‌تواند بیش از یک بار برای مشخص کردن چندین تابع استفاده شود. این مقدار به set_graph_notrace در tracefs ارسال خواهد شد.

-m, --buffer-size

تنظیم اندازه بافر ردیابی به ازای هر پردازنده؛ انتظار می‌رود <size> یک عدد با نویسه واحد الصاق‌شده - B/K/M/G باشد.

-s, --sort=

مرتب‌سازی نتیجه بر اساس فیلد داده‌شده. مقادیر موجود عبارتند از: total، avg، max، count، name. مقدار پیش‌فرض total است.

--graph-opts

فهرست گزینه‌های مجاز برای تنظیم:
•nosleep-time - اندازه‌گیری زمان صرف‌شده روی پردازنده (on-CPU) فقط برای ردیاب function_graph.
•noirqs - نادیده گرفتن توابعی که درون وقفه رخ می‌دهند.
•thresh=<n> - تنظیم آستانه مدت‌زمان ردیابی بر حسب میکروثانیه.
•depth=<n> - تنظیم حداکثر عمق برای دنبال کردن توسط ردیاب گراف تابع.

perf-record(1), perf-trace(1)

09/04/2026 perf