ΠšΡ€ΠΈΡΡ‚ΠΎΡ„ Π₯Π΅Π»Π²ΠΈΠ³ ΡƒΡˆΡ‘Π» с поста мэйнтСйнСра DMA Mapping ΠΈ ConfigFS послС форсирования Rust

ΠšΡ€ΠΈΡΡ‚ΠΎΡ„ Π₯Π΅Π»Π²ΠΈΠ³ (Christoph Hellwig) ΡƒΡˆΡ‘Π» с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ мэйнтСйнСра подсистСм dma-mapping ΠΈ configfs. Π£Ρ…ΠΎΠ΄ ограничился ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ заявки Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· списка мэйнтСйнСров ΠΈ сообщСниСм ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ управлСния ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΌΡΡ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΌ. Π’ подсистСмС dma-mapping сопровоТдСниС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ ΠœΠ°Ρ€Π΅ΠΊ Шипровски (Marek Szyprowski) ΠΈΠ· Samsung, Π° Π² configfs β€” ДТоэл Π‘Π΅ΠΊΠΊΠ΅Ρ€ (Joel Becker) ΠΈΠ· Oracle.

ΠšΡ€ΠΈΡΡ‚ΠΎΡ„ Π₯Π΅Π»Π²ΠΈΠ³ ΠΏΠΎΠΊΠ° остаётся Π² числС мэйнтСйнСров подсистСм NVM Express, vmalloc ΠΈ FreeVXFS. Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΠšΡ€ΠΈΡΡ‚ΠΎΡ„ Π²Ρ…ΠΎΠ΄ΠΈΠ» Π² ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ тСхничСский ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Linux Foundation ΠΈ участвовал Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‚Π°ΠΊΠΈΡ… подсистСм, ΠΊΠ°ΠΊ XFS, KVM, Trace events, SCSI ΠΈ Slab Allocator, Π° Ρ‚Π°ΠΊΠΆΠ΅ занимался сопровоТдСниСм Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ PowerPC Π² ядрС Linux. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠšΡ€ΠΈΡΡ‚ΠΎΡ„ выступал истцом Π² судСбном Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π΅ с VMware, связанном с Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ GPL.

ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ сопровоТдСния подсистСм dma-mapping ΠΈ configfs обусловлСно заявлСниСм Линуса Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄ΡΠ° ΠΎ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ядро обвязки Π½Π° языкС Rust нСзависимо ΠΎΡ‚ согласия мэйнтСйнСров подсистСм, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… созданы Π΄Π°Π½Π½Ρ‹Π΅ обвязки. Π’ январС ΠšΡ€ΠΈΡΡ‚ΠΎΡ„ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ отказался ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π² ядро Rust-обвязку Π½Π°Π΄ функциями для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с DMA, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρƒ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ядро ΠΏΠΎΠΊΠΈΠ½ΡƒΠ»ΠΈ мэйнтСйнСры подсистСм Nouveau ΠΈ ARM/Apple. 24 фСвраля Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Rust for Linux ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ ΠΏΠ°Ρ‚Ρ‡ со слоСм абстракции для Π€Π‘ configfs, сопровоТдСниСм ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ занимался ΠšΡ€ΠΈΡΡ‚ΠΎΡ„ Π₯Π΅Π»Π²ΠΈΠ³. ΠšΡ€ΠΈΡΡ‚ΠΎΡ„ Π½Π΅ принял участиС Π² обсуТдСнии Π½ΠΎΠ²ΠΎΠΉ Rust-обвязки ΠΊ своСй подсистСмС, Π° Ρ‡Π΅Ρ€Π΅Π· нСсколько Π΄Π½Π΅ΠΉ ΡƒΠ΄Π°Π»ΠΈΠ» сСбя ΠΈΠ· списка мэйнтСйнСров dma-mapping ΠΈ configfs.

ΠšΡ€ΠΈΡΡ‚ΠΎΡ„ Π₯Π΅Π»Π²ΠΈΠ³ считаСт нСдопустимым использованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языков программирования Π² Ρ‚Π°ΠΊΠΈΡ… слоТных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΊΠ°ΠΊ ядро Linux. По мнСнию ΠšΡ€ΠΈΡΡ‚ΠΎΡ„Π°, ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Π±Π°Π·Ρ‹ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ мэйнтСйнСров, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ставят мэйнтСйнСров Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΊΠΎΠ΄Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС. Π’ частности, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ обвязок Π½Π° Rust Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ подсистСм, написанных Π½Π° Π‘ΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ влияниС ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ работоспособности обвязок. Π›ΡŽΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° Π‘ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСобходимости измСнСния ΠΊΠΎΠ΄Π° обвязок, поэтому Π²Π»ΠΈΡΡŽΡ‰ΠΈΠ΅ Π½Π° обвязки измСнСния Π² Π‘ΠΈ ΠΊΠΎΠ΄Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Rust.

Π’ процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ядра ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ Ρ„Π°ΠΊΡ‚Ρ‹ отклонСния pull-запроса с измСнСниями Π² подсистСмС управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ сбою ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ сборки ядра с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Rust. Π‘Π±ΠΎΠΉ Π²ΠΎΠ·Π½ΠΈΠΊ ΠΈΠ·-Π·Π° рассинхронизации с ΠΊΠΎΠ΄ΠΎΠΌ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Rust-обвязок (bindgen) ΠΈ ΠΏΡ€ΠΈΠ²Ρ‘Π» ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ подсистСму управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ измСнСния, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΊΠΎΠ΄Π° Π½Π° Π‘ΠΈ ΠΈ ядра Π² Ρ†Π΅Π»ΠΎΠΌ, оказались зависимы ΠΎΡ‚ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ стороннСго ΠΊΠΎΠ΄Π° Π² ядрС, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ люди.

Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ считаСт, Ρ‡Ρ‚ΠΎ ΠšΡ€ΠΈΡΡ‚ΠΎΡ„ Π₯Π΅Π»Π²ΠΈΠ³ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‘ΠΌ Π² ядро Rust-обвязок для подсистСмы DMA, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… обвязок Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ΄ подсистСмы DMA Mapping ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, сопровоТдСниСм ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ занимаСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ мэйнтСйнСр. Линус сравнил дСйствия ΠšΡ€ΠΈΡΡ‚ΠΎΡ„Π° с ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ использования подсистСмы DMA, ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ мэйнтСйнСры ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ лишь Π·Π° ΠΊΠΎΠ΄ своСй подсистСмы, Π½ΠΎ Π½Π΅ Π·Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΈ ΠΊΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого ΠΊΠΎΠ΄Π°. НапримСр, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… подсистСм ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ с Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°, Π½ΠΎ это Π½Π΅ ΠΏΠΎΠ²ΠΎΠ΄ Π²ΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΈΡ‘ΠΌ Π½ΠΎΠ²Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ².

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

0 0 голоса
Π Π΅ΠΉΡ‚ΠΈΠ½Π³ ΡΡ‚Π°Ρ‚ΡŒΠΈ
ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ
Π£Π²Π΅Π΄ΠΎΠΌΠΈΡ‚ΡŒ ΠΎ
0 ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²
Π‘Ρ‚Π°Ρ€Ρ‹Π΅
НовыС ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅
ΠœΠ΅ΠΆΡ‚Π΅ΠΊΡΡ‚ΠΎΠ²Ρ‹Π΅ ΠžΡ‚Π·Ρ‹Π²Ρ‹
ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ
0
ΠžΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ! ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ ΡΡ‚Π°Ρ‚ΡŒΠΈ.x