Tags:
Node Thumbnail

Jason Donenfeld จากโครงการ Wireguard ซอฟต์แวร์ VPN ประสิทธิภาพสูง ส่งแพตช์เพิ่มฟังก์ชั่น getrandom() เพื่อให้โปรแกรมระดับ userspace สามารถขอค่าสุ่มความเร็วสูง

ฟังก์ชั่น getrandom() เร็วกว่าฟังก์ชั่นขอค่าสุ่มเดิมๆ ประมาณ 15 เท่า โดยฟังก์ชั่นขอค่าสุ่มนี้มีความจำเป็นสำหรับซอฟต์แวร์เข้ารหัสต่างๆ เช่น VPN อย่าง Wireguard เอง

ฟังก์ชั่นใหม่นี้อาศัยฟีเจอร์ vDSO (virtual dynamic shared object) เป็นการดึงพื้นที่หน่วยความจำจากเคอร์เนลเข้ามาเป็นส่วนหนึ่งของแอปพลิเคชั่นแทนที่การเรียก system call แบบเดิมๆ ที่ทุกครั้งที่เรียกจะกลายเป็นการสร้าง interrupt ซึ่งเสียเวลาซีพียูไปมาก ก่อนหน้านี้มีฟังก์ชั่นในลินุกซ์ที่เปลี่ยนจาก system call ไปเป็น vDSO แล้วเช่น gettimeofday

Donenfeld พยายามส่งแพตช์นี้เข้าโครงการมาตั้งแต่ปี 2022 และแก้ไขไปแล้ว 20 รอบ หากแพตช์นี้ได้รับการยอมรับก็น่าจะเข้าไปในลินุกซ์ 6.11

ที่มา - Phoronix, linux-kernel mailing list

No Description

Get latest news from Blognone