On Wed, 13 Apr 2011 17:47:01 -0700 (PDT) David Rientjes <rientjes@xxxxxxxxxx> wrote: > On Thu, 14 Apr 2011, KAMEZAWA Hiroyuki wrote: > > > > I'm wondering if we can just modify count_vm_event() directly for > > > CONFIG_CGROUP_MEM_RES_CTLR so that we automatically track all vmstat items > > > (those in enum vm_event_item) for each memcg. We could add an array of > > > NR_VM_EVENT_ITEMS into each struct mem_cgroup to be incremented on > > > count_vm_event() for current's memcg. > > > > > > If that's done, we wouldn't have to add additional calls for every vmstat > > > item we want to duplicate from the global counters. > > > > > > > Maybe we do that finally. > > > > For now, IIUC, over 50% of VM_EVENTS are needless for memcg (ex. per zone stats) > > and this array consumes large size of percpu area. I think we need to select > > events carefully even if we do that. And current memcg's percpu stat is mixture > > of vm_events and vm_stat. We may need to sort out them and re-design it. > > My concern is that I'm not sure we have enough percpu area for vmstat+vmevents > > for 1000+ memcg, and it's allowed even if we can do. > > > > What I proposed above was adding an array directly into struct mem_cgroup > so that we don't collect the stats percpu, they are incremented directly > in the mem_cgroup. Perhaps if we separated enum vm_event_item out into > two separate arrays (those useful only globally and those useful for both > global and memcg), then this would be simple. > > Something like > > enum vm_event_item { > PGPGIN, > PGPGOUT, > PSWPIN, > PSWPOUT, > ... > NR_VM_EVENT_ITEMS, > }; > > enum vm_global_event_item { > KSWAPD_STEAL = NR_VM_EVENT_ITEMS, > KSWAPD_INODESTEAL, > ... > }; > > and then in count_vm_event(), check > > if (item < NR_VM_EVENT_ITEMS) { > memcg_add_vm_event(mem, item, count); > } > > I don't think we need to be concerned about reordering the global > /proc/vmstat to fit this purpose. > Hmm, ok. will try that. Thanks, -Kame -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>