sigwaittest(8) sigwaittest(8)
# SPDX-License-Identifier: GPL-2.0-only

sigwaittest - راه‌اندازی دو ریسه یا انشعاب دو فرآیند و سنجش تأخیر میان ارسال و دریافت سیگنال

sigwaittest [-a|--affinity [PROC]] [-b|--breaktrace USEC] [-d|--distance DIST] [-D|--duration TIME] [-f|--fork [OPT]] [-i|--interval INTV] [--json FILENAME] [-l|--loops LOOPS] [-p|--prio PRIO] [-t|--threads [NUM]]

برنامه sigwaittest دو ریسه را آغاز می‌کند یا به دلخواه، دو فرآیند مشتق (fork) ایجاد می‌نماید که از طریق سیگنال‌ها با یکدیگر همگام‌سازی می‌شوند، و میزان تأخیر بین ارسال سیگنال و بازگشت از sigwait() را اندازه می‌گیرد.

اجرا روی پردازنده شماره PROC. اگر PROC مشخص نشود، روی پردازنده فعلی اجرا می‌شود.
ارسال دستور توقف ردیابی (break trace) هنگامی که تأخیر بیشتر از USEC باشد. این یک گزینه اشکال‌زدایی برای کنترل ردیاب تأخیر در وصله پیش‌دستی بلادرنگ (realtime preemption patch) است. برای ردیابی تأخیرهای غیرمنتظره و بزرگ سیستم کاربرد دارد.
تنظیم فاصله بین بازه‌های زمانی ریسه‌ها بر حسب میکروثانیه (پیش‌فرض ۵۰۰ میکروثانیه است). هنگامی که برنامه با گزینه -t فراخوانی شود و بیش از یک ریسه ایجاد گردد، مقدار این فاصله به بازه زمانی ریسه‌ها افزوده می‌شود: Interval(thread N) = Interval(thread N-1) + DIST
تعیین مدت‌زمان اجرای آزمون.
افزودن 'm'، 'h' یا 'd' برای مشخص کردن دقیقه، ساعت یا روز.
انشعاب فرآیندهای جدید (fork) به جای ایجاد ریسه‌ها (که حالت پیش‌فرض است).
تنظیم بازه زمانی پایه ریسه(ها) بر حسب میکروثانیه (پیش‌فرض ۱۰۰۰ میکروثانیه است). این مقدار بازه زمانی اولین ریسه را تعیین می‌کند. همچنین گزینه -d را ببینید.
نوشتن نتایج نهایی در FILENAME با فرمت JSON.
تنظیم تعداد دورها (حلقه‌ها). مقدار پیش‌فرض 0 (بی‌پایان) است. این گزینه برای آزمون‌های خودکار با تعداد مشخصی از چرخه‌های آزمون کاربرد دارد. پس از رسیدن به تعداد بازه‌های زمانی تایمر، sigwaittest متوقف می‌شود.
تنظیم اولویت فرآیند.
تنظیم تعداد ریسه‌های آزمون (اگر این گزینه مشخص نشود، پیش‌فرض ۱ است). اگر NUM مشخص شود، به تعداد NUM ریسه آزمون ایجاد می‌شود. اگر NUM مشخص نشود، NUM برابر با تعداد پردازنده‌های در دسترس در نظر گرفته می‌شود.

مثال زیر روی یک پردازنده ۴ هسته‌ای (4-way CPU) اجرا شده است:

# sigwaittest -a -t -p99 -i100 -d25 -l1000000
#0: ID11510, P99, CPU0, I100; #1: ID11511, P99, CPU0, Cycles 1000000
#2: ID11512, P98, CPU1, I125; #3: ID11513, P98, CPU1, Cycles 817484
#4: ID11514, P97, CPU2, I150; #5: ID11515, P97, CPU2, Cycles 668213
#6: ID11516, P96, CPU3, I175; #7: ID11517, P96, CPU3, Cycles 597344
#1 -> #0, Min    1, Cur    2, Avg    3, Max   30
#3 -> #2, Min    1, Cur   26, Avg    3, Max   42
#5 -> #4, Min    1, Cur   46, Avg    4, Max   67
#7 -> #6, Min    1, Cur    2, Avg    3, Max   74

Carsten Emde <C.Emde@osadl.org>

kill(2), sigwait(3)

0.1