Creating compressed backing_store as swapfile

2018-11-05 Thread Pintu Agarwal
Hi,

I have one requirement:
I wanted to have a swapfile (64MB to 256MB) on my system.
But I wanted the data to be compressed and stored on the disk in my swapfile.
[Similar to zram, but compressed data should be moved to disk, instead of RAM].

Note: I wanted to optimize RAM space, so performance is not important
right now for our requirement.

So, what are the options available, to perform this in 4.x kernel version.
My Kernel: 4.9.x
Board: any - (arm64 mostly).

As I know, following are the choices:
1) ZRAM: But it compresses and store data in RAM itself
2) frontswap + zswap : Didn't explore much on this, not sure if this
is helpful for our case.
3) Manually creating swapfile: but how to compress it ?
4) Any other options ?


Thanks,
Pintu

___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: Creating compressed backing_store as swapfile

2018-11-05 Thread Austin S. Hemmelgarn

On 11/5/2018 10:58 AM, Adam Borowski wrote:

On Mon, Nov 05, 2018 at 08:31:46PM +0530, Pintu Agarwal wrote:

Hi,

I have one requirement:
I wanted to have a swapfile (64MB to 256MB) on my system.
But I wanted the data to be compressed and stored on the disk in my swapfile.
[Similar to zram, but compressed data should be moved to disk, instead of RAM].

Note: I wanted to optimize RAM space, so performance is not important
right now for our requirement.

So, what are the options available, to perform this in 4.x kernel version.
My Kernel: 4.9.x
Board: any - (arm64 mostly).

As I know, following are the choices:
1) ZRAM: But it compresses and store data in RAM itself
2) frontswap + zswap : Didn't explore much on this, not sure if this
is helpful for our case.
3) Manually creating swapfile: but how to compress it ?
4) Any other options ?


Loop device on any filesystem that can compress (such as btrfs)?  The
performance would suck, though -- besides the indirection of loop, btrfs
compresses in blocks of 128KB while swap wants 4KB writes.  Other similar
option is qemu-nbd -- it can use compressed disk images and expose them to a
(local) nbd client.


Swap on any type of a networked storage device (NBD, iSCSI, ATAoE, etc) 
served from the local system is _really_ risky.  The moment the local 
server process for the storage device gets forced out to swap, you deadlock.


Performance isn't _too_ bad for the BTRFS case though (I've actually 
tested this before), just make sure you disable direct I/O mode on the 
loop device, otherwise you run the risk of data corruption.


___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: Creating compressed backing_store as swapfile

2018-11-05 Thread valdis . kletnieks
On Mon, 05 Nov 2018 20:31:46 +0530, Pintu Agarwal said:
> I wanted to have a swapfile (64MB to 256MB) on my system.
> But I wanted the data to be compressed and stored on the disk in my swapfile.
> [Similar to zram, but compressed data should be moved to disk, instead of 
> RAM].

What platform are you on that you're both storage constrained enough to need
swap, and also so short on disk space that compressing it makes sense?
Understanding the hardware constraints here would help in advising you.

> Note: I wanted to optimize RAM space, so performance is not important
> right now for our requirement.
>
> So, what are the options available, to perform this in 4.x kernel version.
> My Kernel: 4.9.x

Given that this is a greenfield development, why are you picking a kernel
that's 2 years out of date?  You *do* realize that 4.9.135 does *not* contain
all the bugfixes since then, only that relatively small subset that qualify for
'stable' (see Documentation/process/stable-kernel-rules.rst for the gory
details).

One possible total hack would be to simply use a file-based swap area,
but put the file on a filesystem that supports automatic inline compression.

Note that this will probably *totally* suck on performance, because there's
no good way to find where 4K block 11,493 starts inside the compressed
file, so it would have to read/decompress from the file beginning.  Also,
if you write data to a previously unused location (or even a previously used
spot that compressed the 4K page to a different length), you have a bad time
inserting it.  (Note that zram can avoid most of this because it can (a) keep
a table of pointers to where each page starts and (b) it isn't constrained to
writing to 4K blocks on disk, so if the current compression takes a 4K page down
to 1,283 bytes, it doesn't have to care *too* much if it stores that someplace
that crosses a page boundary.

Another thing that you will need to worry about is what happens in low-memory
situations - the time you *most* need to do a swap operation, you may not have
enough memory to do the I/O.  zram basically makes sure it *has* the memory
needed beforehand, and swap directly to pre-allocated disk doesn't need much
additional memory.


pgp9ikzGEsGfC.pgp
Description: PGP signature
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: Creating compressed backing_store as swapfile

2018-11-05 Thread valdis . kletnieks
On Mon, 05 Nov 2018 11:07:12 -0500, "Austin S. Hemmelgarn" said:

> Performance isn't _too_ bad for the BTRFS case though (I've actually
> tested this before), just make sure you disable direct I/O mode on the
> loop device, otherwise you run the risk of data corruption.

Did you test that for random-access. or just sequential read/write?
(Also, see the note in my other mail regarding doing a random-access
write to the middle of the file...)



pgp9db3HLgH6J.pgp
Description: PGP signature
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: Creating compressed backing_store as swapfile

