Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
work:semana_23_de_2022 [2022/06/11 14:56] magsilvawork:semana_23_de_2022 [2022/06/12 02:28] magsilva
Line 1: Line 1:
 ====== Semana 23 de 2022 ====== ====== Semana 23 de 2022 ======
-  * Ocorreu recentemente o encontro dos desenvolvedores dos componentes de gerenciamento de memória, dispositivos de bloco, sistemas de arquivo e BPF do kernel do Linux. +  * Ocorreu recentemente o encontro dos desenvolvedores dos componentes de gerenciamento de memória, dispositivos de bloco, sistemas de arquivo e BPF do kernel do Linux (LSF/MM/BPF summit)
-  * O tópico de meu interesse é o [[BPF]]. +  * O tópico de meu interesse é o [[BPF]]. Essa parte do summit foi documentada em http://vger.kernel.org/bpfconf2022.html
-    * Existem dois arcabouços (frameworks) para o desenvolvimento de programas BPF: [[https://github.com/iovisor/bcc | bcc (BPF Compiler Collection)]] e libbpf-tools. O bcc foi o primeiro disponível para isso, então ainda muito utilizado. No entanto, [[https://github.com/iovisor/bcc/issues/3976 | ele não é mais a forma recomendada para desenvolvimento de aplicações BPF]]. Assim, devemos focar no libbpf. +    * A apresentação de Yonghong Song tratou da [[http://vger.kernel.org/bpfconf2022_material/lsfmmbpf2022-clang.pdf | agradabilidade do desenvolvimento de aplicações BPF]]. Existem dois arcabouços (frameworks) para o desenvolvimento de programas BPF: [[https://github.com/iovisor/bcc | bcc (BPF Compiler Collection)]] e libbpf-tools. O bcc foi o primeiro disponível para isso, então ainda muito utilizado. No entanto, [[https://github.com/iovisor/bcc/issues/3976 | ele não é mais a forma recomendada para desenvolvimento de aplicações BPF]]. Assim, devemos focar no libbpf. 
 +    * Na apresentação BPF Observability tools update, por Brendan Gregg, um tópico que foi abordado foi o desempenho dos user probes (uprobe). Isso muito nos interessa, porque é o calcanhar de Aquiles ao usar BPF com programas em Java. 
 +    * Na apresentação BPF Guidelines for newcomers, também por Brendan Gregg, temos diretivas para uso do BPF: https://tinyurl.com/bpfguidelines2022 (ou https://docs.google.com/document/d/1pzkUqyQU65V0WIukqK4EU_u3f8h35i-ddORI9WbYatw).  
 +  * Outro evento relacionado foi o [[https://kernel-recipes.org/en/2022/ | Kernel Recipes 2022]]. O vídeo completo do evento está disponível em https://www.youtube.com/watch?v=v--rVT4RsCE 
 +    * A [[https://kernel-recipes.org/en/2022/talks/test-driven-kernel-releases/ | palestra de Guillaume Tucker sobre testes no Kernel do Linux]] propõe que o desenvolvimento e lançamento de novas versões do kernel sejam dirigidas a testes automatizados (vídeo disponível em https://youtu.be/v--rVT4RsCE?t=15731). Atualmente temos uma infraestrutura razoável para teste: KUnit para escrita de testes de unidade; LTP e kselftest. No entanto, os resultados das atividades de teste são restritas a poucos desenvolvedores (geralmente os responsáveis pelos subsistemas) e não são amplamente compartilhados. Algumas ferramentas que atualmente disponibilizam os resultados das atividades de teste são: [[https://syzkaller.appspot.com | syzbot]], [[https://linux.kernelci.org/job | KernelCI]], [[https://datawarehouse.cki-project.org | RedHat CKI]], [[https://linux-regtracking.leemhuis.info/regzbot/mainline/ | regzbot]]. No entanto, é necessário deixar os testes mais claros para o desenvolvimento. Várias sugestões foram feitas nesse sentido: incluir os casos de teste com o código do Kernel do Linux (hoje são mantidos separadamente); incluir na mensagem de commit informações sobre a execução de casos de teste (quem executou e onde estão disponíveis os resultados). 
 +    * Outra apresentação sobre teste aconteceu em https://youtu.be/ELPENQrtUas?t=19587. Basicamente é um tutorial sobre testes para o Kernel do Linux. 
 +    * História do BPF: https://youtu.be/ELPENQrtUas?t=11302 
 +    * Ainda da turma de BPF, descobri que o acme (Arnaldo Carvalho de Melo, ex-Conectiva) está trabalhando com isso agora. Palestra em https://www.youtube.com/watch?v=nhJqaZT94z0&t=21593s 
 +    * Outra apresentação interessante: ftrace (https://www.youtube.com/watch?v=v--rVT4RsCE&t=18395s). Agora temos pontas de prova (probes) para eventos (além de funções do kernel: kprobes): eprobes. 
 +  * Random bits: ORT (OSS Review Toolkit, https://github.com/oss-review-toolkit/ort) é uma ferramenta interessante para encontrar problemas quanto a licenças de softwares utilizados em um projeto de código aberto. Ela suporta diversos gerenciadores de dependências ;-)