เบชเบฐเบšเบฑเบšเบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡ patches เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบชเปˆเบงเบ™เบซเบปเบง Linux kernel

Ingo Molnar เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบชเบฐเบšเบฑเบšเบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡เบŠเบธเบ”เบ‚เบญเบ‡ patches เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบงเบฅเบฒเปƒเบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบซเบกเปˆเบ‚เบญเบ‡ kernel เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเป‚เบ”เบเบเบฒเบ™เบ›เบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบฅเปเบฒเบ”เบฑเบšเบŠเบฑเป‰เบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒ header เปเบฅเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ‚เป‰เบฒเบก. เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบชเบฐเบšเบฑเบšเบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเบชเบญเบ‡เบชเบฒเบกเบกเบทเป‰เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เป‚เบ”เบเบเบฒเบ™เบ›เบฑเบšเบ•เบปเบงเบชเปเบฒเบฅเบฑเบš kernel 5.16-rc8, เป€เบžเบตเปˆเบกเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เป‚เบ”เบเปƒเบŠเป‰ Clang compiler. เป€เบกเบทเปˆเบญเปƒเบŠเป‰ Clang, เบเบฒเบ™เปƒเบŠเป‰ patches เบซเบผเบธเบ”เบฅเบปเบ‡เป€เบงเบฅเบฒเบชเป‰เบฒเบ‡ 88% เบซเบผเบท 77% เปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ CPU. เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เปเบเปˆเบ™เปƒเบซเบกเปˆเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡ "make -j96 vmlinux", เป€เบงเบฅเบฒเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบซเบผเบธเบ”เบฅเบปเบ‡เบˆเบฒเบ 337.788 เบซเบฒ 179.773 เบงเบดเบ™เบฒเบ—เบต.

เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบเบฑเบ‡เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฑเบš GCC plugins, เปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบ–เบทเบเบฅเบฐเบšเบธเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบปเบšเบ—เบงเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เปเบฅเบฐเบฅเบงเบกเป€เบญเบปเบฒเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบตเปˆเบŠเป‰เปเบฒเบเบฑเบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ "task_struct_per_task". เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เป„เบŸเบฅเปŒ header linux/sched.h เบเบฑเบ‡เบชเบทเบšเบ•เปเปˆเปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เป„เบŸเบฅเปŒ header เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเปˆเบญเบ RDMA (infiniband) เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบงเบฅเบฒเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ•เบทเปˆเบกเบญเบตเบ 9% เป€เบกเบทเปˆเบญเบ—เบฝเบšเปƒเบชเปˆเบเบฑเบšเบฎเบธเปˆเบ™เบ—เปเบฒเบญเบดเบ”. เบ‚เบญเบ‡ patches เป„เบ”เป‰. เบˆเปเบฒเบ™เบงเบ™เป„เบŸเบฅเปŒ kernel C เบ—เบตเปˆเบ›เบฐเบเบญเบšเบกเบตเป„เบŸเบฅเปŒ header linux/sched.h เป„เบ”เป‰เบ–เบทเบเบซเบผเบธเบ”เบฅเบปเบ‡เบˆเบฒเบ 68% เป€เบ›เบฑเบ™ 36% เป€เบกเบทเปˆเบญเบ—เบฝเบšเบเบฑเบš patches เบฎเบธเปˆเบ™เบ—เปเบฒเบญเบดเบ” (เบˆเบฒเบ 99% เป€เบ›เบฑเบ™ 36% เป€เบกเบทเปˆเบญเบ—เบฝเบšเบเบฑเบš kernel เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš).

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™