public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* nvidia and rmap (again)
@ 2004-07-22 17:54 John Bucy
  2004-07-22 18:08 ` Dave Jones
  0 siblings, 1 reply; 3+ messages in thread
From: John Bucy @ 2004-07-22 17:54 UTC (permalink / raw)
  To: linux-kernel


I'm sure everyone's sick of hearing about nvidia problems by now...

On my 2.6.7 + nvidia 1.0-6106 box, openGL stuff leaks a lot.  
What I've noticed is that the memory seems to be freed if I
kill the X server so maybe it isn't being totally leaked.

NVidia says:

Q: OpenGL applications leak significant amounts of memory on my system!

A: If your kernel is making use of the -rmap VM, the system may be leaking
   memory due to a memory management optimization introduced in -rmap14a.
   The -rmap VM has been adopted by several popular distributions, the
   memory leak is known to be present in some of the distribution kernels;
   it has been fixed in -rmap15e.

   If you suspect that your system is affected, please try upgrading your
   kernel or contact the distribution's vendor for assistance.

I don't quite know how to divine the right info out of slabinfo;
I've attached it below.

Is this in fact an rmap problem?  Should I be pestering nvidia 
instead?



thanks
john


slabinfo - version: 2.0
# name            <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <batchcount> <limit> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
fib6_nodes             5    119     32  119    1 : tunables  120   60    0 : slabdata      1      1      0
ip6_dst_cache          5     15    256   15    1 : tunables  120   60    0 : slabdata      1      1      0
ndisc_cache            1     15    256   15    1 : tunables  120   60    0 : slabdata      1      1      0
raw6_sock              0      0    640    6    1 : tunables   54   27    0 : slabdata      0      0      0
udp6_sock              0      0    640    6    1 : tunables   54   27    0 : slabdata      0      0      0
tcp6_sock              4      7   1152    7    2 : tunables   24   12    0 : slabdata      1      1      0
nfs_write_data        36     42    512    7    1 : tunables   54   27    0 : slabdata      6      6      0
nfs_read_data         32     35    512    7    1 : tunables   54   27    0 : slabdata      5      5      0
nfs_inode_cache        5     24    640    6    1 : tunables   54   27    0 : slabdata      4      4      0
nfs_page               0      0    128   31    1 : tunables  120   60    0 : slabdata      0      0      0
rpc_buffers            8      8   2048    2    1 : tunables   24   12    0 : slabdata      4      4      0
rpc_tasks              8     15    256   15    1 : tunables  120   60    0 : slabdata      1      1      0
rpc_inode_cache        8     14    512    7    1 : tunables   54   27    0 : slabdata      2      2      0
dm_tio                 0      0     16  226    1 : tunables  120   60    0 : slabdata      0      0      0
dm_io                  0      0     16  226    1 : tunables  120   60    0 : slabdata      0      0      0
unix_sock            177    180    384   10    1 : tunables   54   27    0 : slabdata     18     18      0
tcp_tw_bucket          0      0    128   31    1 : tunables  120   60    0 : slabdata      0      0      0
tcp_bind_bucket       18    226     16  226    1 : tunables  120   60    0 : slabdata      1      1      0
tcp_open_request       0      0    128   31    1 : tunables  120   60    0 : slabdata      0      0      0
inet_peer_cache       16    183     64   61    1 : tunables  120   60    0 : slabdata      3      3      0
secpath_cache          0      0    128   31    1 : tunables  120   60    0 : slabdata      0      0      0
xfrm_dst_cache         0      0    256   15    1 : tunables  120   60    0 : slabdata      0      0      0
ip_fib_hash            9    226     16  226    1 : tunables  120   60    0 : slabdata      1      1      0
ip_dst_cache          86     90    256   15    1 : tunables  120   60    0 : slabdata      6      6      0
arp_cache              2     31    128   31    1 : tunables  120   60    0 : slabdata      1      1      0
raw4_sock              0      0    512    7    1 : tunables   54   27    0 : slabdata      0      0      0
udp_sock               6      7    512    7    1 : tunables   54   27    0 : slabdata      1      1      0
tcp_sock              25     28   1024    4    1 : tunables   54   27    0 : slabdata      7      7      0
flow_cache             0      0    128   31    1 : tunables  120   60    0 : slabdata      0      0      0
xfs_acl                0      0    304   13    1 : tunables   54   27    0 : slabdata      0      0      0
xfs_chashlist       4794   6290     20  185    1 : tunables  120   60    0 : slabdata     34     34      0
xfs_ili              146   1176    140   28    1 : tunables  120   60    0 : slabdata     42     42      0
xfs_ifork              0      0     56   70    1 : tunables  120   60    0 : slabdata      0      0      0
xfs_efi_item           0      0    260   15    1 : tunables   54   27    0 : slabdata      0      0      0
xfs_efd_item           0      0    260   15    1 : tunables   54   27    0 : slabdata      0      0      0
xfs_buf_item           3     27    148   27    1 : tunables  120   60    0 : slabdata      1      1      0
xfs_dabuf              8    226     16  226    1 : tunables  120   60    0 : slabdata      1      1      0
xfs_da_state           0      0    336   12    1 : tunables   54   27    0 : slabdata      0      0      0
xfs_trans              0      0    592   13    2 : tunables   54   27    0 : slabdata      0      0      0
xfs_inode          69849 129151    352   11    1 : tunables   54   27    0 : slabdata  11741  11741      0
xfs_btree_cur          1     30    132   30    1 : tunables  120   60    0 : slabdata      1      1      0
xfs_bmap_free_item      0      0     12  290    1 : tunables  120   60    0 : slabdata      0      0      0
xfs_buf_t             15     30    256   15    1 : tunables  120   60    0 : slabdata      2      2      0
linvfs_icache      69849 124760    384   10    1 : tunables   54   27    0 : slabdata  12476  12476      0
devfsd_event           0      0     20  185    1 : tunables  120   60    0 : slabdata      0      0      0
ext2_inode_cache       0      0    512    7    1 : tunables   54   27    0 : slabdata      0      0      0
ext2_xattr             0      0     44   88    1 : tunables  120   60    0 : slabdata      0      0      0
journal_handle        16    135     28  135    1 : tunables  120   60    0 : slabdata      1      1      0
journal_head          16     81     48   81    1 : tunables  120   60    0 : slabdata      1      1      0
revoke_table           6    290     12  290    1 : tunables  120   60    0 : slabdata      1      1      0
revoke_record          0      0     16  226    1 : tunables  120   60    0 : slabdata      0      0      0
ext3_inode_cache   14466  22869    512    7    1 : tunables   54   27    0 : slabdata   3267   3267      0
ext3_xattr             0      0     44   88    1 : tunables  120   60    0 : slabdata      0      0      0
eventpoll_pwq          0      0     36  107    1 : tunables  120   60    0 : slabdata      0      0      0
eventpoll_epi          0      0    128   31    1 : tunables  120   60    0 : slabdata      0      0      0
kioctx                 0      0    256   15    1 : tunables  120   60    0 : slabdata      0      0      0
kiocb                  0      0    256   15    1 : tunables  120   60    0 : slabdata      0      0      0
dnotify_cache          0      0     20  185    1 : tunables  120   60    0 : slabdata      0      0      0
file_lock_cache        4     43     92   43    1 : tunables  120   60    0 : slabdata      1      1      0
fasync_cache           2    226     16  226    1 : tunables  120   60    0 : slabdata      1      1      0
shmem_inode_cache     30     30    384   10    1 : tunables   54   27    0 : slabdata      3      3      0
posix_timers_cache      0      0     80   49    1 : tunables  120   60    0 : slabdata      0      0      0
uid_cache              5    119     32  119    1 : tunables  120   60    0 : slabdata      1      1      0
cfq_pool              64    119     32  119    1 : tunables  120   60    0 : slabdata      1      1      0
crq_pool               0      0     36  107    1 : tunables  120   60    0 : slabdata      0      0      0
deadline_drq           0      0     48   81    1 : tunables  120   60    0 : slabdata      0      0      0
as_arq                16     65     60   65    1 : tunables  120   60    0 : slabdata      1      1      0
blkdev_ioc            88    185     20  185    1 : tunables  120   60    0 : slabdata      1      1      0
blkdev_queue           3      9    448    9    1 : tunables   54   27    0 : slabdata      1      1      0
blkdev_requests       15     26    152   26    1 : tunables  120   60    0 : slabdata      1      1      0
biovec-(256)         256    256   3072    2    2 : tunables   24   12    0 : slabdata    128    128      0
biovec-128           256    260   1536    5    2 : tunables   24   12    0 : slabdata     52     52      0
biovec-64            256    260    768    5    1 : tunables   54   27    0 : slabdata     52     52      0
biovec-16            263    270    256   15    1 : tunables  120   60    0 : slabdata     18     18      0
biovec-4             258    305     64   61    1 : tunables  120   60    0 : slabdata      5      5      0
biovec-1             256    452     16  226    1 : tunables  120   60    0 : slabdata      2      2      0
bio                  269    366     64   61    1 : tunables  120   60    0 : slabdata      6      6      0
sock_inode_cache     218    230    384   10    1 : tunables   54   27    0 : slabdata     23     23      0
skbuff_head_cache    150    360    256   15    1 : tunables  120   60    0 : slabdata     24     24      0
sock                   2     10    384   10    1 : tunables   54   27    0 : slabdata      1      1      0
proc_inode_cache      25     50    384   10    1 : tunables   54   27    0 : slabdata      5      5      0
sigqueue              16     27    144   27    1 : tunables  120   60    0 : slabdata      1      1      0
radix_tree_node     4492   5082    276   14    1 : tunables   54   27    0 : slabdata    363    363      0
bdev_cache             7      7    512    7    1 : tunables   54   27    0 : slabdata      1      1      0
mnt_cache             18     61     64   61    1 : tunables  120   60    0 : slabdata      1      1      0
inode_cache         3133   3140    384   10    1 : tunables   54   27    0 : slabdata    314    314      0
dentry_cache       44391 136674    148   27    1 : tunables  120   60    0 : slabdata   5062   5062      0
filp                1867   1935    256   15    1 : tunables  120   60    0 : slabdata    129    129      0
names_cache            5      5   4096    1    1 : tunables   24   12    0 : slabdata      5      5      0
idr_layer_cache       44     58    136   29    1 : tunables  120   60    0 : slabdata      2      2      0
buffer_head        10600  12393     48   81    1 : tunables  120   60    0 : slabdata    153    153      0
mm_struct             57     63    512    7    1 : tunables   54   27    0 : slabdata      9      9      0
vm_area_struct      3556   3760     84   47    1 : tunables  120   60    0 : slabdata     80     80      0
fs_cache              56    119     32  119    1 : tunables  120   60    0 : slabdata      1      1      0
files_cache           57     63    512    7    1 : tunables   54   27    0 : slabdata      9      9      0
signal_cache          75     93    128   31    1 : tunables  120   60    0 : slabdata      3      3      0
sighand_cache         73     85   1408    5    2 : tunables   24   12    0 : slabdata     17     17      0
task_struct           97    105   1408    5    2 : tunables   24   12    0 : slabdata     21     21      0
anon_vma            1922   2442      8  407    1 : tunables  120   60    0 : slabdata      6      6      0
pgd                   57     57   4096    1    1 : tunables   24   12    0 : slabdata     57     57      0
size-131072(DMA)       0      0 131072    1   32 : tunables    8    4    0 : slabdata      0      0      0
size-131072            0      0 131072    1   32 : tunables    8    4    0 : slabdata      0      0      0
size-65536(DMA)        0      0  65536    1   16 : tunables    8    4    0 : slabdata      0      0      0
size-65536             2      2  65536    1   16 : tunables    8    4    0 : slabdata      2      2      0
size-32768(DMA)        0      0  32768    1    8 : tunables    8    4    0 : slabdata      0      0      0
size-32768            11     11  32768    1    8 : tunables    8    4    0 : slabdata     11     11      0
size-16384(DMA)        0      0  16384    1    4 : tunables    8    4    0 : slabdata      0      0      0
size-16384             5      5  16384    1    4 : tunables    8    4    0 : slabdata      5      5      0
size-8192(DMA)         0      0   8192    1    2 : tunables    8    4    0 : slabdata      0      0      0
size-8192            113    114   8192    1    2 : tunables    8    4    0 : slabdata    113    114      0
size-4096(DMA)         0      0   4096    1    1 : tunables   24   12    0 : slabdata      0      0      0
size-4096             39     39   4096    1    1 : tunables   24   12    0 : slabdata     39     39      0
size-2048(DMA)         0      0   2048    2    1 : tunables   24   12    0 : slabdata      0      0      0
size-2048             66     66   2048    2    1 : tunables   24   12    0 : slabdata     33     33      0
size-1024(DMA)         0      0   1024    4    1 : tunables   54   27    0 : slabdata      0      0      0
size-1024             84     84   1024    4    1 : tunables   54   27    0 : slabdata     21     21      0
size-512(DMA)          0      0    512    8    1 : tunables   54   27    0 : slabdata      0      0      0
size-512             214    576    512    8    1 : tunables   54   27    0 : slabdata     72     72      0
size-256(DMA)          0      0    256   15    1 : tunables  120   60    0 : slabdata      0      0      0
size-256            1035   1035    256   15    1 : tunables  120   60    0 : slabdata     69     69      0
size-128(DMA)          0      0    128   31    1 : tunables  120   60    0 : slabdata      0      0      0
size-128            3565   3565    128   31    1 : tunables  120   60    0 : slabdata    115    115      0
size-64(DMA)           0      0     64   61    1 : tunables  120   60    0 : slabdata      0      0      0
size-64             3044   4148     64   61    1 : tunables  120   60    0 : slabdata     68     68      0
size-32(DMA)           0      0     32  119    1 : tunables  120   60    0 : slabdata      0      0      0
size-32             1070   1309     32  119    1 : tunables  120   60    0 : slabdata     11     11      0
kmem_cache           155    155    128   31    1 : tunables  120   60    0 : slabdata      5      5      0


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: nvidia and rmap (again)
  2004-07-22 17:54 John Bucy
@ 2004-07-22 18:08 ` Dave Jones
  0 siblings, 0 replies; 3+ messages in thread
