X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Tue, 9 Jun 2009 11:49:17 +0200 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: [1.7] Cannot read /proc/stat Message-ID: <20090609094917.GC25832@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <4A2D3C62 DOT 40408 AT users DOT sourceforge DOT net> <20090608171454 DOT GA25642 AT calimero DOT vinschen DOT de> <4A2D4F87 DOT 1090407 AT users DOT sourceforge DOT net> <20090609083115 DOT GB25832 AT calimero DOT vinschen DOT de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090609083115.GB25832@calimero.vinschen.de> User-Agent: Mutt/1.5.19 (2009-02-20) Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Jun 9 10:31, Corinna Vinschen wrote: > On Jun 8 12:51, Yaakov S wrote: > > On 08/06/2009 12:14, Corinna Vinschen wrote: > >> Confirmed. The reason is that a datastructure on the NT level has > >> another size on 64 bit systems, and the WOW64 layer doesn't translate > >> the structure into the 32 bit format. The function is unsupported, so > >> that makes sort of sense. I'll create another solution using the > >> official function for to fetch that information. Unfortunaltey it > >> doesn't exist on NT4, so I have to sp3cial case that(*) > > > > Thanks. > > This is fixed in -49. Note, however, that not all information in > /proc/stat is available on 64 bit machines. Some of the information > printed in /proc/stat, namely the swap_in/swap_out pages, require access > to the SystemPerformanceInformation category in a call to > NtQuerySystemInformation. The structure returned by this call is also > different on 64 bit systems, even when running under WOW64. The > SYSTEM_PERFORMANCE_INFORMATION structure was already undocumented on 32 > bit systems, and on 64 bit systems it's even more undocumented, if > that's possible :) Unfortunately, to date there's no official > replacement function which provides the page read/write count. So, on > 64 bit systems, this information is set to 0 in /proc/stat. I just examined the structure content by 32 bit and 64 bit systems and it looks like the structure is actually the same, just with 16 extra trailing bytes. /proc/stat is now fetching the info with the buffer size big enough for 64 bit systems, so the information is available again. Hopefully. I did a close examination of both struct contents and I'm pretty sure this is ok. I'm just not 100% sure... Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/