Como o ecryptfs (sistemas de arquivos FUSE em geral) interage com o cache de buffer?

4

Minha suposição (que parece estar incorreta) era que o ecryptfs (sistemas de arquivos FUSE em geral) usava o seguinte mecanismo de empilhamento:

  • Problemas no código do usuário read()
  • O
  • Kernel tenta atender à solicitação do buffer existente (não criptografado)
  • O buffer não existe, o kernel solicita o ecryptfs para carregar o bloco
  • ecryptfs pede ao kernel para carregar o bloco físico (criptografado), o kernel faz isso e o armazena no cache de buffer
  • ecryptfs descriptografa o bloco físico
  • blocos descriptografados do kernel no cache de buffer
  • leituras subseqüentes são atendidas do bloco descriptografado no cache

No entanto, comparando os horários de "sys" para operações idênticas em sistemas de arquivos criptografados e não criptografados, parece que o único buffer no cache é o criptografado, e o ecryptfs descriptografa todos os read() . O diagrama na página inicial FUSE não menciona o cache de buffer, mas parece indicar que as operações ocorrem no nível syscall, não no bloco nível.

Alguém que esteja familiarizado com os componentes internos do ecryptfs (Dustin?) ou do FUSE em geral responda isso?

    
por kdgregory 01.06.2014 / 12:57

0 respostas

Tags