On Wed, Nov 15, 2006 at 08:54:44AM -0800, Christoph Lameter wrote: > On Wed, 15 Nov 2006, Wu Fengguang wrote: > > > Collect info about the global available memory and its consumption speed. > > The data are used by the stateful method to estimate the thrashing > > threshold. > > Looks like you should use a ZVC counter for total scanned. See > include/linux/mmzone.h.
OK. By using zone.total_scanned, I have chose an easy way :) To do the general vm timing in something like zone.vm_stat[NR_SCAN_INACTIVE], a set of new functions will be required: global_page_state_raw() zone_page_state_raw() node_page_state_raw() They do not check overflows, so that we can do time_elapsed = new_raw_value - old_raw_value; However, before introducing the ugly *_raw() functions, I'd like to know if #ifdef CONFIG_SMP if (x < 0) x = 0; #endif really helps some big NUMA system. I suspect object counters like NR_FILE_PAGES will _never_ overflow, and an accumulated counter like NR_VMSCAN_WRITE is expected to overflow. In either case, it is ok to return an unsigned long raw counter. Regards, Wu - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/