
توسعهدهندگان هسته لینوکس (Linux kernel) در حال بررسی حذف قابلیت RT_GROUP_SCHED هستند؛ ویژگیای که برای زمانبندی گروهی وظایف بلادرنگ (real-time tasks) با استفاده از cgroups طراحی شده بود. در پچ پیشنهادی حذف (removal patch)، این قابلیت «فراتر از تعمیر خراب» (broken beyond repair) توصیف شده است.
RT_GROUP_SCHED در اصل برای cgroups نسخه ۱ (cgroups v1) طراحی شده بود، نه نسخه جدیدتر ۲ (cgroups v2). بر اساس گزارشها، هسته همه توزیعهای اصلی لینوکس (major Linux distributions) نیز این قابلیت را غیرفعال کردهاند.
چرا RT_GROUP_SCHED خراب تلقی میشود؟
سباستین آندژی شیویور (Sebastian Andrzej Siewior)، مهندس شرکت لینوترونیکس (Linutronix)، در توضیح پچ پیشنهادی حذف گفته است که RT_GROUP_SCHED «فراتر از تعمیر خراب» است و نباید در زمان کامپایل فعال شود. به گفته او، اگر این قابلیت فعال باشد، توصیه میشود در زمان راهاندازی (boot time) با گزینه rt_group_sched= غیرفعال شود.
او توضیح میدهد که با فعال بودن این ویژگی، نمیتوان سیاست (policy) یک وظیفه را روی SCHED_{FIFO|RR} تنظیم کرد، زیرا cgroup مربوط به آن هیچ زمان اجرا (runtime) اختصاصیافتهای ندارد. همچنین زمان اجرا را نمیتوان با cgroups v2 اختصاص داد. گروه ریشه (root group) تمام زمان اجرا را در اختیار دارد؛ بنابراین پارامتر سراسری sysctl با نام sched_rt_runtime_us قابل کاهش نیست، چون پهنای باند جدید کمتر از مقدار فعلی در دسترس خواهد بود.
به گفته این مهندس، زمانبندی وظایف SCHED_DEADLINE امکانپذیر است، اما کنترل پذیرش (admission control) در وضعیت گیرکرده قرار دارد و تنها میتوان آن را با مقدار -۱ (همان پارامتر sysctl) غیرفعال کرد.
توزیعهای اصلی و مسیر حذف از هسته
در ادامه توضیحات آمده است که همه توزیعهای اصلی از جمله دبیان (Debian)، اوپنسوزه (OpenSUSE)، فدورا (Fedora) و آرچلینوکس (Arch Linux) این قابلیت را غیرفعال کردهاند. به باور نویسنده پچ، نیازی به تلاش برای اصلاح RT_GROUP_SCHED نیست؛ زیرا سرور منصفانه DL (DL fair server) از قبل مکانیزم محدودسازی RT (RT throttling) را مدیریت میکند. همچنین کارهایی روی سرور پهنای باند ثابت سلسلهمراتبی (HCBS - Hierarchical constant bandwidth server) در جریان است که هدف آن گروهبندی چندین وظیفه بلادرنگ در یک پیکربندی مهلت (deadline) است.
پچ پیشنهادی احتمالاً مسیر خود را ادامه میدهد و در نهایت به خط اصلی (mainline) هسته لینوکس میرسد تا این قابلیت خراب حذف شود. در پاسخ به پچ، این نکته مطرح شد که ظاهراً هنوز کاربرانی نامشخص از این کد باقی ماندهاند. همچنین این پرسش مطرح شد که آیا باید گزینه مورد نظر پیش از حذف، مدتی در هسته منسوخ (deprecated) شود یا نه. بر اساس بحث فهرست پستی (mailing list)، به نظر میرسد تمایل قابلتوجهی برای حذف RT_GROUP_SCHED وجود دارد.