در اتفاقی نادر و جالب در دنیای نرم‌افزارهای متن‌باز، یک مهندس شرکت انویدیا که اخیراً تغییری در کرنل لینوکس اعمال کرده بود، ناخواسته باعث افت شدید عملکرد کارت‌های گرافیک AMD شد. نکته جالب‌تر آنجاست که خود او نیز در زمانی کوتاه، این مشکل را شناسایی و برطرف کرد. جزئیات را در ادامه خبر بخوانید.

این ماجرا نشان می‌دهد که فضای نرم‌افزارهای آزاد و متن‌باز، علی‌رغم رقابت تجاری میان شرکت‌هایی چون AMD و انویدیا، بستری برای همکاری باقی می‌ماند. در چنین فضایی، اگرچه هر کسی ممکن است دچار خطا شود، اما انتظار می‌رود که همان فرد نیز در اصلاح آن مشارکت داشته باشد.

وقتی انویدیا ناخواسته به AMD ضربه زد

ماجرا از هفته گذشته آغاز شد، زمانی که این مهندس برای بهبود پشتیبانی از سیستم‌هایی با حافظه بالا، تلاش کرد فضای PCI BAR را به بیش از ۱۰ ترابایت افزایش دهد. تغییر ظاهراً ساده‌ای که پیامدهای پیچیده‌ای در پی داشت. با این تغییر به طور ناخواسته کارت‌های گرافیک AMD به‌اشتباه به‌عنوان سخت‌افزارهایی با توانایی محدود در دسترسی مستقیم به حافظه (DMA) تشخیص داده شدند و این موضوع به کاهش محسوس کارایی انجامید.

مشکل از آن‌جا ناشی می‌شد که این تغییر باعث افزایش غیرواقعی متغیرهایی مانند max_pfn در حافظه دستگاه می‌شد. در نتیجه، هسته لینوکس تصور می‌کرد که محدوده‌ای تا ۶۴ ترابایت را باید به حافظه GPU اختصاص دهد. اما چون بسیاری از کارت‌های AMD قادر به استفاده از چنین ظرفیتی نیستند، سیستم به‌طور پیش‌فرض آن‌ها را در حالت محدود به DMA32 قرار داد؛ حالتی که تنها ۴ گیگابایت حافظه در اختیار GPU می‌گذارد.

باگ هسته لینوکس

این اشتباه، هرچند ناخواسته، اما بسیار تأثیرگذار بود و باعث بروز نگرانی در میان کاربران شد. خوشبختانه، همان مهندسی که تغییر اولیه را اعمال کرده بود، پس از اطلاع از مشکل، بلافاصله وارد عمل شد و راه‌حلی برای آن ارائه داد که تنها چند روز پیش از بسته شدن پنجره تغییرات برای نسخه 6.15-rc1 کرنل لینوکس بود

اگر همه‌چیز طبق برنامه پیش برود، انتظار می‌رود این اصلاحیه در نسخه پایدار کرنل 6.15 که احتمالاً تا اواخر ماه مه یا اوایل ژوئن (خرداد ماه) منتشر می‌شود، در دسترس عموم قرار گیرد.

source

توسط siahnet.ir