
بر اساس گزارش Phoronix، یک ابزار جدید با نام hwpoison-panic در آستانه ادغام با درخت کد لینوکس (Linux Source Tree) نسخه ۷.۵ قرار دارد. این ابزار برای آزمودن گزینه هسته با نام vm.panic_on_unrecoverable_memory_failure طراحی شده است؛ گزینهای که هنگام بروز خطای حافظه غیرقابل بازیابی (Unrecoverable Memory Failure) در انواع خاصی از صفحات تحت مالکیت هسته (Kernel-Owned Pages)، کرنل پنیک (Kernel Panic) فوری را فعال میکند.
چرا این ابزار به وجود آمده است؟
پیش از این، آزمودن رفتار هسته در برابر چنین خطاهایی نیازمند انتظار برای رخداد خطای چندبیتی ECC (Multi-Bit ECC Errors) روی صفحات تحت مالکیت هسته یا خطاهای سختافزاری مشابه در حافظه بود. ابزار hwpoison-panic این فرایند را ساده میکند و امکان بررسی کنترلشده واکنش هسته را فراهم میآورد.
نحوه کار و محدوده هدف
این ابزار با تزریق یک خطای سختافزاری (Hardware Poison Error) به صفحهای تحت مالکیت هسته، کرنل پنیک را بهصورت عمدی فعال میکند. محدوده هدفگیری آن شامل موارد زیر است:
- بازه داده فقطخواندنی هسته (Kernel Read-Only Data) موسوم به «rodata»
- صفحه اسلب (Slab Page)
- صفحه جدول صفحه (Page-Table Page)
اجرای موفق این ابزار باعث کرش کردن هسته در حال اجرا میشود؛ به همین دلیل استفاده از آرگومان --yes-panic-my-kernel نیز ضروری است تا از فعالسازی تصادفی ابزار جلوگیری شود.
کاربرد اصلی در ماشینهای مجازی
آزمایش با این ابزار عمدتاً برای ماشینهای مجازی (VM) در نظر گرفته شده است؛ جایی که میتوان خروجی کنسول سریال (Serial Console) را نیز ثبت کرد تا وقوع کرنل پنیک و کرش سیستم تأیید شود. جزئیات این ابزار لینوکسی از طریق وصلهای (Patch) قابل مشاهده است که پیش از لینوکس ۷.۵ در شاخه «for-next» از مخزن Git مربوط به زیرسیستم مدیریت حافظه (MM) اندرو مورتون (Andrew Morton) قرار گرفته است.