On Fri, 12 Feb 2010 10:49:45 +0200 "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx> wrote: > On Fri, Feb 12, 2010 at 10:19 AM, KAMEZAWA Hiroyuki > <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote: > > On Fri, 12 Feb 2010 10:07:25 +0200 > > "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx> wrote: > > > >> On Fri, Feb 12, 2010 at 8:48 AM, KAMEZAWA Hiroyuki > >> <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote: > >> > Memcg has 2 eventcountes which counts "the same" event. Just usages are > >> > different from each other. This patch tries to reduce event counter. > >> > > >> > This patch's logic uses "only increment, no reset" new_counter and masks for each > >> > checks. Softlimit chesk was done per 1000 events. So, the similar check > >> > can be done by !(new_counter & 0x3ff). Threshold check was done per 100 > >> > events. So, the similar check can be done by (!new_counter & 0x7f) > >> > >> IIUC, with this change we have to check counter after each update, > >> since we check > >> for exact value. > > > > Yes. > >> So we have to move checks to mem_cgroup_charge_statistics() or > >> call them after each statistics charging. I'm not sure how it affects > >> performance. > >> > > > > My patch 1/2 does it. > > > > But hmm, move-task does counter updates in asynchronous manner. Then, there are > > bug. I'll add check in the next version. > > > > Maybe calling update_tree and threshold_check at the end of mova_task is > > better. Does thresholds user take care of batched-move manner in task_move ? > > Should we check one by one ? > > No. mem_cgroup_threshold() at mem_cgroup_move_task() is enough. > > But... Is task moving a critical path? If no, It's, probably, cleaner to check > everything at mem_cgroup_charge_statistics(). > The trouble is charge_statistics() is called under lock_page_cgroup() and I don't want to call something heavy under it. (And I'm not very sure calling charge_statitics it without lock-page-cgroup is dangerous or not. (I think it has some race.) But if there is race, it's very difficult one. So, I leave it as it is.) Maybe, my next one will be enough simple one. Thank you for review. Regards, -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/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>