O problema com o que você está tentando fazer é que o cache do VFS é controlado inteiramente dentro do kernel, e o espaço do seu problema é muito simples - em geral, colocar o cache no swap derrota completamente o propósito do cache ( embora eu concorde que seu caso de uso seja válido). Meu ponto é simplesmente que é muito improvável que o que você queira fazer atualmente seja suportado no kernel (e eu certamente nunca ouvi qualquer tipo de rumores sobre o que você quer fazer sendo possível).
Se você estivesse executando uma tecnologia de virtualização mais "pseudo", como o qemu, seria possível "supercomprometer" a memória usada pelas VMs. Dessa forma, a memória usada pela VM seria mais visível para o host como memória de processo "regular" e você poderia usar o espaço de troca do host para paginar quando não fosse necessário. Isso corre o risco de trocar a máquina por morte se os processos nas VMs realmente precisassem de toda essa memória, ou se a pressão do cache nas VMs fosse strong, mas poderia funcionar com alguns ajustes cuidadosos.
É improvável que qualquer tentativa de gerenciar esse tipo de coisa no espaço do usuário funcione, porque o cache do VFS é todo o nível do kernel e (novamente) casos de uso para gerenciá-lo no espaço do usuário são muito específicos. Se fossem dados de aplicativos que você estava tentando armazenar em cache, você poderia fornecer um cache de espaço de usuário aos dados (se precisasse de um sistema de arquivos, você poderia usar o FUSE, mas um armazenamento de dados específico do aplicativo funcionaria melhor), mas isso é muito de trabalho (o cache não é simples de acertar), e não funciona quando é o sistema de arquivos raiz que você precisa armazenar em cache.
Se você decidir que isso vale a pena, acho que você gastará muito tempo escrevendo e depurando seu próprio código no nível do kernel para suportar esse caso de uso. Em vez de generalizar o problema para "armazenar cache em swap" (o que aumentará as defesas de várias pessoas), o que pode ser mais fácil é algum tipo de mecanismo "SAN caching de dispositivo" que usa espaço de swap em vez de VFS memória cache. Note que eu digo "mais fácil", e não "fácil" - ainda vai ser muito trabalho.
Eu estaria disposto a gastar muito esforço (e dinheiro) para melhorar o desempenho do meu NAS / SAN antes de analisar a modificação do kernel - porque, honestamente, ele fornecerá mais recursos buck do que o cache. Com o cache, seu acesso inicial é sempre tão lento quanto o mecanismo de acesso subjacente, e se você puder fazer isso com mais rapidez, provavelmente melhorará o desempenho percebido mais do que ter acesso inicial lento com rapidez ( infrequente) acesso repetido. Considere também o custo de apenas dar a todas as suas VMs um monte de RAM a mais - você pode comprar muita RAM pelo custo de um ou dois meses de pirataria do kernel.