CXL-INJECT-PROTOCOL-ERROR(1) cxl Manual CXL-INJECT-PROTOCOL-ERROR(1)

cxl-inject-protocol-error - تزریق خطاهای پروتکل CXL به درگاه‌های پایین‌دست CXL

cxl inject-protocol-error <dport> [<options>]

هشدار

تزریق خطا می‌تواند موجب ناپایداری سیستم شود و تنها باید برای اشکال‌زدایی جریان‌های بازیابی خطای سخت‌افزاری و نرم‌افزاری به کار رود. با مسئولیت خودتان استفاده کنید!

یک خطای پروتکل CXL را به یک درگاه پایین‌دست (dport) CXL تزریق می‌کند. درگاه‌های پایین‌دستی که از تزریق خطا پشتیبانی می‌کنند، مقدار ویژگی protocol_injectable آن‌ها در cxl-list بر روی true تنظیم شده است.

گزینه‌های -p/--protocol و -s/--severity برای تزریق خطا الزامی هستند. گزینهٔ -p برای مشخص کردن پروتکل CXL جهت تزریق خطا استفاده می‌شود؛ یعنی "mem" (CXL.mem) یا "cache" (CXL.cache). گزینهٔ -s شدت خطا را مشخص می‌کند و می‌تواند یکی از این مقادیر باشد: "correctable"، "uncorrectable" یا "fatal".

انواع خطاها (و شدت‌های آن‌ها) که در دسترس هستند به پلتفرم بستگی دارد. برای یافتن انواع خطای قابل تزریق، ویژگی "injectable_protocol_errors" را در زیر شیء گذرگاه CXL مربوطه در خروجی cxl-list بررسی کنید. برای مثال:

# cxl list -B
[
  {
        "bus":"root0",
        "provider":"ACPI.CXL",
        "injectable_protocol_errors":[
          "mem-correctable",
          "mem-fatal",
        ]
  }
]

درگاه پایین‌دست (dport) برای تزریق خطا توسط نام میزبان مشخص می‌شود (مثلاً "0000:0e:01.1"). در اینجا نمونه‌ای از تزریق با استفاده از فهرست گذرگاه در مثال بالا آمده است:

# cxl list -TP
 [
  {
    "port":"port1",
    "host":"pci0000:e0",
    "depth":1,
    "decoders_committed":1,
    "nr_dports":1,
    "dports":[
      {
        "dport":"0000:e0:01.1",
        "alias":"device:02",
        "id":0,
        "protocol_injectable":true
      }
    ]
  }
]
# cxl inject-protocol-error "0000:e0:01.1" -p mem -s correctable
cxl inject-protocol-error: inject_proto_err: injected mem-correctable protocol error.

تزریق خطای پروتکل CXL (CXL.cache/mem) مستلزم پشتیبانی پلتفرم از تزریق خطای ACPI نسخهٔ 6.5 به بالا (EINJ) است. علاوه‌بر پشتیبانی پلتفرم، گزینه‌های پیکربندی هسته CONFIG_ACPI_APEI_EINJ و CONFIG_ACPI_APEI_EINJ_CXL نیز باید فعال باشند. برای اطلاعات بیشتر، مستندات هستهٔ لینوکس را دربارهٔ EINJ مشاهده کنید.

این دستور برای تزریق خطاهای پروتکل به فایل‌سیستم اشکال‌زدایی CXL (که به‌طور معمول در "/sys/kernel/debug/cxl" سوار می‌شود) وابسته است. اگر debugfs مربوط به CXL قابل دسترس نباشد، ویژگی "protocol_injectable" درگاه‌های پایین‌دست همیشه بر روی false تنظیم خواهد شد، و ویژگی "injectable_protocol_errors" گذرگاه‌های CXL همیشه خالی خواهد بود.

-p, --protocol

پروتکل CXL مورد نظر برای تزریق خطا را مشخص می‌کند. می‌تواند "mem" (CXL.mem) یا "cache" (CXL.cache) باشد.

-s, --severity

سطح شدت خطای تزریقی. می‌تواند یکی از موارد زیر باشد: "correctable"، "uncorrectable" یا "fatal".

--debug

فعال‌سازی خروجی اشکال‌زدایی.

cxl-list(1)

2026-06-30 cxl