Thread (13 messages) flat view 13 messages, 3 authors, 2011-07-07

RE: [RFC] non-preemptible kernel socket for RAMster

From: Dan Magenheimer <hidden>
Date: 2011-07-05 19:19:00
Also in: linux-mm

From: Loke, Chetan [mailto:Chetan.Loke@netscout.com]
quoted
From: Dan Magenheimer [mailto:dan.magenheimer@oracle.com]
Subject: RE: [RFC] non-preemptible kernel socket for RAMster
quoted
From: Loke, Chetan [mailto:Chetan.Loke@netscout.com]
Sent: Tuesday, July 05, 2011 10:37 AM
To: Dan Magenheimer; netdev@vger.kernel.org
Cc: Konrad Wilk; linux-mm
Subject: RE: [RFC] non-preemptible kernel socket for RAMster
quoted
In working on a kernel project called RAMster* (where RAM on a
remote system may be used for clean page cache pages and for swap
pages), I found I have need for a kernel socket to be used when
How is RAMster+swap different than NBD's (pending etc?)support for
SWAP over NBD?
I may be ignorant of details about NBD, but did some quick
research using google.  If I understand correctly, swap over
NBD is still writing to a configured swap disk on the remote
Hi - I thought NBD-server needs a backing store(a file).
Now the file itself could reside on a RAM-drive or disk-drive etc.
And so a remote NBD(disk or RAM) can be mounted locally as a swap
device.
The local client should still see it as a block device.

I haven't used the RAM-drive feature myself but you may want to check if
it
works or even borrow that logic in your code.
Actually, RAMster is using a much more flexible type of
RAM-drive; it is built on top of Transcendent Memory
and on top of zcache (and thus on top of cleancache and
frontswap).  A RAM-drive is fixed size so is not very suitable
for the flexibility required for RAMster.  For example,
suppose you have two machines A and B.  At one point in
time A is overcommitted and needs to swap and B is relatively
idle.  Then later, B is overcommitted and needs to swap and
A is relatively idle.  RAMster can handle this entirely
dynamically, a RAM-drive cannot.
quoted
machine.  RAMster is swapping to *RAM* on the remote machine.
The idea is that most machines are very overprovisioned in
RAM, and are rarely using all of their RAM, especially when
a machine is (mostly) idle.  In other words, the "max of
the sums" of RAM usage on a group of machines is much lower
than the "sum of the max" of RAM usage.

So if the network is sufficiently faster than disk for
moving a page of data, RAMster provides a significant
performance improvement.  OR RAMster may allow a significant
reduction in the total amount of RAM across a data center.

The version of RAMster I am working on now is really
a proof-of-concept that works over sockets, using the
ocfs2 cluster layer.  One can easily envision a future
"exo-fabric" which allows one machine to write to the
RAM of another machine... for this future hardware,
RAMster becomes much more interesting.
Or you can also try scst-in-RAM mode(if you want to experiment with
different fabrics).
Thanks.  Could you provide a pointer for this?  I found
the SCST sourceforge page but no obvious references to
scst-in-ram-mode.  (But also, since it appears to be
SCSI-related, I wonder if it also assumes a fixed size
target device, RAM or disk or ??)

Dan

--
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-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help