David Howells
165b239270
[PATCH] NOMMU: make SYSV SHM nattch work correctly
...
Make the SYSV SHM nattch counter work correctly by forcing multiple VMAs to
be produced to represent MAP_SHARED segments, even if they overlap exactly.
Using this test program:
http://people.redhat.com/~dhowells/doshm.c
Run as:
doshm sysv
I can see nattch going from one before the patch:
# /doshm sysv
Command: sysv
shmid: 65536
memory: 0xc3700000
c0b00000-c0b04000 rw-p 00000000 00:00 0
c0bb0000-c0bba788 r-xs 00000000 00:0b 14582157 /lib/ld-uClibc-0.9.28.so
c3180000-c31dede4 r-xs 00000000 00:0b 14582179 /lib/libuClibc-0.9.28.so
c3520000-c352278c rw-p 00000000 00:0b 13763417 /doshm
c3584000-c35865e8 r-xs 00000000 00:0b 13763417 /doshm
c3588000-c358aa00 rw-p 00008000 00:0b 14582157 /lib/ld-uClibc-0.9.28.so
c3590000-c359b6c0 rw-p 00000000 00:00 0
c3620000-c3640000 rwxp 00000000 00:00 0
c3700000-c37fa000 rw-S 00000000 00:06 1411 /SYSV00000000 (deleted)
c3700000-c37fa000 rw-S 00000000 00:06 1411 /SYSV00000000 (deleted)
nattch 1
To two after the patch:
# /doshm sysv
Command: sysv
shmid: 0
memory: 0xc3700000
c0bb0000-c0bba788 r-xs 00000000 00:0b 14582157 /lib/ld-uClibc-0.9.28.so
c3180000-c31dede4 r-xs 00000000 00:0b 14582179 /lib/libuClibc-0.9.28.so
c3320000-c3340000 rwxp 00000000 00:00 0
c3530000-c35325e8 r-xs 00000000 00:0b 13763417 /doshm
c3534000-c353678c rw-p 00000000 00:0b 13763417 /doshm
c3538000-c353aa00 rw-p 00008000 00:0b 14582157 /lib/ld-uClibc-0.9.28.so
c3590000-c359b6c0 rw-p 00000000 00:00 0
c35a4000-c35a8000 rw-p 00000000 00:00 0
c3700000-c37fa000 rw-S 00000000 00:06 1369 /SYSV00000000 (deleted)
c3700000-c37fa000 rw-S 00000000 00:06 1369 /SYSV00000000 (deleted)
nattch 2
That's +1 to nattch for each shmat() made.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-03-22 19:39:06 -07:00
..
2006-12-07 08:39:22 -08:00
2007-03-16 19:25:05 -07:00
2006-12-07 08:39:44 -08:00
2007-01-12 10:46:49 -08:00
2006-12-08 08:28:43 -08:00
2007-01-30 08:33:32 -08:00
2007-03-16 19:25:04 -07:00
2006-10-04 03:38:54 -04:00
2006-12-22 08:55:49 -08:00
2007-02-11 10:51:17 -08:00
2007-02-09 09:25:46 -08:00
2006-09-26 08:48:44 -07:00
2007-02-11 10:51:19 -08:00
2007-03-16 19:25:04 -07:00
2006-10-20 10:26:35 -07:00
2007-01-11 18:18:20 -08:00
2007-02-12 09:48:27 -08:00
2007-03-05 07:57:51 -08:00
2007-02-11 10:51:32 -08:00
2007-03-05 07:57:51 -08:00
2007-02-15 09:57:03 -08:00
2006-12-07 08:39:22 -08:00
2007-03-01 14:53:38 -08:00
2006-12-07 08:39:44 -08:00
2006-10-01 00:39:33 -07:00
2007-01-30 08:33:32 -08:00
2006-09-26 08:48:45 -07:00
2007-03-22 19:39:06 -07:00
2007-03-16 19:25:06 -07:00
2007-03-01 14:53:37 -08:00
2006-12-07 08:39:27 -08:00
2007-03-01 14:53:38 -08:00
2006-12-07 08:39:27 -08:00
2005-04-16 15:20:36 -07:00
2007-02-11 10:51:18 -08:00
2007-03-01 14:53:39 -08:00
2006-10-11 11:14:23 -07:00
2007-03-05 07:57:51 -08:00
2007-03-01 14:53:37 -08:00
2006-12-30 10:56:42 -08:00
2006-12-07 08:39:23 -08:00
2006-07-03 15:27:02 -07:00
2006-12-07 08:39:39 -08:00
2007-01-05 23:55:22 -08:00
2006-12-07 08:39:22 -08:00
2007-03-01 14:53:35 -08:00
2007-03-01 14:53:39 -08:00
2006-10-04 07:55:13 -07:00
2007-02-11 10:51:32 -08:00
2007-03-01 14:53:38 -08:00
2007-02-11 10:51:18 -08:00