ptsematest(8) ptsematest(8)
# SPDX-License-Identifier: GPL-2.0-or-later

ptsematest - راه‌اندازی دو ریسه و سنجش تأخیر ارتباط بین‌فرآیندی با POSIX mutex

ptsematest [-a|--affinity [PROC]] [-b|--breaktrace USEC] [-d|--distance DIST] [-D|--duration TIME] [-h|--help] [-i|--interval INTV] [--json FILENAME] [-l|--loops LOOPS] [-p|--prio PRIO] [-q|--quiet] [-S|--smp] [-t|--threads [NUM]]

برنامه ptsematest دو ریسه را آغاز می‌کند که از طریق pthread_mutex_unlock() و pthread_mutex_lock() با یکدیگر همگام‌سازی می‌شوند و تأخیر زمانی بین آزادسازی و دریافت قفل را اندازه می‌گیرد.

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

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

# ptsematest -a -t -p99 -i100 -d25 -l1000000
#0: ID8672, P99, CPU0, I100; #1: ID8673, P99, CPU0, Cycles 1000000
#2: ID8674, P98, CPU1, I125; #3: ID8675, P98, CPU1, Cycles 811035
#4: ID8676, P97, CPU2, I150; #5: ID8677, P97, CPU2, Cycles 668130
#6: ID8678, P96, CPU3, I175; #7: ID8679, P96, CPU3, Cycles 589423
#1 -> #0, Min    1, Cur    1, Avg    2, Max   11
#3 -> #2, Min    1, Cur    2, Avg    2, Max   13
#5 -> #4, Min    1, Cur    4, Avg    3, Max   12
#7 -> #6, Min    1, Cur    4, Avg    2, Max   12

Carsten Emde <C.Emde@osadl.org>

pthread_mutex_lock(3p), pthread_mutex_unlock(3p)

0.1