
هفته گذشته لینوس توروالدز با استفاده از هوش مصنوعی و ابزار Claude Code یک بهبود قابلتوجه برای هسته لینوکس (Linux kernel) ارائه کرد. این کد برای خواندن از حافظه نهان صفحه (page cache) بدون ارجاعهای فولیو (folio references) طراحی شده بود تا بارکاری خواندنهای کوچک از یک فایل واحد توسط بسیاری از رشتههای پردازنده را بهبود دهد.
بازنویسی وصلهها و هدف عملکردی
کیریل شوتسماو (Kiryl Shutsemau)، مهندس متا، امروز مجموعه وصله (patch series) خود را بر پایه کد توروالدز منتشر کرد. این مجموعه کد مدیریت حافظه هسته لینوکس را برای خواندن از حافظه نهان صفحه بدون ارجاع فولیو سازگار میکند. در توضیحات این وصلهها آمده است که خواندنهای کوچک از یک فایل توسط بسیاری از پردازندهها همگی یک ارجاع روی فولیو یکسان میگیرند و رها میکنند و شمارنده ارجاع (refcount) میان پردازندهها نوسان میکند.
بر اساس این توضیحات، مجموعه جدید به filemap_read() و shmem اجازه میدهد بدون گرفتن ارجاع از حافظه نهان صفحه کپی کنند. این کار در واقع بازنویسی درخواست برای نظرات (RFC) لینوس است؛ فولیویی که چنین خوانندهای ممکن است از آن کپی کند، تنها پس از یک دوره مهلت RCU (RCU grace period) آزاد میشود.
نتایج آزمون و مسیر ادغام در هسته اصلی
شوتسماو بهبودها را روی فایلسیستمهای EXT4، TMPFS و XFS و همچنین یک دستگاه بلوکی خام (raw block device) آزموده است. این آزمونها با ۶۴ رشته روی یک پردازنده AMD Ryzen Threadripper و با و بدون ملاحظات امنیتی پیشفرض پردازنده (CPU security mitigations) انجام شده و نتایج بسیار چشمگیر توصیف شده است.
- بازنویسی کد اولیه لینوس توروالدز برای خواندن بدون ارجاع از حافظه نهان صفحه
- کاهش نوسان شمارنده ارجاع فولیو میان پردازندهها در خواندنهای کوچک
- آزمون روی EXT4، TMPFS، XFS و دستگاه بلوکی خام
- ارزیابی با ۶۴ رشته روی AMD Ryzen Threadripper
این وصلهها هنوز در وضعیت درخواست برای نظرات (RFC) قرار دارند و برخی عناصر طراحی باز در این کار باقی مانده است. با این حال، امید میرود این موارد بهزودی بررسی شوند و وصلهها در آیندهای نهچندان دور به هسته اصلی (mainline kernel) راه یابند. وصلههای مذکور در فهرست پستی هسته لینوکس (Linux kernel mailing list) در دسترس هستند.