
یک مهندس نرمافزار از شرکت گوگل این هفته پیشنهادی را به فهرست پستی توسعهدهندگان هسته لینوکس (Linux Kernel Mailing List) ارائه کرد که هدف آن سادهتر کردن فرآیند تنظیم اندازه پشته هسته (Kernel Stack Size) در معماری ARM64 است. انگیزه اصلی این طرح، کاهش مصرف حافظه سیستم در محیطهایی است که با محدودیت منابع مواجهاند.
۱۵ وصله برای تنظیم پشته هسته از خط فرمان
«مصطفی صالح» (Mostafa Saleh) از گوگل، یک درخواست نظر (RFC – Request for Comments) را همراه با مجموعهای از ۱۵ وصله (Patch) به فهرست پستی هسته لینوکس ارسال کرده است. این وصلهها امکان تنظیم اختیاری اندازه پشته هسته را از طریق خط فرمان (Command Line) فراهم میکنند؛ رویکردی که تنظیم این پارامتر را بدون نیاز به بازسازی و کامپایل مجدد هسته (Rebuild) ممکن میسازد.
به گفته ارائهدهنده این طرح، سادهتر شدن فرآیند تغییر اندازه پشته هسته به جلوگیری از هدر رفتن حافظه کمک میکند؛ موضوعی که بهویژه در اندروید و سایر محیطهای مشابه اهمیت دارد.
جزئیات فنی طرح و صرفهجویی در حافظه
در متن این پیشنهاد آمده است: «در برخی سیستمها (بهطور مشخص اندروید)، این طرح سازوکاری برای کاهش مصرف حافظه هسته فراهم میکند، زیرا اندازه پیشفرض پشته هسته برابر با ۱۶ کیلوبایت (با صفحات ۴ کیلوبایتی) میتواند به تخصیص حدود ۱۰۰ مگابایت حافظه منجر شود؛ حتی با وجود اینکه بیشتر رشتههای اجرایی (Thread) هرگز به مرز مصرف کامل سهمیه خود نزدیک نمیشوند.»
در کنار این قابلیت، امکان تعیین اندازه پشته ۱۲ کیلوبایتی نیز پیشبینی شده است؛ گزینهای برای شرایطی که نیاز به فضایی بیش از ۸ کیلوبایت اما کمتر از مقدار پیشفرض ۱۶ کیلوبایت وجود دارد.
قابلیتهای کلیدی این پیشنهاد
- تنظیم اندازه پشته هسته در زمان بوت (Boot Time) از طریق گزینه kernel_stack_pages=
- حذف نیاز به بازسازی و کامپایل مجدد هسته برای تغییر این پارامتر
- پشتیبانی از اندازه پشته ۱۲ کیلوبایتی بهعنوان گزینهای میانی میان ۸ و ۱۶ کیلوبایت
- امکان بررسی طرحهای آینده نظیر تعیین اندازه پشته بهازای هر وظیفه (Per-Task Stack Size) برای کاهش بیشتر مصرف حافظه
- محدود بودن دامنه فعلی طرح به معماری ARM64
ادامه بررسی در کنفرانس Linux Plumbers
بر اساس این پیشنهاد، اندازه پشته هسته با اعمال این وصلهها از طریق گزینه kernel_stack_pages= در زمان بوت قابل تنظیم خواهد بود. در حال حاضر این طرح تنها برای معماری ARM64 مطرح شده است و قرار است هفته آینده در کنفرانس Linux Plumbers بهصورت مفصلتر مورد بحث و بررسی قرار گیرد.
علاقهمندان به مطالعه جزئیات فنی میتوانند مجموعه وصلههای این درخواست نظر (RFC Patch Series) را در فهرست پستی هسته لینوکس دنبال کنند.