From: "Rodrigo S. de Castro" <rodsc@bigfoot.com>
To: Marcelo Tosatti <marcelo@conectiva.com.br>
Cc: linux-mm@kvack.org, kernel@tutu.ime.usp.br
Subject: Re: [RFC] Structure in Compressed Cache
Date: Tue, 31 Oct 2000 17:15:51 -0200 [thread overview]
Message-ID: <20001031171551.A978@einstein> (raw)
In-Reply-To: <Pine.LNX.4.21.0010311404210.1475-100000@freak.distro.conectiva>; from marcelo@conectiva.com.br on Tue, Oct 31, 2000 at 02:06:08PM -0200
On Tue, Oct 31, 2000 at 02:06:08PM -0200, Marcelo Tosatti wrote:
> On Mon, 30 Oct 2000, Rodrigo S. de Castro wrote:
> > In my implementation of compressed cache (kernel 2.2.16), I
> > started the project having my cache as a slab cache, structure
> > provided by kernel. I have all step 1 (a cache with no compression)
> > done, but I had a problem with marking pages in my cache. After an
> > email sent to the list about this subject, I started looking at shared
> > memory mechanism (mainly ipc/shm.c), and I saw that there's another
> > way of making it: with a page table allocation and memory mapping. I
> > could go on with my initial idea (with slab cache) but I think that
> > doing the latter way (with page table and memory mapping) would be
> > more complete (and, of course, harder). I will have a pool of
> > (compressed) pages that gotta be always in memory and will be
> > "between" physical memory and swap. As the project is growing I would
> > like to define now which path to follow, taking in account
> > completeness and upgradeability (to future versions of kernel). Which
> > way do you think that is better? Please, I also ask you to tell me in
> > case you know if there's another way, maybe better, of doing it.
>
> Slab cache memory is physically contiguous and non swappable, so it may be
> a waste to use it to cache userspace data.
Data in slab cache is not supposed to be swapped. Currently,
the slab cache stores only a structure with some information (such as
task, original pte) and a pointer to a physical page that is allocated
at the beginning of my compressed_init() function. I manage, when
cache fills up, to swap data present in slab cache. It will be user
data (every data that may be swapped), but it will managed by our
functions. It seemed to me that a page table (with memory mapping)
would be a better choice to put all compressed levels in the same
"level" as shared pages, for example, and it seemed to be more
complete. What do you think? I hope I haven't said something too
wrong. :-)
Would I have problem with slab cache when it grows and
shrinks, in one advanced phase of our project, due to have contiguous
data? I couldn't notice this problem when I read some papers about
slab cache, but I am not sure as well.
Slab cache was our first choice because it allowed this
dynamism (growing and shrinking) with no big effort. In the case of
having a page table, we must have all engine built to support this
feature.
Thank you very much for your help,
--
Rodrigo S. de Castro <rcastro@linux.ime.usp.br>
University of Sao Paulo - Brazil
Compressed Caching - http://tutu.ime.usp.br
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux.eu.org/Linux-MM/
next prev parent reply other threads:[~2000-10-31 20:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-10-30 21:09 Rodrigo S. de Castro
2000-10-31 16:06 ` Marcelo Tosatti
2000-10-31 19:15 ` Rodrigo S. de Castro [this message]
2000-11-01 20:51 ` Rodrigo S. de Castro
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20001031171551.A978@einstein \
--to=rodsc@bigfoot.com \
--cc=kernel@tutu.ime.usp.br \
--cc=linux-mm@kvack.org \
--cc=marcelo@conectiva.com.br \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox