2002-08-17 08:18:31

by nada shalabi

[permalink] [raw]
Subject: important question!

hi,
i want to add a comprissing syscall in the linux kernel in order to improve
the work of the swapper.
The commprissing function and the decomprissing one take a buffer as an
argument.now i am trying to find the right line to insert the compriss and
decompriis in i meen the place in thre code before the buffer of data
became a page and after a page become a buffer od data.
i still searching and reading the linux code i think my answer should be in
page_io.c.
please help me i need the answer today.
thanx in advance
nada shalabi





_________________________________________________________________
Join the world?s largest e-mail service with MSN Hotmail.
http://www.hotmail.com


2002-08-17 09:41:10

by Matti Aarnio

[permalink] [raw]
Subject: Re: important question!

On Sat, Aug 17, 2002 at 08:22:24AM +0000, nada shalabi wrote:
> hi,
> i want to add a comprissing syscall in the linux kernel in order
> to improve the work of the swapper.

Could you describe how the improvement would be achieved
with this ? Under what conditions ?

> The commprissing function and the decomprissing one take a buffer
> as an argument.now i am trying to find the right line to insert
> the compriss and decompriis in i meen the place in thre code
> before the buffer of data became a page and after a page become
> a buffer od data.
> i still searching and reading the linux code i think my answer
> should be in page_io.c.
> please help me i need the answer today.
> thanx in advance
> nada shalabi

You don't want to make a syscall -- those are where kernel supplies
some service for the userspace. What you do want is to add a block
compression function call within the kernel itself.

Now if that thing you have in mind would make sense, why it hasn't
been done in past 10 years ? (It has been proposed a few times, though.)

That is due to:
- You can't compress compressed data
- In worst case, you end up needing MORE space than you
begun with (even one bit more space is too much.)

Sure enough it might work for most of the time, but when you get a page
full of maximum entropy data, and try to swap that, things fail.