*参照元 [#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]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS