*参照元 [#de08ebab] #backlinks *説明 [#ue7cc603] -パス: 複数あり --CONFIG_SMP 有効: [[linux-4.4.1/mm/vmstat.c]] --CONFIG_SMP 無効: [[linux-4.4.1/include/linux/vmstat.h]] --[[linux-4.4.1/CONFIG_SMP]] -FIXME: これは何? --説明 **引数 [#yc94b9fb] -struct zone *zone -- --[[linux-4.4.1/zone]] -enum zone_stat_item item -- --[[linux-4.4.1/zone_stat_item]] -long delta -- **返り値 [#c6bfde61] -void **参考 [#n86d9604] *実装 [#cdeb543d] **CONFIG_SMP 有効: linux-4.4.1/mm/vmstat.c [#zc637581] /* * For use when we know that interrupts are disabled, * or when we know that preemption is disabled and that * particular counter cannot be updated from interrupt context. */ void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item, long delta) { struct per_cpu_pageset __percpu *pcp = zone->pageset; s8 __percpu *p = pcp->vm_stat_diff + item; long x; long t; - --[[linux-4.4.1/per_cpu_pageset]] --[[linux-4.4.1/__percpu]] x = delta + __this_cpu_read(*p); t = __this_cpu_read(pcp->stat_threshold); - --[[linux-4.4.1/__this_cpu_read()]] if (unlikely(x > t || x < -t)) { zone_page_state_add(x, zone, item); x = 0; } __this_cpu_write(*p, x); - --[[linux-4.4.1/unlikely()]] --[[linux-4.4.1/zone_page_state_add()]] --[[linux-4.4.1/__this_cpu_write()]] } EXPORT_SYMBOL(__mod_zone_page_state); -ライセンスに関係なくシンボルを公開する。 --[[linux-4.4.1/EXPORT_SYMBOL()]] **CONFIG_SMP 無効: linux-4.4.1/include/linux/vmstat.h [#n036125b] /* * We do not maintain differentials in a single processor configuration. * The functions directly modify the zone and global counters. */ static inline void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item, long delta) { zone_page_state_add(delta, zone, item); - --[[linux-4.4.1/zone_page_state_add()]] } *コメント [#o278c751]