| pmqtest(8) | pmqtest(8) |
# SPDX-License-Identifier: GPL-2.0-or-later
نام (NAME)
pmqtest - راهاندازی جفتهای نخ و سنجش تاخیر ارتباط بینفرآیندی با صفهای پیام POSIX
نحوه استفاده (SYNOPSIS)
pmqtest [-a|-a PROC] [-b USEC] [-d DIST] [-D TIME] [-f TO] [-h] [-i INTV] [--json FILENAME] [-l LOOPS] [-p PRIO] [-q] [-S] [-t|-t NUM]
توضیحات (DESCRIPTION)
برنامه pmqtest جفتهایی از نخها را آغاز میکند که از طریق mq_send/mw_receive() همگامسازی میشوند و تاخیر میان ارسال و دریافت پیام را میسنجد.
گزینهها (OPTIONS)
- -a, --affinity[=PROC]
- اجرا روی پردازنده شماره PROC. اگر PROC مشخص نشود، روی پردازنده فعلی اجرا میشود.
- -b, --breaktrace=USEC
- ارسال دستور break trace هنگامی که تاخیر > USEC باشد. این گزینه خطایابی برای کنترل ردیاب تاخیر در وصله بیدرنگ (realtime preemption patch) است. برای پیگیری تاخیرهای بزرگ و غیرمنتظره در یک سیستم کاربرد دارد.
- -d, --distance=DIST
- تنظیم فاصله بازههای نخها بر حسب میکروثانیه (پیشفرض ۵۰۰ میکروثانیه است). هنگامی که pmqtest با گزینه -t فراخوانی شود و بیش از یک نخ ایجاد گردد، این مقدار فاصله به بازه زمانی نخها اضافه میشود: Interval(thread N) = Interval(thread N-1) + DIST
- -D, --duration=TIME
- تعیین مدت
زمان اجرای
آزمون.
افزودن 'm'، 'h' یا 'd' برای مشخص کردن دقیقه، ساعت یا روز. - -h, --help
- نمایش پیام راهنما
- -f, --forcetimeout=TO
- تنظیم تاخیر مصنوعی در تابع ارسال برای اجبار به اتمام مهلت زمانی گیرنده، نیازمند گزینه -T است
- -i, --interval=INTV
- تنظیم بازه زمانی پایه نخها بر حسب میکروثانیه (پیشفرض ۱۰۰۰ میکروثانیه است). این مقدار بازه نخ نخست را تعیین میکند. همچنین -d را ببینید.
- --json=FILENAME
- نوشتن نتایج نهایی در FILENAME با قالب JSON.
- -l, --loops=LOOPS
- تنظیم تعداد دورها. پیشفرض 0 (بیپایان) است. این گزینه برای آزمونهای خودکار با تعداد چرخههای مشخص مفید است. پس از رسیدن به تعداد بازههای زمانی زمانسنج، pmqtest متوقف میشود.
- -p, --prio=PRIO
- تنظیم اولویت پردازش.
- -q, --quiet
- چاپ خلاصه فقط در هنگام خروج. مناسب برای آزمونهای خودکار که تنها دریافت خروجی نهایی نیاز است.
- -S, --smp
- حالت آزمون برای چندپردازشی متقارن (SMP)، متضمن استفاده از -a و -t و اولویت یکسان در تمام نخها.
- -t, --threads[=NUM]
- تنظیم تعداد نخهای آزمون (اگر این گزینه داده نشود، پیشفرض ۱ است). اگر NUM مشخص شود، به همان تعداد نخ آزمایشی ایجاد میشود. اگر NUM مشخص نشود، NUM برابر تعداد پردازندههای موجود در نظر گرفته میشود.
- -T, --timeout=TO
- استفاده از mq_timedreceive() به جای mq_receive() و تعیین مهلت زمانی TO بر حسب ثانیه.
مثالها (EXAMPLES)
مثال زیر روی یک پردازنده ۸-مسیره در حال اجرا بود:
# pmqtest -Sp99 -i100 -d0 #0: ID10047, P99, CPU0, I100; #1: ID10048, P99, CPU0, Cycles 153695 #2: ID10049, P99, CPU1, I100; #3: ID10050, P99, CPU1, Cycles 154211 #4: ID10051, P99, CPU2, I100; #5: ID10052, P99, CPU2, Cycles 156823 #6: ID10053, P99, CPU3, I100; #7: ID10054, P99, CPU3, Cycles 158202 #8: ID10055, P99, CPU4, I100; #9: ID10056, P99, CPU4, Cycles 153399 #10: ID10057, P99, CPU5, I100; #11: ID10058, P99, CPU5, Cycles 153992 #12: ID10059, P99, CPU6, I100; #13: ID10060, P99, CPU6, Cycles 156576 #14: ID10061, P99, CPU7, I100; #15: ID10062, P99, CPU7, Cycles 157957 #1 -> #0, Min 1, Cur 8, Avg 5, Max 18 #3 -> #2, Min 1, Cur 4, Avg 5, Max 18 #5 -> #4, Min 1, Cur 5, Avg 5, Max 19 #7 -> #6, Min 1, Cur 4, Avg 4, Max 17 #9 -> #8, Min 1, Cur 9, Avg 5, Max 18 #11 -> #10, Min 1, Cur 8, Avg 5, Max 18 #13 -> #12, Min 1, Cur 4, Avg 5, Max 29 #15 -> #14, Min 1, Cur 8, Avg 4, Max 17
نویسندگان (AUTHORS)
Carsten Emde <C.Emde@osadl.org>
همچنین ببینید (SEE ALSO)
mq_send(3p), mq_receive(3p)
| 0.1 |