Nemělo by to být možné. swapon
systémové volání vyžaduje readpage
a bmap
(nepřímo) volání implementovaná souborovým systémem:
http://lxr.free-electrons.com/source/mm/swapfile.c?v=4.0#L2412
if (!mapping->a_ops->readpage) {
error = -EINVAL;
goto bad_swap;
}
Žádný z nich však není implementován pomocí tmpfs , taková položka chybí v odpovídajícím address_space_operations
:http://lxr.free-electrons.com/source/mm/shmem.c?v=4.0#L3104
Ze stejného důvodu tmpfs nemůže držet připojení smyčky a nebude fungovat ani ramfs (nemá bmap
zavolat)
Z této otázky a odpovědi https://superuser.com/questions/539287/swapon-failed-invalid-argument-on-a-linux-system-with-btrfs-filesystem (původní odkazovaný web nereaguje):
Takže "Neplatný argument" by měl být chápán jako "Váš souborový systém nepodporuje odkládací soubor"
Domnívám se, že důvodem nekompatibility je "kruhová závislost". Z tohoto článku:http://www.jamescoyle.net/knowledge/951-the-difference-between-a-tmpfs-and-ramfs-ram-disk:
Tyto dva rozdíly mezi ramfs a tmpfs dělají tmpfs mnohem lépe řiditelnými, nicméně toto je jedna velká nevýhoda; tmpfs může používat prostor SWAP. Pokud vašemu systému dojde fyzická RAM, soubory ve vašich tmpfspartitions mohou být zapsány na diskové oddíly SWAP a budou muset být načteny z disku při příštím přístupu k souboru.
Což by ve vašem scénáři bylo téměř nemožné.
Mohlo by pracovat s ramfs
, tho - který tento problém nemá.