
پس از آنکه شرکت فوجیتسو (Fujitsu) ماه گذشته بهطور رسمی از پردازنده سروری موناکا (MONAKA) با ۱۴۴ هسته و معماری ARM و با هدفگذاری زیرساختهای هوش مصنوعی رونمایی کرد، اکنون موج تازهای از وصلهها (Patch) برای کرنل لینوکس در حال انتشار است. این هفته چندین راهکار موقت (Workaround) برای رفع باگهای این پردازنده در کرنل لینوکس ارائه شده است.
وضعیت پشتیبانی لینوکس از موناکا
موناکا یک طراحی پردازنده مبتنی بر معماری ARM64 است و از همین رو پشتیبانی لینوکس از آن از ابتدا در وضعیت مطلوبی قرار دارد. این پردازنده در حوزه سرور کاملاً با استانداردها منطبق (Standards-Compliant) است و به همین دلیل نیازی به درگیر شدن با درختهای دستگاه (Device Trees) و موارد مشابه برای سرورهای موناکا وجود ندارد. در همین راستا، قابلیت تشخیص نوع پردازنده (CPU Type Detection) برای موناکا از طریق وصلههای همین هفته به کرنل لینوکس افزوده شده است تا امکان اعمال راهکارهای موقت برای باگهای مختلف فراهم شود.
سه راهکار موقت تازه در کرنل لینوکس
- نقص در بیاعتبارسازی TLB: نخستین راهکار موقت مربوط به عملیات مبتنی بر بازه (Range-Based) در دستور TLBI است؛ عملیاتی که یک آدرس مجازی (VA) یا آدرس فیزیکی واسط (IPA) را هدف میگیرد و ممکن است در برخی شرایط در بیاعتبارسازی (Invalidate) ورودیهای TLB ناکام بماند. به همین دلیل کرنل لینوکس باید دستورهای TLBI بیشتری صادر کند تا بیاعتبارسازی صحیح TLB تضمین شود. این راهکار تنها در صورتی کاربرد دارد که از کرنل ۶۴ کیلوبایتی برای موناکا استفاده شود؛ هرچند به دلایل کارایی، استفاده از این کرنل بههرحال توصیه میشود.
- تشخیص نادرست سرریز PMU: راهکار موقت دوم به باگی مربوط میشود که در آن سرریز واحد پایش عملکرد (PMU Overflow) ممکن است بهاشتباه تشخیص داده شود. این خطا بهنوبه خود میتواند در پردازنده موناکا موجب طوفان وقفه (Interrupt Storm) شود.
- خطر توقف هسته پردازشی: سومین راهکار موقت این هفته در لینوکس به احتمال توقف (Hang) یک هسته پردازشی میپردازد. این اشکال پیرامون تولید یک وقفه بینپردازندهای نرمافزاری (SGI) رخ میدهد که ممکن است در صورت همزمانی (Race) با پردازش یک وقفه با اولویت بالاتر توسط پردازنده، بهروزرسانی یک وقفه در انتظار، یا گذار واحد پردازش (PE) به حالت خواب، از میان برود. در چنین شرایطی نوشتن در ثبات سیستمی (System Register) کامل نمیشود و میتواند به توقف هسته پردازشی صادرکننده دستور منجر شود.
پیشینه توسعه و مسیر آینده
انتشار این وصلهها پس از دو سال ارائه وصلههای گوناگون موناکا به کامپایلر GCC و دیگر اجزای متنباز (Open-Source) صورت میگیرد. علاقهمندان میتوانند جزئیات بیشتر را در مجموعه وصلههای (Patch Series) موناکا دنبال کنند.