Seharusnya tidak mungkin. swapon
panggilan sistem membutuhkan readpage
dan bmap
(secara tidak langsung) panggilan diimplementasikan oleh sistem file:
http://lxr.free-electrons.com/source/mm/swapfile.c?v=4.0#L2412
if (!mapping->a_ops->readpage) {
error = -EINVAL;
goto bad_swap;
}
Tapi tidak satupun dari mereka diimplementasikan oleh tmpfs , entri seperti itu hilang dari address_space_operations
yang sesuai :http://lxr.free-electrons.com/source/mm/shmem.c?v=4.0#L3104
Untuk alasan yang sama, tmpfs tidak dapat menahan mount loop, dan ramfs juga tidak akan berfungsi (tidak memiliki bmap
panggilan)
Dari T&J ini https://superuser.com/questions/539287/swapon-failed-invalid-argument-on-a-linux-system-with-btrfs-filesystem (situs referensi asli tidak merespons):
Jadi "Argumen tidak valid" harus dibaca sebagai "Sistem file Anda tidak mendukung file swap"
Alasan ketidakcocokan yang saya duga adalah "ketergantungan melingkar". Dari artikel ini:http://www.jamescoyle.net/knowledge/951-the-difference-between-a-tmpfs-and-ramfs-ram-disk:
Dua perbedaan antara ramfs dan tmpfs membuat tmpfs jauh lebih mudah diatur, namun ini adalah salah satu kelemahan utama; tmpfs dapat menggunakan SWAPspace. Jika sistem Anda kehabisan RAM fisik, file di partisi tmpfs Anda mungkin ditulis ke partisi SWAP berbasis disk dan harus dibaca dari disk saat file diakses berikutnya.
Yang akan sangat mustahil dalam skenario Anda.
Itu mungkin bekerja dengan ramfs
, tho - yang tidak memiliki masalah ini.