Libseccomp: RFE: adicionar suporte RISC-V

Criado em 20 fev. 2018  ·  28Comentários  ·  Fonte: seccomp/libseccomp

De @rwmjones :

RISC-V é um ISA gratuito de código aberto desenvolvido na UCB desde 2010 (https://riscv.org/).

Temos um PR antigo de @rwmjones em # 50 que adicionou suporte a libseccomp antes que o suporte ao kernel estivesse em vigor (outono de 2016).

Temos um PR mais recente de @Icenowy no nº 108 que adiciona suporte para libseccomp, embora o suporte para kernel ainda seja desconhecido (fevereiro de 2018).

Esta edição foi projetada para rastrear notas e progresso entre os PRs.

enhancement prioritlow

Comentários muito úteis

Vou esperar até que "[GIT PULL] atualizações seccomp para v5.5-rc1" também seja mesclado. Existe um pequeno patch RISC-V aqui.

Todos 28 comentários

O suporte do kernel

@sorear Acho que não há problema em comentar apenas uma vez no outro PR sobre coisas como as acima.

... e para mim no futuro, não parece que v4.16-rc2 + tenha o suporte HAVE_ARCH_SECCOMP_FILTER necessário para RISC-V.

Atualização rápida, o suporte ao kernel ainda está faltando na árvore de Linus:

# grep "HAVE_ARCH_SECCOMP_FILTER" $(find arch/*/  -type f)
arch/arm/Kconfig:       select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT)
arch/arm/kernel/ptrace.c:#ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER
arch/arm64/Kconfig:     select HAVE_ARCH_SECCOMP_FILTER
arch/mips/Kconfig:      select HAVE_ARCH_SECCOMP_FILTER
arch/parisc/Kconfig:    select HAVE_ARCH_SECCOMP_FILTER
arch/powerpc/Kconfig:   select HAVE_ARCH_SECCOMP_FILTER
arch/s390/Kconfig:      select HAVE_ARCH_SECCOMP_FILTER
arch/um/Kconfig.common: select HAVE_ARCH_SECCOMP_FILTER
arch/x86/Kconfig:       select HAVE_ARCH_SECCOMP_FILTER

Empurrei um commit de protótipo para nosso branch de kernel risc-v de desenvolvimento aqui: https://github.com/riscv/riscv-linux/commit/0712587b63964272397ed34864130912d2a87020

Não tenho certeza de como testá-lo, no entanto.

Olá @terpstra

Se você ainda não entrou em contato com (cd tests; ./regression -T live) que exercitam o código seccomp no kernel; também há samples / seccomp nas fontes do kernel, mas não tenho nenhuma experiência direta com eles.

Acho que há um terceiro patch no openSUSE: https://build.opensuse.org/package/view_file/openSUSE : Factory: RISCV / libseccomp / riscv.patch? Expand = 1

mas está faltando __NR_riscv_flush_icache .

Olá @terpstra , o patch https://github.com/riscv/riscv-linux/commit/0712587b63964272397ed34864130912d2a87020 foi incorporado ao kernel da linha principal? Alguma ideia de um cronograma para isso? Talvez @ palmer-dabbelt possa ajudar nisso.

Descarreguei todos os drivers de Linux que escrevi para o U540 para Paul
e Palmer. Não estou mais no circuito de upstreaming.

Quarta, 5 de junho de 2019 às 12h53 Carlos Eduardo notificaçõ[email protected]
escreveu:

Olá @terpstra https://github.com/terpstra , tenha o patch
riscv / riscv-linux @ 0712587
https://github.com/riscv/riscv-linux/commit/0712587b63964272397ed34864130912d2a87020
fundido no kernel da linha principal? Alguma ideia de um cronograma para isso? Pode ser
@ palmer-dabbelt https://github.com/palmer-dabbelt pode ajudar nisso.

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/seccomp/libseccomp/issues/110?email_source=notifications&email_token=AAIM7CU2KQFCLUTSCO2VYILPZAKUXA5CNFSM4ERS6NOKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXA2PKY#issuecomment-499230635 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AAIM7CXIDCVBETFXJLBRY73PZAKUXANCNFSM4ERS6NOA
.

