Messages in this thread | | | Date | Wed, 10 Mar 2010 00:37:14 +0530 | From | Nitin Gupta <> | Subject | Re: [PATCH 0/3] ramzswap: Eliminate stale data in compressed memory |
| |
On 03/05/2010 03:52 PM, Nitin Gupta wrote: > ramzswap driver creates RAM based block devices which can be > used (only) as swap disks. Pages swapped to these disks are > compressed and stored in memory itself. > > However, these devices do not get any notification when a swap > slot is freed (swap_map[i] reaches 0). So, we cannot free memory > allocated corresponding to this swap slot. Such stale data can > quickly accumulate in (compressed) memory defeating the whole > purpose of such devices. > > To overcome this problem, we now add a callback in 'struct swap_info_struct' > which is called as soon as a swap slot is freed. > > Adding handler for this callback: > swapon notifier --> set_swap_free_notify(swap_type, fn) > > Removing handler: > swapoff notifier --> set_swap_free_notify(swap_type, NULL) > > > Alternative approaches: > 1) Add callback directly in 'struct block_device_operations' but > that is considered too hacky. > 2) Use swap discard mechanism: It involves unncessary overhead of > allocating 'discard bio' requests and its too slow to serve ramzswap > needs. > > drivers/staging/ramzswap/ramzswap_drv.c | 91 +++++++++++++++++++++++++++++ > drivers/staging/ramzswap/ramzswap_drv.h | 1 + > drivers/staging/ramzswap/ramzswap_ioctl.h | 1 + > include/linux/swap.h | 16 +++++- > mm/swapfile.c | 78 ++++++++++++++++++++++++ > 5 files changed, 185 insertions(+), 2 deletions(-) >
Any chance it can go into 2.6.34? Any comments?
Thanks, Nitin
| |