'\" t .\" Title: trace-cmd-set .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 03/09/2026 .\" Manual: libtracefs Manual .\" Source: libtracefs .\" Language: English .\" .TH "TRACE\-CMD\-SET" "1" "03/09/2026" "libtracefs" "libtracefs 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)" trace-cmd-set \- تنظیم یک پارامتر پیکربندی در ردیاب داخلی لینوکس Ftrace .SH "خلاصه دستور (SYNOPSIS)" .sp \fBtrace\-cmd set\fR [\fIOPTIONS\fR] [\fIcommand\fR] .SH "توضیحات (DESCRIPTION)" .sp دستور trace\-cmd(1) set یک پارامتر پیکربندی از ردیاب هسته لینوکس Ftrace را تنظیم می‌کند\&. دستور \fBcommand\fR مشخص‌شده پس از تنظیم وضعیت ftrace اجرا خواهد شد\&. وضعیت پیکربندی‌شده ftrace را می‌توان با استفاده از دستور trace\-cmd\-reset(1) به حالت پیش‌فرض بازگرداند\&. .SH "گزینه‌ها (OPTIONS)" .PP \fB\-p\fR \fItracer\fR .RS 4 یک ردیاب (tracer) را مشخص می‌کند\&. ردیاب‌ها معمولاً کارهایی فراتر از صرفاً ردگیری یک رویداد انجام می‌دهند\&. ردیاب‌های رایج عبارتند از: \fBfunction\fR، \fBfunction_graph\fR، \fBpreemptirqsoff\fR، \fBirqsoff\fR، \fBpreemptoff\fR و \fBwakeup\fR\&. یک ردیاب باید توسط هسته در حال اجرا پشتیبانی شود\&. برای مشاهده فهرست ردیاب‌های موجود، trace\-cmd\-list(1) را ببینید\&. .RE .PP \fB\-e\fR \fIevent\fR .RS 4 یک رویداد را برای ردگیری مشخص می‌کند\&. نقاط ردگیری ایستا (static trace points) گوناگونی به هسته لینوکس افزوده شده‌اند\&. آن‌ها بر اساس زیرسیستم گروه‌بندی شده‌اند تا بتوانید تمام رویدادهای یک زیرسیستم داده‌شده را فعال کنید یا رویدادهای خاصی را برای فعال‌سازی تعیین نمایید\&. \fIevent\fR در قالب "subsystem:event\-name" است\&. همچنین می‌توانید فقط زیرسیستم را بدون \fI:event\-name\fR یا نام رویداد را بدون ":subsystem" مشخص کنید\&. استفاده از "\-e sched_switch" رویداد "sched_switch" را فعال می‌کند، در حالی که "\-e sched" تمام رویدادهای ذیل زیرسیستم "sched" را فعال خواهد کرد\&. .sp .if n \{\ .RS 4 .\} .nf مقدار \*(Aqevent\*(Aq می‌تواند حاوی عبارات glob نیز باشد\&. بدین ترتیب که "*stat*" تمام رویدادها (یا زیرسیستم‌هایی) را که نویسه‌های "stat" در نامشان وجود دارد انتخاب می‌کند\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf کلیدواژه \*(Aqall\*(Aq می‌تواند برای فعال کردن همه رویدادها استفاده شود\&. .fi .if n \{\ .RE .\} .RE .PP \fB\-T\fR .RS 4 فعال‌سازی یک stacktrace در هر رویداد\&. برای مثال: .sp .if n \{\ .RS 4 .\} .nf \-0 [003] 58549\&.289091: sched_switch: kworker/0:1:0 [120] R ==> trace\-cmd:2603 [120] \-0 [003] 58549\&.289092: kernel_stack: => schedule (ffffffff814b260e) => cpu_idle (ffffffff8100a38c) => start_secondary (ffffffff814ab828) .fi .if n \{\ .RE .\} .RE .PP \fB\-\-func\-stack\fR .RS 4 یک stack trace را روی تمام توابع فعال می‌کند\&. توجه داشته باشید که این گزینه فقط برای ردیاب افزونه "function" کاربرد دارد و تنها زمانی اثرگذار خواهد بود که گزینه \-l استفاده شده و در محدود کردن توابع موفق عمل کند\&. اگر ردیاب function فیلتر نشود و stack trace فعال باشد، می‌تواند سیستم را دچار قفل‌شدگی زنده (live lock) کند\&. .RE .PP \fB\-f\fR \fIfilter\fR .RS 4 مشخص کردن یک فیلتر برای رویداد پیشین\&. این گزینه باید بعد از یک \fB\-e\fR بیاید\&. این کار رویدادهایی را که ثبت می‌شوند بر اساس محتوای رویداد فیلتر می‌کند\&. فیلترگذاری مستقیماً به هسته منتقل می‌شود، بنابراین فیلترهای مجاز ممکن است به نسخه هسته شما بستگی داشته باشد\&. اساساً، به شما امکان می‌دهد از نشانه‌گذاری زبان C استفاده کنید تا بررسی شود آیا یک رویداد باید پردازش شود یا خیر\&. .RE .sp .if n \{\ .RS 4 .\} .nf ==, >=, <=, >, <, &, |, && and || .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf موارد فوق معمولاً برای مقایسه فیلدها بی‌خطر هستند\&. .fi .if n \{\ .RE .\} .PP \fB\-R\fR \fItrigger\fR .RS 4 مشخص کردن یک محرک (trigger) برای رویداد پیشین\&. این گزینه باید پس از یک \fB\-e\fR بیاید\&. این کار محرک داده‌شده را به رویداد داده‌شده اضافه می‌کند\&. برای فعال‌سازی صرف محرک و نه خود رویداد، رویداد را پس از گزینه \fB\-v\fR قرار دهید\&. .sp .if n \{\ .RS 4 .\} .nf برای اطلاعات بیشتر درباره محرک‌ها، Documentation/trace/events\&.txt را در سورس هسته لینوکس ببینید\&. .fi .if n \{\ .RE .\} .RE .PP \fB\-v\fR .RS 4 این گزینه اثر گزینه‌های مشخص‌شده پس از خود در خط فرمان را معکوس می‌کند\&. این گزینه بر موارد زیر تأثیر می‌گذارد: .RE .sp .if n \{\ .RS 4 .\} .nf \fB\-e\fR: باعث می‌شود تمام رویدادهای مشخص‌شده ردگیری نشوند\&. این قابلیت برای انتخاب یک زیرسیستم جهت ردگیری، اما مستثنی کردن رویدادهای گوناگون، کاربردی است\&. برای مثال: "\-e sched \-v \-e "*stat*"" تمام رویدادهای زیرسیستم sched را به جز آن‌هایی که "stat" در نامشان دارند فعال می‌کند\&. \fB\-B\fR: نمونه (instance) مشخص‌شده ftrace را حذف می‌کند\&. هیچ گزینه پیکربندی مرتبط با این نمونه نباید در خط فرمان وجود داشته باشد\&. برای مثال: "\-v \-B bar \-B foo" نمونه bar را حذف کرده و یک نمونه جدید foo ایجاد می‌کند\&. نکته: گزینه \fB\-v\fR برگرفته از شیوه‌ای است که grep(1) تطابق‌های پس از خود را معکوس می‌سازد\&. .fi .if n \{\ .RE .\} .PP \fB\-P\fR \fIpid\fR .RS 4 فقط شناسه‌های فرایند (PID) مشخص‌شده را فیلتر می‌کند\&. استفاده از \fB\-P\fR به شما امکان می‌دهد تنها رویدادهایی را که توسط فرایند مربوطه ایجاد شده‌اند ردگیری کنید\&. .RE.PP \fB\-c\fR .RS 4 همراه با \fB\-P\fR برای ردگیری فرزندان فرآیند نیز استفاده می‌شود (اگر هسته از آن پشتیبانی کند)\&. .RE .PP \fB\-\-user\fR .RS 4 اجرای \fBcommand\fR مشخص‌شده با کاربر داده‌شده\&. .RE .PP \fB\-C\fR \fIclock\fR .RS 4 تنظیم ساعت ردگیری روی "clock"\&. .sp .if n \{\ .RS 4 .\} .nf برای دیدن ساعت‌های موجود از دستور trace\-cmd(1) list \-C استفاده کنید\&. .fi .if n \{\ .RE .\} .RE .PP \fB\-l\fR \fIfunction\-name\fR .RS 4 این گزینه ردگیرهای \fIfunction\fR و \fIfunction_graph\fR را تنها به ردگیری نام تابع داده‌شده محدود می‌کند\&. برای ردگیری بیش از یک تابع، می‌توان بیش از یک \fB\-l\fR را در خط فرمان مشخص کرد\&. استفادهٔ محدود از عبارات عمومی (glob expressions) نیز مجاز است\&. این موارد عبارتند از: \fImatch*\fR تنها برای پالایش توابعی که با \fImatch\fR آغاز می‌شوند\&. \fI*match\fR تنها برای پالایش توابعی که با \fImatch\fR پایان می‌یابند\&. \fI*match\e*\fR تنها برای پالایش توابعی که حاوی \fImatch\fR هستند\&. .RE .PP \fB\-g\fR \fIfunction\-name\fR .RS 4 این گزینه برای افزونهٔ function_graph است\&. این گزینه تابع داده‌شده را رسم (graph) می‌کند؛ به این معنی که تنها آن تابع و تمامی توابعی را که فراخوانی می‌کند ردگیری خواهد کرد\&. می‌توانید بیش از یک \fB\-g\fR در خط فرمان داشته باشید\&. .RE .PP \fB\-n\fR \fIfunction\-name\fR .RS 4 این گزینه اثری معکوس \fB\-l\fR دارد\&. تابعی که با گزینهٔ \fB\-n\fR داده شود ردگیری نخواهد شد\&. این گزینه اولویت دارد؛ بدین معنی که اگر یک تابع یکسان را برای هر دو گزینهٔ \fB\-n\fR و \fB\-l\fR مشخص کنید، ردگیری نخواهد شد\&. .RE .PP \fB\-d\fR .RS 4 برخی افزونه‌های ردگیر، ردگیر function را به طور پیش‌فرض فعال می‌کنند؛ مانند ردگیرهای latency\&. این گزینه از فعال شدن ردگیر function در زمان راه‌اندازی جلوگیری می‌کند\&. .RE .PP \fB\-D\fR .RS 4 گزینهٔ \fB\-d\fR تلاش می‌کند با استفاده از گزینهٔ function\-trace ردگیر تابع را غیرفعال کند (در صورت در دسترس بودن)، در غیر این صورت به فایل proc پیش‌فرض مراجعه می‌کند: /proc/sys/kernel/ftrace_enabled، اما در صورت در دسترس بودن گزینهٔ function\-trace تغییری در آن ایجاد نمی‌کند\&. گزینهٔ \fB\-D\fR هم فایل proc مربوط به ftrace_enabled و هم گزینهٔ function\-trace را در صورت وجود غیرفعال خواهد کرد\&. .sp .if n \{\ .RS 4 .\} .nf توجه داشته باشید، این کار ردگیری تابع را برای همهٔ کاربران غیرفعال می‌کند، که شامل کاربران خارج از ردگیرهای ftrace (مانند stack_tracer، perf و غیره) نیز می‌شود\&. .fi .if n \{\ .RE .\} .RE .PP \fB\-O\fR \fIoption\fR .RS 4 ابزار Ftrace گزینه‌های گوناگونی دارد که می‌توانند فعال یا غیرفعال شوند\&. این گزینه به شما امکان می‌دهد آن‌ها را تنظیم کنید\&. الصاق متن \fIno\fR به یک گزینه، آن را غیرفعال می‌کند\&. برای نمونه: "\-O nograph\-time" گزینهٔ "graph\-time" در Ftrace را غیرفعال خواهد کرد\&. .RE .PP \fB\-b\fR \fIsize\fR .RS 4 این گزینه اندازهٔ بافر حلقه‌ای (ring buffer) را روی \fIsize\fR کیلوبایت تنظیم می‌کند\&. از آنجا که بافر حلقه‌ای Ftrace به ازای هر CPU است، این اندازه، اندازهٔ بافر حلقه‌ای هر CPU درون هسته است\&. استفاده از "\-b 10000" روی ماشینی با ۴ پردازنده، اندازهٔ کل بافر Ftrace را به ۴۰ مگابایت می‌رساند\&. .RE .PP \fB\-B\fR \fIbuffer\-name\fR .RS 4 اگر هسته از چندین بافر پشتیبانی کند، این گزینه بافری با نام داده‌شده اضافه می‌کند\&. اگر نام بافر از قبل وجود داشته باشد، آن بافر تنها بازنشانی می‌شود\&. .sp .if n \{\ .RS 4 .\} .nf پس از اعلام نام یک بافر، تمام رویدادهایی که بعد از آن اضافه شوند با آن بافر مرتبط خواهند شد\&. اگر بافری مشخص نشود، یا رویدادی قبل از نام بافر مشخص شود، با بافر اصلی (سطح بالا) مرتبط خواهد شد\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf trace\-cmd set \-e sched \-B block \-e block \-B time \-e timer sleep 1 .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf دستور بالا تمام رویدادهای sched را در بافر اصلی فعال می‌کند\&. سپس یک نمونه بافر \*(Aqblock\*(Aq ایجاد کرده و تمام رویدادهای block را درون آن بافر فعال می‌کند\&. یک نمونه بافر \*(Aqtime\*(Aq نیز ایجاد شده و تمام رویدادهای timer برای آن رویداد فعال خواهند شد\&. .fi .if n \{\ .RE .\} .RE .PP \fB\-m\fR \fIsize\fR .RS 4 حداکثر اندازه بر حسب کیلوبایت که یک بافر به ازای هر CPU باید داشته باشد\&. توجه کنید به دلیل گرد کردن بر اساس اندازهٔ صفحه (page size)، این عدد ممکن است کاملاً دقیق نباشد\&. همچنین، این کار با جابه‌جایی میان دو بافر که نصف اندازهٔ داده‌شده هستند انجام می‌شود؛ بنابراین حتی اگر مقدار بسیار بیشتری نوشته شده باشد، ممکن است خروجی به اندازهٔ داده‌شده نباشد\&. .sp .if n \{\ .RS 4 .\} .nf از این گزینه برای جلوگیری از اتمام فضای دیسک در اجراهای طولانی استفاده کنید\&. .fi .if n \{\ .RE .\} .RE .PP \fB\-M\fR \fIcpumask\fR .RS 4 تنظیم cpumask برای ردگیری\&. این گزینه تنها بر آخرین نمونه بافر داده‌شده اثر می‌گذارد\&. اگر قبل از هر نمونه بافری ارائه شود، بر بافر اصلی تأثیر می‌گذارد\&. مقدار ارائه‌شده باید یک عدد در مبنای ۱۶ (hex) باشد\&. .sp .if n \{\ .RS 4 .\} .nf trace\-cmd set \-p function \-M c \-B events13 \-e all \-M 5 .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\}.nf اگر \-M مشخص نشود، ماسک بدون تغییر باقی می‌ماند\&. برای فعال‌سازی همهٔ پردازنده‌ها (CPUs)، مقدار \*(Aq\-1\*(Aq را ارسال کنید\&. .fi .if n \{\ .RE .\} .RE .PP \fB\-i\fR .RS 4 به‌طور پیش‌فرض، اگر رویدادی فهرست شود که trace\-cmd آن را پیدا نکند، با یک خطا خارج می‌شود\&. این گزینه صرفاً از رویدادهایی که در خط فرمان ذکر شده‌اند اما در سیستم یافت نمی‌شوند، صرف‌نظر می‌کند\&. .RE .PP \fB\-q\fR | \fB\-\-quiet\fR .RS 4 از نمایش خروجی عادی، به‌جز در صورت بروز خطا، جلوگیری می‌کند\&. .RE .PP \fB\-\-max\-graph\-depth\fR \fIdepth\fR .RS 4 حداکثر عمقی را که ردیاب function_graph در یک تابع به ردیابی می‌پردازد، تعیین می‌کند\&. مقدار یک فقط نشان می‌دهد که فضای کاربری در کجا وارد هسته می‌شود، اما هیچ‌یک از توابع فراخوانی‌شده در هسته را نشان نمی‌دهد\&. مقدار پیش‌فرض صفر است که به معنای عدم وجود محدودیت است\&. .RE .PP \fB\-\-cmdlines\-size\fR \fIsize\fR .RS 4 تعداد ورودی‌هایی را که فایل ردگیری هسته "saved_cmdlines" می‌تواند در بر داشته باشد، تعیین می‌کند\&. این فایل یک بافر حلقه‌ای (circular buffer) است که نگاشت بین cmdlineها و PIDها را ذخیره می‌کند\&. در صورت پر شدن، منجر به cmdlineهای حل‌نشده ("<\&...>") در ردگیری می‌شود\&. مقدار پیش‌فرض هسته 128 است\&. .RE .PP \fB\-\-module\fR \fImodule\fR .RS 4 نام یک ماژول را در ردگیری تابع فیلتر می‌کند\&. این معادل افزودن \fI:mod:module\fR پس از سایر توابعی است که فیلتر می‌شوند\&. اگر هیچ فیلتر تابع دیگری مشخص نشده باشد، تمام توابع ماژول فیلتر خواهند شد\&. .sp .if n \{\ .RS 4 .\} .nf \*(Aq\-\-module snd\*(Aq معادل است با \*(Aq\-l :mod:snd\*(Aq .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf \*(Aq\-\-module snd \-l "*jack*"\*(Aq معادل است با \*(Aq\-l "*jack*:mod:snd"\*(Aq .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf \*(Aq\-\-module snd \-n "*"\*(Aq معادل است با \*(Aq\-n :mod:snd\*(Aq .fi .if n \{\ .RE .\} .RE .PP \fB\-\-stderr\fR .RS 4 باعث می‌شود خروجی به جای stdout به stderr هدایت شود، اما خروجی دستوری که اجرا شده تغییر نخواهد کرد\&. این گزینه زمانی مفید است که می‌خواهید خروجی دستور در حال اجرا را مشاهده و پایش کنید، اما خروجی‌های خود trace\-cmd را نبینید\&. .RE .PP \fB\-\-fork\fR .RS 4 اگر دستوری مشخص شده باشد، trace\-cmd منتظر پایان یافتن آن دستور می‌ماند، مگر این‌که گزینهٔ \fB\-\-fork\fR مشخص شده باشد\&. در این حالت، دستور را منشعب (fork) کرده و فوراً بازمی‌گردد\&. .RE .PP \fB\-\-verbose\fR[=\fIlevel\fR] .RS 4 سطح ثبت گزارش (log level) را تعیین می‌کند\&. سطوح پشتیبانی‌شده عبارتند از "none"، "critical"، "error"، "warning"، "info"، "debug"، "all" یا شناسه‌های آن‌ها "0"، "1"، "2"، "3"، "4"، "5"، "6"\&. تنظیم سطح گزارش روی یک مقدار خاص، تمامی لاگ‌های آن سطح و تمام سطوح پیش از آن را فعال می‌کند\&. در صورت عدم تعیین، سطح به‌طور پیش‌فرض روی "info" قرار می‌گیرد\&. .sp .if n \{\ .RS 4 .\} .nf مثال: فعال‌سازی تمام لاگ‌های critical، error و warning .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf trace\-cmd set \-\-verbose=warning .fi .if n \{\ .RE .\} .RE.SH "مثال‌ها (EXAMPLES)" .sp فعال‌سازی همه رویدادها برای ردیابی: .sp .if n \{\ .RS 4 .\} .nf # trace\-cmd set \-e all .fi .if n \{\ .RE .\} .sp تنظیم ردیاب تابع: .sp .if n \{\ .RS 4 .\} .nf # trace\-cmd set \-p function .fi .if n \{\ .RE .\} .SH "همچنین ببینید (SEE ALSO)" .sp trace\-cmd(1), trace\-cmd\-report(1), trace\-cmd\-start(1), trace\-cmd\-stop(1), trace\-cmd\-extract(1), trace\-cmd\-reset(1), trace\-cmd\-split(1), trace\-cmd\-list(1), trace\-cmd\-listen(1), trace\-cmd\-profile(1) .SH "نویسندگان (AUTHORS)" .sp نوشته‌شده توسط Tzvetomir Stoyanov (VMware) <\m[blue]\fBtz\&.stoyanov@gmail\&.com\fR\m[]\&\s-2\u[1]\d\s+2> .SH "منابع (RESOURCES)" .sp \m[blue]\fBhttps://git\&.kernel\&.org/pub/scm/utils/trace\-cmd/trace\-cmd\&.git\fR\m[] .SH "کپی‌رایت و تکثیر (COPYING)" .sp حق نشر (C) 2010 متعلق به Red Hat, Inc\&. استفاده آزاد از این نرم‌افزار تحت شرایط مجوز عمومی گنو (GPL) مجاز است\&. .SH "نکات (NOTES)" .IP " 1." 4 tz.stoyanov@gmail.com .RS 4 \%mailto:tz.stoyanov@gmail.com .RE