thinkpads.com Support Community Forum Index Bill Morrow's thinkpads.com Open Forum - The Original Thinkpad Support Forum
Follow ThinkpadsForum on Twitter
 Support this forum, shop at newmodeus.com
 Support the forum, shop at newmodeus.com
 The thinkpads support forum is now hosting legacy model ThinkPad driver and driver updates..
A link is provided in the MENUBAR just above for registered forum members only..

If you so wish:
Donate using PayPal

It is currently Tue Oct 21, 2014 3:45 am

All times are UTC - 5 hours




Post new topic Reply to topic  [ 1 post ] 
Author Message
PostPosted: Mon Jan 25, 2010 1:14 pm 
Offline

Joined: Fri Jan 22, 2010 12:24 pm
Posts: 1
Location: Easton, PA
I finally pinpointed the TrackPoint driver on my R61i as the cause of the consistent network failures (requiring reboot) and sometimes crashes that have plagued it since I got it 18 months ago, and I'm pretty sure the problem also exists on the numerous other models that use this driver. I believe I've located the memory leak narrowly enough that it should be easy for the driver programmers to fix: Kernel memory is allocated in 200-byte blocks at a time when tapping or holding the TrackPoint center button, but it is never freed. Full details follow.

Does anyone know how I can best raise this issue to the attention of the Lenovo driver programmers/engineers, who could then fix the bug and release a new version that won't cause crashes? I notice that Mark@Lenovo eventually responded to a similar thread about a resource leak here:

Power Manager consuming Handles? Leak?

My specs:

Model: ThinkPad R61i 7650-DHU
OS: Windows XP Professional SP 3 (32-bit)

The latest TrackPoint driver (version 4.69) for a number of R, T, X, and Z ThinkPad models running 32-bit Windows 7, Vista, or XP has a consistent memory leak that eventually causes all network connections to fail and sometimes causes Windows to crash. The support page describing this driver (but without any mention of this problem, even though my ThinkPad has had the problem since at least June 2008) is here:

TrackPoint Driver for Windows 7 (32-bit), Vista (32-bit) and XP - ThinkPad

Whenever holding the center button to use either the scrolling or magnifying glass features, the trackpoint driver (tp4track.sys) allocates 200 bytes of non-paged kernel memory at a time, doing 50-100 such allocations (10-20 kB) per second of scrolling or moving the magnifying glass. However, it never frees any of this non-paged kernel memory, because Poolmon (Microsoft's Memory Pool Monitor) always shows only 3 frees regardless of how long Windows has been running. Here's an example after using the scrolling feature for just a handful of seconds:

Code:
 Tag  Type     Allocs            Frees            Diff   Bytes       Per Alloc

 Tp4T Nonp       2657 (   0)         3 (   0)     2654  485288 (     0)    182


After using the scroll feature regularly over a period of time, the non-paged kernel memory pool (which is limited to 256 MB in XP) runs out, so other drivers like the networking stack get stuck when they can't allocate memory, leading to network failures and sometimes crashes. The only option at that point is to *try* to save whatever work is open in programs (they often don't run reliably by then) and reboot. This situation is unacceptable when important work has to be done.

The only workaround to prevent kernel failures is to avoid using the center button scrolling (or magnifying glass) feature, but scrolling without it is cumbersome and a lot slower. The memory leak in this driver needs to be fixed.

As further confirmation of this memory leak, I found this report about the problem from January as item 914 of this Japanese page (Google translation is a bit rough, but the meaning is clear):

http://unkar.jp/read/pc11.2ch.net/notepc/1226594699

Quote:
PS / 2 Track Point
Version: 4.64.0.0

C: \ WINDOWS \ system32 \ DRIVERS \ tp4track.sys
File Version: 4.64

How to reproduce ....
Something middle button features (such as scrolling or larger) to set up
Use the middle button function.

Workaround is to ......
Button functions in the "off (Windows standard)" is set to not leak memory.

Amount of memory leak ...........
=> 200bytes in one button click
Middle button + drag => N x 200bytes (N is dependent on the amount of drag & drop.)
Scroll one screen at one time within about 20k ~ 100kbytes.

"Poolmon.exe (Windows Support Tools included)" to check the status of a memory leak ...
Windows after startup:
Pool N: 114804K P: 113716
Tag Type Allocs Frees Diff Bytes Per Alloc
Tp4T Nonp 231152 (0) 3 (0) 231149 46235976 (0) 200

Currently:
Pool N: 176212K P: 127556
Tag Type Allocs Frees Diff Bytes Per Alloc
Tp4T Nonp 532056 (0) 3 (0) 532053 106416776 (0) 200

How do I find memory leaks is easier .... I ?Ranee ?Nante poolmon.exe ?
Task Manager => "Performance" tab => Kernel Memory (KB) => non-paged
Compared with the value immediately after starting Windows.
Tens of thousands (hundreds of MB) to increase the value if the possibility of memory leaks that are "large".


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC - 5 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group