Christoph Hellwig ha lasciato la sua posizione di maintainer dei sottosistemi dma-mapping e configfs. La sua partenza è stata limitata all'invio di una richiesta di eliminazione dalla lista dei maintainer e a un messaggio di trasferimento della responsabilità ai restanti collaboratori. Nel sottosistema dma-mapping, la supervisione sarà continuata da Marek Szyprowski di Samsung, mentre per configfs sarà Joel Becker di Oracle.
Christoph Hellwig rimane attualmente tra i maintainer dei sottosistemi NVM Express, vmalloc e FreeVXFS. In passato, Christoph ha fatto parte del comitato tecnico di gestione della Linux Foundation e ha partecipato allo sviluppo di sottosistemi come XFS, KVM, Trace events, SCSI e Slab Allocator, e ha anche gestito l'architettura PowerPC nel kernel Linux. Inoltre, Christoph è stato attore in una causa legale contro VMware riguardante la violazione della licenza GPL.
L'interruzione della manutenzione dei sottosistemi dma-mapping e configfs è stata causata da un'annuncio di Linus Torvalds riguardo l'intenzione di includere nel kernel wrapper in linguaggio Rust indipendentemente dal consenso dei maintainer dei sottosistemi per cui sono stati creati questi wrapper. A gennaio, Christoph ha rifiutato di accettare nel kernel il wrapper in Rust per le funzioni di gestione del DMA, il che ha portato a un conflitto, che ha visto i maintainer dei sottosistemi Nouveau e ARM/Apple lasciare il progetto. Il 24 febbraio, gli sviluppatori del progetto Rust for Linux hanno proposto una patch con uno strato di astrazione per il filesystem configfs, di cui Christoph Hellwig si occupava. Christoph non ha partecipato alla discussione sul nuovo wrapper in Rust per il suo sottosistema e, dopo pochi giorni, si è rimosso dalla lista dei maintainer di dma-mapping e configfs.
Christoph Hellwig considera inaccettabile l'uso di più linguaggi di programmazione in progetti complessi come il kernel Linux. Secondo Christoph, i codici misti complicano il lavoro dei maintainer, poiché rendono i maintainer dipendenti da codice in un'altra lingua. In particolare, con i wrapper in Rust, gli sviluppatori dei sottosistemi scritti in C devono tenere conto dell'impatto delle loro modifiche sulla continua operatività dei wrapper. Qualsiasi modifica nelle strutture dati o nelle funzioni interne in C può comportare la necessità di modificare il codice dei wrapper, quindi le modifiche in C che influenzano i wrapper devono essere monitorate e sincronizzate con il codice in Rust.
Durante lo sviluppo del kernel, ci sono stati già dei casi di rifiuto di pull request contenenti modifiche nel sottosistema di gestione della memoria, poiché queste modifiche causavano errori nel tentativo di compilare il kernel con il supporto di Rust attivato. L'errore è sorto a causa della desincronizzazione con il codice per la generazione dei binding Rust (bindgen) e ha comportato che gli sviluppatori del sottosistema di gestione della memoria, nella promozione di una modifica perfettamente valida dal punto di vista del codice C e del kernel in generale, si trovassero dipendenti da un codice esterno opzionale nel kernel, per il quale erano responsabili altre persone.
Linus Torvalds ritiene che Christoph Hellwig non abbia l'autorità di bloccare l'inserimento nel kernel dei binding Rust per il sottosistema DMA, poiché il codice di questi binding non interessa il codice del sottosistema DMA Mapping ed è implementato in una sottocartella separata, sotto la supervisione di un maintainer diverso. Linus ha confrontato le azioni di Christoph con il tentativo di controllare l'ambito di utilizzo del sottosistema DMA, nonostante i maintainer siano responsabili solo per il codice del proprio sottosistema e non su come e da chi venga utilizzato il risultato di quel codice. Ad esempio, una modifica nel codice dei sottosistemi di base può portare a problemi di funzionamento di un driver, ma questo non è un motivo per interferire con l'accettazione di nuovi driver.
Fonte: opennet.ru
