execv()系统调用中一段代码的含义
在execve()系统调用的源代码中 有一段代码如下:execv()系统调用中一段代码的含义,c,linux,linux-kernel,C,Linux,Linux Kernel,在execve()系统调用的源代码中 有一段代码如下: #ifdef SPLIT_RSS_COUNTING add_mm_counter(mm, MM_ANONPAGES, diff); #else spin_lock(&mm->page_table_lock); add_mm_counter(mm, MM_ANONPAGES, diff); spin_unlock(&mm->page_table_lock); #endif 您能解释一下它的含义吗
#ifdef SPLIT_RSS_COUNTING
add_mm_counter(mm, MM_ANONPAGES, diff);
#else
spin_lock(&mm->page_table_lock);
add_mm_counter(mm, MM_ANONPAGES, diff);
spin_unlock(&mm->page_table_lock);
#endif
您能解释一下它的含义吗?当用户控制的
配置剥离锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定锁定。无需深入研究,这意味着用户可以控制内核需要多少CPU来锁定记帐。这种配置对于ARM和PARISC CPU来说似乎是独一无二的
当定义了SPLIT\u RSS\u COUNTING
时,需要保护add\u mm\u计数器
不受并发访问,因此使用mm->page\u table\u lock
锁使用自旋锁对其进行保护
自旋锁是同步多个CPU的最基本方式。当输入旋转锁且锁已由其他CPU持有时,当前CPU将进入循环,检查锁标志的值。当标志值变为非锁定时,当前CPU将获取锁并从spin_lock
功能返回