Non dovrebbe essere possibile. swapon
la chiamata di sistema richiede readpage
e bmap
(indirettamente) chiamate implementate dal filesystem:
http://lxr.free-electrons.com/source/mm/swapfile.c?v=4.0#L2412
if (!mapping->a_ops->readpage) {
error = -EINVAL;
goto bad_swap;
}
Ma nessuno di questi è implementato da tmpfs , tale voce non è presente nel corrispondente address_space_operations
:http://lxr.free-electrons.com/source/mm/shmem.c?v=4.0#L3104
Per lo stesso motivo, tmpfs non può contenere loop mount e nemmeno ramfs funzionerà (non ha bmap
chiamata)
Da questa domanda e risposta https://superuser.com/questions/539287/swapon-failed-invalid-argument-on-a-linux-system-with-btrfs-filesystem (il sito di riferimento originale non risponde):
Quindi "Argomento non valido" dovrebbe essere letto come "Il tuo filesystem non supporta il file di scambio"
Il motivo di incompatibilità che sospetto è una "dipendenza circolare". Da questo articolo:http://www.jamescoyle.net/knowledge/951-the-difference-between-a-tmpfs-and-ramfs-ram-disk:
Queste due differenze tra ramfs e tmpfs rendono tmpfs molto più gestibile, tuttavia questo è uno dei principali svantaggi; tmpfs può utilizzare SWAPspace. Se il tuo sistema esaurisce la RAM fisica, i file nelle tue partizioni tmpfs potrebbero essere scritti su partizioni SWAP basate su disco e dovranno essere letti dal disco al successivo accesso al file.
Il che sarebbe praticamente impossibile nel tuo scenario.
Potrebbe lavorare con ramfs
, tho - che non presenta questo problema.