Re: swapfile on btrfs, temporary solution for wiki
Thanks to all, who* answer. -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: swapfile on btrfs, temporary solution for wiki
Is the NFS over network code upstream ? On 10/25/13, Hugo Mills h...@carfax.org.uk wrote: On Fri, Oct 25, 2013 at 04:35:46PM +0600, Roman Mamedov wrote: On Thu, 24 Oct 2013 23:52:01 +0300 Timofey Titovets nefelim...@gmail.com wrote: Hello, i suggest temporary solution to use swap file under btrfs. I test it, and it work good. I invent simple the way, how create and using swap file, just see following sh code: swapfile=$(losetup -f) #free loop device truncate -s 8G /swap #create 8G sparse swap file losetup $swapfile /swap #mount file to loop mkswap $swapfile swapon $swapfile i just adding this to rc.local and this work good. May be, add it to btrfs Wiki as temporary solution to using swap file? I always thought Btrfs does not allow swap files on purpose, because it is not deadlock-proof when used in the swapping context. It's more that the current swap interface is based on device+block list, and if you balance a filesystem, the blocks for a file move -- but there's no way of telling the swap code to cope with that. Imagine you try swapping out pages to free up some memory, and in the process Btrfs needs to allocate some memory to actually perform the write, the kernel says Sure, but for that we need to swap out some more pages... You see where that goes. Same issue is possible with swap on other complex filesystems an example being networked ones like NFS and SMB/CIFS. The network filesystems have a similar problem as btrfs -- they don't export devices, and you don't get direct access to the low-level blocks under the FS, so the swap code can't deal with it. That said, there's been a lot of work recently on getting swap-over-NFS to work properly -- effectively giving a new interface for the swap code that doesn't rely on direct mapping to device blocks. That new interface gives us the minimal external infrastructure necessary to consider doing swapfiles on btrfs. It might work for some time (or even work 99% of time), but you still may be endangering your system to a possibility of a lock-up, and certainly adding that to any Wiki/FAQ/website as the solution might not be the best choice. The deadlock situation is dealt with by adding a flag to the memory allocator in the swap-critical paths, which says you're not allowed to swap anything when you make the allocation. That at least allows the memory allocation to fail (hopefully gracefully) without deadlocking. I suspect that this is also part of the swap-on-NFS work -- adding that flag everywhere necessary. Hugo. -- === Hugo Mills: hugo@... carfax.org.uk | darksatanic.net | lug.org.uk === PGP key: 65E74AC0 from wwwkeys.eu.pgp.net or http://www.carfax.org.uk --- He's playing Schubert. I think Schubert is losing. --- -- Karim Allah Ahmed. LinkedIn http://eg.linkedin.com/pub/karim-allah-ahmed/13/829/550/ -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: swapfile on btrfs, temporary solution for wiki
karim.allah.ah...@gmail.com posted on Sat, 26 Oct 2013 10:30:18 +0100 as excerpted: Is the swap over NFS code upstream ? ?esrever ni txet referp uoy od ;tsop-pot t'nod esaelP (Please don't top-post; do you prefer text in reverse?) Quote the context you need so your question makes sense and reply below it, and you're more likely to get useful answers as it'll be less work to reply properly. Here's how it should have looked, now quoted another level for my reply: That said, there's been a lot of work recently on getting swap-over-NFS to work properly -- effectively giving a new interface for the swap code that doesn't rely on direct mapping to device blocks. That new interface gives us the minimal external infrastructure necessary to consider doing swapfiles on btrfs. Is the swap over NFS code upstream ? The answer is yes, I've definitely seen commit comments about swap over NFS on recent commits, so the work is indeed going in, tho it may well still be a WIP. (I don't use NFS here and in fact with 8-16 gigs RAM common these days, I don't use swap so much any more either and often don't even have the kernel swap option on for my current configs unless I'm using it for suspend-to-disk, so I've not followed the issue closely enough to know current in-kernel status, but based on the commits I've happened across, yes, the work is certainly going in, if the feature isn't already there and working in general and they're simply tweaking it now.) -- Duncan - List replies preferred. No HTML msgs. Every nonfree program has a lord, a master -- and if you use the program, he is your master. Richard Stallman -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: swapfile on btrfs, temporary solution for wiki
On 10/25/2013 05:52 AM, Timofey Titovets wrote: Hello, i suggest temporary solution to use swap file under btrfs. I test it, and it work good. I invent simple the way, how create and using swap file, just see following sh code: swapfile=$(losetup -f) #free loop device truncate -s 8G /swap #create 8G sparse swap file losetup $swapfile /swap #mount file to loop mkswap $swapfile swapon $swapfile i just adding this to rc.local and this work good. May be, add it to btrfs Wiki as temporary solution to using swap file? Timofey Hi, Yes, Timofey, it does work. I tested the same over a year ago. And it does say briefly about this option in wiki https://btrfs.wiki.kernel.org/index.php/FAQ#Does_btrfs_support_swap_files.3F A workaround, albeit with poor performance, is to mount a swap file via a loop device. best -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: swapfile on btrfs, temporary solution for wiki
On Thu, 24 Oct 2013 23:52:01 +0300 Timofey Titovets nefelim...@gmail.com wrote: Hello, i suggest temporary solution to use swap file under btrfs. I test it, and it work good. I invent simple the way, how create and using swap file, just see following sh code: swapfile=$(losetup -f) #free loop device truncate -s 8G /swap #create 8G sparse swap file losetup $swapfile /swap #mount file to loop mkswap $swapfile swapon $swapfile i just adding this to rc.local and this work good. May be, add it to btrfs Wiki as temporary solution to using swap file? I always thought Btrfs does not allow swap files on purpose, because it is not deadlock-proof when used in the swapping context. Imagine you try swapping out pages to free up some memory, and in the process Btrfs needs to allocate some memory to actually perform the write, the kernel says Sure, but for that we need to swap out some more pages... You see where that goes. Same issue is possible with swap on other complex filesystems an example being networked ones like NFS and SMB/CIFS. It might work for some time (or even work 99% of time), but you still may be endangering your system to a possibility of a lock-up, and certainly adding that to any Wiki/FAQ/website as the solution might not be the best choice. -- With respect, Roman signature.asc Description: PGP signature
Re: swapfile on btrfs, temporary solution for wiki
Hello, i suggest temporary solution to use swap file under btrfs. I test it, and it work good. I invent simple the way, how create and using swap file, just see following sh code: swapfile=$(losetup -f) #free loop device truncate -s 8G /swap #create 8G sparse swap file losetup $swapfile /swap #mount file to loop mkswap $swapfile swapon $swapfile i just adding this to rc.local and this work good. May be, add it to btrfs Wiki as temporary solution to using swap file? Timofey 2013/10/21 Тимофей Титовец nefelim...@gmail.com: Hello list, i know what btrfs don't support swap files. I read arch wiki and when i reading about systemd addon for auto create swapfile on btrfs, i invent the way, how create and using swap file, just see following sh code: swapfile=$(losetup -f) #free loop device truncate -s 8G /swap #create 8G sparse swap file losetup $swapfile /swap #mount file to loop mkswap $swapfile swapon $swapfile i just adding this to rc.local and this just work. May be, add it to Wiki as temporary solution to using swap file? (sorry for my bad english) -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html