2018-11-05 Thread Austin S. Hemmelgarn

On 11/5/2018 11:14 AM, valdis.kletni...@vt.edu wrote:

On Mon, 05 Nov 2018 11:07:12 -0500, "Austin S. Hemmelgarn" said:


Performance isn't _too_ bad for the BTRFS case though (I've actually
tested this before), just make sure you disable direct I/O mode on the
loop device, otherwise you run the risk of data corruption.


Did you test that for random-access. or just sequential read/write?
(Also, see the note in my other mail regarding doing a random-access
write to the middle of the file...)

Actual swap usage.  About 16 months ago, I had been running a couple of 
Intel NUC5PPYH boxes (Pentium N3700 CPU's, 4GB of DDR3-1333 RAM) for 
some network prototyping.  On both, I had swap set up to use a file on 
BTRFS via a loop device, and I made a point to test both with LZ4 inline 
compression and without any compression, and saw negligible performance 
differences (less than 1% in most cases).  It was, of course, 
significantly worse than running on ext4, but on a system that's so 
resource constrained that both storage and memory are at a premium to 
this degree, the performance hit is probably going to be worth it.


Also, it's probably worth noting that BTRFS doesn't need to decompress 
the entire file to read or write blocks in the middle, it splits the 
file into 128k blocks and compresses each of those independent of the 
others, so it can just decompress the 128k block that holds the actual 
block that's needed.


___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: Creating compressed backing_store as swapfile

2018-11-05 Thread valdis . kletnieks
On Mon, 05 Nov 2018 11:28:49 -0500, "Austin S. Hemmelgarn" said:

> Also, it's probably worth noting that BTRFS doesn't need to decompress
> the entire file to read or write blocks in the middle, it splits the
> file into 128k blocks and compresses each of those independent of the
> others, so it can just decompress the 128k block that holds the actual
> block that's needed.

Presumably it does something sane with block allocation for the now-compressed
128K that's presumably much smaller.  Also, that limits the damage from writing 
to
the middle of a compression unit

That *does* however increase the memory requirement - you can OOM or
deadlock if your read/write from the swap needs an additional 128K for the
compression buffer at an inconvenient time...



pgpLJYMAk5PeA.pgp
Description: PGP signature
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: Creating compressed backing_store as swapfile

2018-11-05 Thread Austin S. Hemmelgarn

On 11/5/2018 11:53 AM, valdis.kletni...@vt.edu wrote:

On Mon, 05 Nov 2018 11:28:49 -0500, "Austin S. Hemmelgarn" said:


Also, it's probably worth noting that BTRFS doesn't need to decompress
the entire file to read or write blocks in the middle, it splits the
file into 128k blocks and compresses each of those independent of the
others, so it can just decompress the 128k block that holds the actual
block that's needed.


Presumably it does something sane with block allocation for the now-compressed
128K that's presumably much smaller.  Also, that limits the damage from writing 
to
the middle of a compression unit

That *does* however increase the memory requirement - you can OOM or
deadlock if your read/write from the swap needs an additional 128K for the
compression buffer at an inconvenient time...

Indeed, and I can't really comment on how it might behave under those 
circumstances (the systems I did the testing on never saw memory 
pressure quite _that_ bad, and I had them set up to swap things out 
pretty early and really aggressively).


___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


Re: error: /boot/vmlinuz-4.18.16-1-default has invalid signature

2018-11-05 Thread Manuel Quintero Fonseca
if I had the uefi enabled, then I deactivated it but I set the error of the
grub, I turned it on again and it is no longer possible to enter D: neither
going back to re-configure the system

El jue., 1 nov. 2018 a las 0:52, Mulyadi Santosa ()
escribió:

>
>
> On Tue, Oct 30, 2018 at 5:24 AM Manuel Quintero Fonseca 
> wrote:
>
>> I Compiled the stable kernel obtained from kernel.org, when starting the
>> grub
>> the error came out:
>>
>> Loadin Linux 4.18.16-1-default ..
>> error: /boot/vmlinuz-4.18.16-1-default has invalid signature.
>> loading initial ramdisk ...
>> error: the kernel must be loaded first
>>
>> Just a hunch, are you using UEFI/secure boot?
>
>
>>
>> The steps for the process were:
>>
>> $ git clone git: //
>> git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
>> cd linux-stable
>>
>> $ git checkout -b stable v4.18.16
>>
>> $ cp / boot / config-`uname -r` * .config
>>
>> $ make
>> #make modules_install install
>>
>> #reboot
>>
>> with that it is supposed to be compiled and installed in the system and I
>> configure the grub
>> the source: https://kernelnewbies.org/KernelBuild
>>
>> openSUSE TW
>>
>> NOTE: I tested it on a virtual machine in the same way, and did not frame
>> the error
>>
>> regards
>> ___
>> Kernelnewbies mailing list
>> Kernelnewbies@kernelnewbies.org
>> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>>
>
>
> --
> regards,
>
> Mulyadi Santosa
> Freelance Linux trainer and consultant
>
> blog: the-hydra.blogspot.com
> training: mulyaditraining.blogspot.com
> ___
> Kernelnewbies mailing list
> Kernelnewbies@kernelnewbies.org
> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
___
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies