On 9/15/17, 7:53 AM, "David Sterba" <dste...@suse.cz> wrote: > On Sun, Aug 20, 2017 at 06:38:50PM -0600, Chris Murphy wrote: > > On Fri, Aug 18, 2017 at 10:08 AM, David Sterba <dste...@suse.cz> wrote: > > > > > That's quite a lot, in kernel. IIRC zlib and lzo use less than 200kb, > > > zstd wants 800kb for level 1. And this needs to be contiguous memory, so > > > if we're lucky and get the memory at the mount time, fine. In general > > > the memory can be fragmented (in the worst case, there are only 4k > > > chunks available), so we'd have to vmalloc and consume the virtual, > > > mappings in great numbers. > > > > Any thoughts on bootloader support, both in general, and as it relates > > to levels of compression and memory constraints? GRUB switches to > > protected mode early on but other bootloaders might have more > > limitations. I guess really it's just GRUB and extlinux right now, > > there were patches some time ago for Das U-Boot but they still aren't > > merged. > > I'm not sure if the memory requirements are same for compression and > decompression. The table is related to compression. I've looked around > web to find what the decompression requirements are but havne't found > anything.
In the BtrFS implementation, the same workspaces are used both for compression and decompression, so they allocate enough memory for compression. Decompression requires a constant 550 KB with a 128 KB window size (which BtrFS has). You can find the numbers using the functions ZSTD_estimateCStreamSize() and ZSTD_estimateDStreamSize(). N�����r��y����b�X��ǧv�^�){.n�+����{�n�߲)����w*jg��������ݢj/���z�ޖ��2�ޙ����&�)ߡ�a�����G���h��j:+v���w��٥