Differences

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

Link to this comparison view

Next revision
Previous revision
work:semana_23_de_2022 [2022/06/11 14:46] – created magsilvawork:semana_23_de_2022 [2022/06/12 13:36] (current) 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 de eBPF do kernel do Linux. 
-  * O tópico de meu interesse é o [[eBPF]]. 
  
 +===== Aleatórios do final de semana =====
 +  * 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]]. Essa parte do summit foi documentada em http://vger.kernel.org/bpfconf2022.html.
 +    * 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.
 +  * 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 ;-)
 +  * cadCAD (https://cadcad.org/): ferramenta para simulação de sistemas complexos em Python. Ocorrerá um sprint sobre ela no [[https://www.scipy2022.scipy.org/ | SciPy 2022]] (participação gratuita!).