Forwarded from Software Engineer Labdon
🔵 عنوان مقاله
What Makes System Calls Expensive: A Linux Internals Deep Dive (18 minute read)
🟢 خلاصه مقاله:
این مقاله توضیح میدهد چرا syscall در Linux گران است: عبور از مرز user به kernel باعث برهمزدن وضعیت ریزمعماری CPU میشود؛ از تخلیه pipeline و پاکسازی پیشبینی انشعاب تا بههمخوردن return stack buffer. در مسیر ورود/خروج syscall، kernel علاوه بر جابهجایی بین stack و گاه page table (در نتیجهٔ KPTI)، مجموعهای از دفاعها علیه حملات حدسی مثل Spectre را اعمال میکند؛ اقداماتی مانند IBPB/IBRS/STIBP، retpoline و RSB stuffing که همگی چرخههای اضافی مصرف میکنند. نتیجه این است که بخش بزرگی از هزینه، صرف خودِ تغییر سطح دسترسی و بازسازی بهینهسازیهای CPU میشود، نه منطق اصلی kernel.
نمونهٔ روشن آن vDSO است که clock_gettime را در user-space فراهم میکند و بر اساس بنچمارکها حدود ۸۹٪ سریعتر از نسخهٔ syscall عمل میکند؛ یعنی خودِ عبور به kernel گلوگاه اصلی است. پیام عملی برای توسعهدهندگان این است که در مسیرهای داغ از فراوانی syscall بکاهند: از vDSO برای زمان، batching و I/O برداری، و راهکارهایی مانند io_uring یا async I/O استفاده کنند و نتایج تکراری را cache نمایند. جمعبندی: هزینهٔ syscall بیشتر از برهمخوردن وضعیت ریزمعماری و ملاحظات امنیتی ورود/خروج ناشی میشود و پرهیز از این عبورها میتواند بهبود چشمگیری در کارایی ایجاد کند.
#Linux #Syscalls #Kernel #Performance #Microarchitecture #Spectre #vDSO #io_uring
🟣لینک مقاله:
https://blog.codingconfessions.com/p/what-makes-system-calls-expensive?utm_source=tldrinfosec
➖➖➖➖➖➖➖➖
👑 @software_Labdon
What Makes System Calls Expensive: A Linux Internals Deep Dive (18 minute read)
🟢 خلاصه مقاله:
این مقاله توضیح میدهد چرا syscall در Linux گران است: عبور از مرز user به kernel باعث برهمزدن وضعیت ریزمعماری CPU میشود؛ از تخلیه pipeline و پاکسازی پیشبینی انشعاب تا بههمخوردن return stack buffer. در مسیر ورود/خروج syscall، kernel علاوه بر جابهجایی بین stack و گاه page table (در نتیجهٔ KPTI)، مجموعهای از دفاعها علیه حملات حدسی مثل Spectre را اعمال میکند؛ اقداماتی مانند IBPB/IBRS/STIBP، retpoline و RSB stuffing که همگی چرخههای اضافی مصرف میکنند. نتیجه این است که بخش بزرگی از هزینه، صرف خودِ تغییر سطح دسترسی و بازسازی بهینهسازیهای CPU میشود، نه منطق اصلی kernel.
نمونهٔ روشن آن vDSO است که clock_gettime را در user-space فراهم میکند و بر اساس بنچمارکها حدود ۸۹٪ سریعتر از نسخهٔ syscall عمل میکند؛ یعنی خودِ عبور به kernel گلوگاه اصلی است. پیام عملی برای توسعهدهندگان این است که در مسیرهای داغ از فراوانی syscall بکاهند: از vDSO برای زمان، batching و I/O برداری، و راهکارهایی مانند io_uring یا async I/O استفاده کنند و نتایج تکراری را cache نمایند. جمعبندی: هزینهٔ syscall بیشتر از برهمخوردن وضعیت ریزمعماری و ملاحظات امنیتی ورود/خروج ناشی میشود و پرهیز از این عبورها میتواند بهبود چشمگیری در کارایی ایجاد کند.
#Linux #Syscalls #Kernel #Performance #Microarchitecture #Spectre #vDSO #io_uring
🟣لینک مقاله:
https://blog.codingconfessions.com/p/what-makes-system-calls-expensive?utm_source=tldrinfosec
➖➖➖➖➖➖➖➖
👑 @software_Labdon
Codingconfessions
What Makes System Calls Expensive: A Linux Internals Deep Dive
An explanation of how Linux handles system calls on x86-64 and why they show up as expensive operations in performance profiles