Eu enviei patches seccomp v1 há alguns meses (eu acho), que estava passando libseccomp testsuite e autotestes do kernel. Preciso encontrar tempo para testar novamente o kernel mais recente para enviar a v2. O patch libseccomp está aqui: https://github.com/seccomp/libseccomp/pull/134

@carlosedp com que rapidez você precisa disso?

Eu não me preocuparia com isso até que o patch do kernel pousasse na árvore de Linus, mas PR # 134 parece que precisa de uma porta de encaminhamento para o branch master libseccomp atual.

Faz algum tempo que não vejo o RISC-V. Existe algum hardware RISC-V com preço razoável e desempenho razoável para desenvolvimento / teste que execute uma distribuição padrão?

@davidlt Eu puxei e apliquei o patch PR134 e ele testa perfeitamente mesmo sem os patches do Kernel. Seria ótimo fornecer libseccomp para abrir a construção de outras dependências. Já estou executando o Docker criado localmente com isso.

@pcmoore No lado do hardware, apenas a placa SiFive Unleashed que é cara. Há um Qemu VM que empacotei com o Debian (mas também há um rootfs Fedora que eu poderia empacotar). Ele pode ser usado para desenvolvimento.

Estou rastreando as dependências em https://github.com/carlosedp/riscv-bringup

Na verdade, acabei de testar novamente com a Dica com PR134. Eu tive 6 testes reprovados.

Os resultados podem ser vistos em https://gist.github.com/carlosedp/7e1e222e5ccb4b45faa357dd6b30ac9a

Hmm, isso é estranho. De acordo com a saída do teste, parece que o teste 46 está falhando com o ENOMEM, o que é um pouco incomum (consulte tools / scmp_bpf_sim.c). Estou bastante ocupado no momento e não tenho uma VM RISC-V à mão para testar isso, mas se você precisar de algumas dicas sobre como depurar isso, não hesite em perguntar.

Eu tenho uma placa Qemu VM e uma placa Risc-V. Meu kernel atual não tem patches seccomp aplicados. Se você tiver dicas sobre como posso ajudar, será um prazer!
Caso contrário, se você quiser uma VM RiscV Qemu, juntei um pacote em https://github.com/carlosedp/riscv-bringup#virtual -machine-and-pre-built-docker.

@davidlt alguma atualização no suporte ao kernel RISC-V?

https://lkml.org/lkml/2019/10/14/811

Parece ter sido totalmente revisado, mas o patch final foi perdido entre dois desenvolvedores.

O patch foi enviado para Linus para o kernel 5.4, mas ele não queria puxá-lo até agora para os RCs. O patch irá pousar na janela de mesclagem 5.5.

Observe que o patch já está no linux-next, se isso for importante.

Boas notícias, obrigado a todos! Uma vez que parece que estamos a algumas semanas de ver isso na árvore de Linus, vou prosseguir e marcar isso para o marco libseccomp v2.5.

Alguém quer se oferecer para atualizar / testar / reenviar o PR assim que a janela de mesclagem fechar?

Enviarei uma nova versão do PR assim que libseccomp pousar na árvore de Linus.

Ótimo, obrigado @davidlt.

Vou esperar até que "[GIT PULL] atualizações seccomp para v5.5-rc1" também seja mesclado. Existe um pequeno patch RISC-V aqui.

Obrigado a todos. Ainda temos uma série de coisas na lista TODO para o lançamento v2.5, então acho que temos algum tempo.

Rápida atualização. Comecei a atualizar o Fedora / RISCV para 5.5-rc2 e há uma série de problemas. Eu posso ter encontrado um problema criado pelo SECCOMP no kernel e trabalhando para consertá-lo primeiro. Este problema não foi mostrado pelo conjunto de testes libseccomp ou pelos autotestes do kernel seccomp.

Obrigado pela atualização. FWIW, os testes libseccomp não testam agressivamente o kernel, eles estão mais focados no lado da biblioteca (executando o código através de um simulador BPF).

Isso deve ser resolvido via # 197, fechamento.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

diekmann picture diekmann  ·  3Comentários

pcmoore picture pcmoore  ·  14Comentários

kloetzl picture kloetzl  ·  19Comentários

Xyene picture Xyene  ·  15Comentários

oxr463 picture oxr463  ·  4Comentários