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

svsematest - شروع دو ریسه یا دو فرآیند و سنجش تأخیر سمافورهای SYSV

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

برنامه svsematest دو ریسه یا در صورت تمایل دو فرآیند ایجاد می‌کند که از طریق سمافورهای SYSV همگام‌سازی شده‌اند و میزان تأخیر بین آزادسازی سمافور در یک طرف و دریافت آن در طرف دیگر را اندازه‌گیری می‌کند.

اجرا روی پردازنده شماره NUM. اگر مشخص نشود، روی پردازنده جاری اجرا می‌شود.
ارسال دستور شکست ردگیری (break trace) زمانی که تأخیر بیشتر از USEC باشد. این یک گزینه اشکال‌زدایی برای کنترل ردگیر تأخیر در وصله پیش‌دستی بی‌درنگ (realtime preemption patch) است. برای ردیابی تأخیرهای غیرمنتظره و بزرگ سیستم مفید است.
تنظیم فاصله بین بازه‌های زمانی ریسه‌ها به میکروثانیه (پیش‌فرض 500 میکروثانیه است). هنگامی که برنامه با گزینه -t فراخوانی شود و بیش از یک ریسه ایجاد گردد، این مقدار فاصله به بازه زمانی ریسه‌ها افزوده می‌شود: Interval(thread N) = Interval(thread N-1) + DIST
تعیین مدت‌زمان اجرای آزمون.
برای تعیین دقیقه، ساعت یا روز پسوندهای 7m7، 7h7 یا 7d7 را اضافه کنید.
به جای ایجاد ریسه‌ها (که حالت پیش‌فرض است)، فرآیندهای جدید فورک (انشعاب) می‌شوند.
تنظیم بازه زمانی پایه ریسه(ها) به میکروثانیه (پیش‌فرض 1000 میکروثانیه است). این مقدار بازه زمانی اولین ریسه را مشخص می‌کند. همچنین به -d مراجعه کنید.
-json=FILENAME
نوشتن نتایج نهایی در FILENAME با قالب JSON.
تنظیم تعداد تکرار حلقه‌ها. مقدار پیش‌فرض 0 است (بی‌پایان). این گزینه برای آزمون‌های خودکار با تعداد چرخه‌های مشخص مفید است. با رسیدن به تعداد بازه‌های زمانی تایمر، svsematest متوقف می‌شود.
تنظیم اولویت فرآیند.
چاپ خلاصه نتایج فقط هنگام خروج. برای آزمون‌های خودکار که تنها نیاز به ذخیره خلاصه خروجی دارند مناسب است.
آزمون SMP: اعمال گزینه‌های -a و -t و تخصیص اولویت یکسان به تمام ریسه‌ها.
تنظیم تعداد ریسه‌های آزمون (در صورت عدم تعیین، پیش‌فرض 1 است). اگر NUM مشخص شود، NUM ریسه آزمایشی ایجاد می‌شود. در صورت عدم تعیین، NUM برابر با تعداد پردازنده‌های در دسترس تنظیم می‌شود.

مثال زیر بر روی یک پردازنده ۴ هسته‌ای اجرا شده است:

# svsematest -a -t -p99 -i100 -d25 -l1000000
#0: ID13110, P99, CPU0, I100; #1: ID13111, P99, CPU0, Cycles 1000000
#2: ID13112, P98, CPU1, I125; #3: ID13113, P98, CPU1, Cycles 813573
#4: ID13114, P97, CPU2, I150; #5: ID13115, P97, CPU2, Cycles 667285
#6: ID13116, P96, CPU3, I175; #7: ID13117, P96, CPU3, Cycles 591403
#1 -> #0, Min    1, Cur    2, Avg    2, Max   12
#3 -> #2, Min    1, Cur    3, Avg    2, Max   12
#5 -> #4, Min    1, Cur    3, Avg    3, Max   12
#7 -> #6, Min    1, Cur    2, Avg    3, Max   11

Carsten Emde <C.Emde@osadl.org>

semop(2)

0.1