From: Dave Jones @ 2004-07-22 18:08 UTC (permalink / raw)
  To: John Bucy; +Cc: linux-kernel

On Thu, Jul 22, 2004 at 01:54:16PM -0400, John Bucy wrote:
 
 > Is this in fact an rmap problem?  Should I be pestering nvidia 
 > instead?

no, and yes.

		Dave

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: nvidia and rmap (again)
@ 2004-07-22 21:00 Manfred Spraul
  0 siblings, 0 replies; 3+ messages in thread
From: Manfred Spraul @ 2004-07-22 21:00 UTC (permalink / raw)
  To: John Bucy; +Cc: linux-kernel

John wrote:

>I don't quite know how to divine the right info out of slabinfo;
>I've attached it below.
>
If you search for a leak then you'd have to check the first number in 
each row: the number of active objects. Just look at the first row: it 
documents the fields in the following rows.
If a number is huge and constantly increasing, then there is would be a 
leak. Typically the inode, dentry and buffer_head caches are large, the 
rest are small.
But: slab manages only small objects. I assume that nvidia allocates 
pages with alloc_pages() and then plays with the page flags. This is the 
layer below slab, you must look at /proc/meminfo to detect leaks.

--
    Manfred


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-07-22 20:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-22 21:00 nvidia and rmap (again) Manfred Spraul
  -- strict thread matches above, loose matches on Subject: below --
2004-07-22 17:54 John Bucy
2004-07-22 18:08 ` Dave Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox