linux/drivers/staging
Robert Love 11980c2ac4 ashmem: Anonymous shared memory subsystem
The anonymous shared memory (ashmem) subsystem provides a
Unix-y,file-based shared memory interface to user-space. It
works like anonymous memory (e.g. mmapping fd=0) except if
you share the file descriptor via the usual means, you will
share the mapping. The shared memory can be accessed via both
mmap or file I/O. The backing store is a simple shmem file.

Additionally, ashmem introduces the concept of page pinning.
Pinned pages (the default) behave like any anonymous memory.
Unpinned pages are available to the kernel for eviction during
VM pressure. When repinning the pages, the return value
instructs user-space as to any eviction. In this manner,
user-space processes may implement caching and similar
resource management that efficiently integrates with kernel
memory management.

Signed-off-by: Robert Love <rlove@google.com>

ashmem: Don't install fault handler for private mmaps.

Ashmem is used to create named private heaps. If this heap is backed
by a tmpfs file it will allocate two pages for every page touched.
In 2.6.27, the extra page would later be freed, but 2.6.29 does not
scan anonymous pages when running without swap so the memory is not
freed while the file is referenced. This change changes the behavior
of private ashmem mmaps to match /dev/zero instead tmpfs.

Signed-off-by: Arve Hjønnevåg <arve@android.com>

ashmem: Add common prefix to name reported in /proc/pid/maps

Signed-off-by: Arve Hjønnevåg <arve@android.com>

ashmem: don't require a page aligned size

This makes ashmem more similar to shmem and mmap, by
not requiring the specified size to be page aligned,
instead rounding it internally as needed.

Signed-off-by: Marco Nelissen <marcone@android.com>
[jstultz: Improved commit subject and included patch description
from rlove. Also moved ashmem files to staging dir, and reworked
code to avoid touching mm/shmem.c while we're in staging.]
CC: Brian Swetland <swetland@google.com>
CC: Colin Cross <ccross@android.com>
CC: Arve Hjønnevåg <arve@android.com>
CC: Dima Zavin <dima@android.com>
CC: Robert Love <rlove@google.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-12-21 13:38:28 -08:00
..
android ashmem: Anonymous shared memory subsystem 2011-12-21 13:38:28 -08:00
asus_oled Staging: asus_oled: Fixed use of obsolete function. 2011-11-26 18:13:54 -08:00
bcm staging: bcm: HandleControlPacket.c: breaking of long lines 2011-12-12 16:49:26 -08:00
comedi staging: comedi_fops.c whitespace fixes 2011-12-16 10:54:15 -08:00
cptm1217
crystalhd staging: crystalhd: bc_dts_defs.h: Fix up coding style 2011-12-16 10:54:15 -08:00
cxt1e1 Staging: cxt1e1: remove rcs keywords and log 2011-11-26 18:11:35 -08:00
echo
et131x staging: et131x: Revert changes from previous commit 2011-12-08 15:03:11 -08:00
frontier Staging: frontier: Removed use of obsolete function 2011-11-26 18:13:54 -08:00
ft1000
gma500 gma500: mark staging broken 2011-11-26 16:05:13 -08:00
hv Staging: hv: storvsc: Fix a bug in create_bounce_buffer() 2011-12-08 14:59:47 -08:00
iio staging:iio: iio_trigger contains defunct owner field. Remove it. 2011-12-16 10:56:26 -08:00
keucr
line6 staging: line6: fixed ALSA/PCM interaction 2011-12-09 19:26:09 -08:00
media media/staging: fix allyesconfig build error 2011-11-17 10:29:02 -02:00
mei staging/mei: code style - cleanup blanks 2011-12-13 16:22:18 -08:00
nvec staging: nvec: add device tree support 2011-11-26 17:17:14 -08:00
octeon STAGING: octeon-ethernet: Fix compile error caused by skb_frag_struct change 2011-11-09 17:14:27 +00:00
olpc_dcon Staging: olpc_dcon.c: obsolete use of strict_stroul 2011-12-08 15:01:49 -08:00
omapdrm staging: drm/omap: add debugfs support 2011-12-16 10:59:26 -08:00
panel
phison staging/phison: Convert pci_table entries to PCI_DEVICE (if PCI_ANY_ID is used) 2011-11-28 04:24:32 +09:00
pohmelfs filesystems: add set_nlink() 2011-11-02 12:53:43 +01:00
quatech_usb2
quickstart
rtl8187se Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2011-10-26 15:39:02 +02:00
rtl8192e staging: fix build problem with staging/rtl8192e 2011-12-16 10:57:38 -08:00
rtl8192u Staging: rtl8192u: remove api.c file 2011-11-26 16:25:54 -08:00
rtl8712 drivers/staging/rtl8712/rtl871x_mlme.c: eliminate a null pointer dereference 2011-11-26 17:19:23 -08:00
rts5139 Staging: remove version.h includes in drivers/staging/rts5139 2011-12-12 16:57:05 -08:00
rts_pstor staging:rts_pstor:Complete scanning_done variable 2011-11-26 17:37:39 -08:00
sbe-2t3e3
sep Staging: sep: potential buffer overflow in ioctl 2011-11-26 17:23:57 -08:00
serial m68k/serial: Remove obsolete IRQ_FLG_* users 2011-11-26 16:22:27 -08:00
serqt_usb2
slicoss staging: slicoss depends on NET 2011-11-18 15:00:48 -08:00
sm7xx staging/sm7xx: Convert pci_table entries to PCI_DEVICE (if PCI_ANY_ID is used) 2011-11-28 04:24:32 +09:00
speakup Staging: speakup: Don't try to access an unallocated struct. 2011-11-26 18:13:55 -08:00
ste_rmi4
tidspbridge staging: tidspbridge: request dmtimer clocks on init 2011-11-26 18:12:57 -08:00
usbip staging: usbip: bugfix for deadlock 2011-11-26 17:37:38 -08:00
vme Staging: VME: PIO2: Add GPIOLIB dependancy 2011-12-12 16:36:03 -08:00
vt6655 staging: vt6655: integer overflows in private_ioctl() 2011-11-30 19:29:40 +09:00
vt6656 staging: vt6656: integer overflows in private_ioctl() 2011-11-30 19:29:40 +09:00
winbond staging: Add module.h to more drivers implicitly using it. 2011-10-31 19:32:10 -04:00
wlags49_h2 staging/wlags49_h2: Convert pci_table entries to PCI_DEVICE (if PCI_ANY_ID is used) 2011-11-28 04:24:32 +09:00
wlags49_h25 Staging: wlags49_h25: Makefile: remove unneeded stuff 2011-10-18 13:36:04 -07:00
wlan-ng
xgifb staging: xgifb: enable forcecrt2type as a module parameter 2011-12-08 12:26:09 -08:00
zcache Staging: zcache: Fix calls to obsolete function 2011-11-26 18:13:55 -08:00
zram Staging: zram: Add a missing GFP_KERNEL specifier in zram_init_device() 2011-12-08 14:59:48 -08:00
Kconfig Staging: lttng: remove from the drivers/staging/ tree 2011-12-08 15:25:56 -08:00
Makefile Staging: lttng: remove from the drivers/staging/ tree 2011-12-08 15:25:56 -08:00
staging.c