您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ softirq_count函数代码示例

51自学网 2021-06-03 08:06:44
  C++
这篇教程C++ softirq_count函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中softirq_count函数的典型用法代码示例。如果您正苦于以下问题:C++ softirq_count函数的具体用法?C++ softirq_count怎么用?C++ softirq_count使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了softirq_count函数的16个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: local_bh_enable

void local_bh_enable(void){#ifdef CONFIG_TRACE_IRQFLAGS	unsigned long flags;	WARN_ON_ONCE(in_irq());#endif	WARN_ON_ONCE(irqs_disabled());#ifdef CONFIG_TRACE_IRQFLAGS	local_irq_save(flags);#endif	/*	 * Are softirqs going to be turned on now:	 */	if (softirq_count() == SOFTIRQ_OFFSET)		trace_softirqs_on((unsigned long)__builtin_return_address(0));	/*	 * Keep preemption disabled until we are done with	 * softirq processing: 	 */ 	sub_preempt_count(SOFTIRQ_OFFSET - 1);	if (unlikely(!in_interrupt() && local_softirq_pending()))		do_softirq();	dec_preempt_count();#ifdef CONFIG_TRACE_IRQFLAGS	local_irq_restore(flags);#endif	preempt_check_resched();}
开发者ID:WiseMan787,项目名称:ralink_sdk,代码行数:32,


示例2: __local_bh_enable_ip

void __local_bh_enable_ip(unsigned long ip, unsigned int cnt){	WARN_ON_ONCE(in_irq() || irqs_disabled());#ifdef CONFIG_TRACE_IRQFLAGS	local_irq_disable();#endif	/*	 * Are softirqs going to be turned on now:	 */	if (softirq_count() == SOFTIRQ_DISABLE_OFFSET)		trace_softirqs_on(ip);	/*	 * Keep preemption disabled until we are done with	 * softirq processing:	 */	preempt_count_sub(cnt - 1);	if (unlikely(!in_interrupt() && local_softirq_pending())) {		/*		 * Run softirq if any pending. And do it in its own stack		 * as we may be calling this deep in a task call stack already.		 */		do_softirq();	}	preempt_count_dec();#ifdef CONFIG_TRACE_IRQFLAGS	local_irq_enable();#endif	preempt_check_resched();}
开发者ID:SutterCain,项目名称:linux-misc,代码行数:31,


示例3: ramster_check_irq_counts

/* leave me here to see if it catches a weird crash */static void ramster_check_irq_counts(void){	static int last_hardirq_cnt, last_softirq_cnt, last_preempt_cnt;	int cur_hardirq_cnt, cur_softirq_cnt, cur_preempt_cnt;	cur_hardirq_cnt = hardirq_count() >> HARDIRQ_SHIFT;	if (cur_hardirq_cnt > last_hardirq_cnt) {		last_hardirq_cnt = cur_hardirq_cnt;		if (!(last_hardirq_cnt&(last_hardirq_cnt-1)))			pr_err("RAMSTER TESTING RRP hardirq_count=%d/n",				last_hardirq_cnt);	}	cur_softirq_cnt = softirq_count() >> SOFTIRQ_SHIFT;	if (cur_softirq_cnt > last_softirq_cnt) {		last_softirq_cnt = cur_softirq_cnt;		if (!(last_softirq_cnt&(last_softirq_cnt-1)))			pr_err("RAMSTER TESTING RRP softirq_count=%d/n",				last_softirq_cnt);	}	cur_preempt_cnt = preempt_count() & PREEMPT_MASK;	if (cur_preempt_cnt > last_preempt_cnt) {		last_preempt_cnt = cur_preempt_cnt;		if (!(last_preempt_cnt&(last_preempt_cnt-1)))			pr_err("RAMSTER TESTING RRP preempt_count=%d/n",				last_preempt_cnt);	}}
开发者ID:0xroot,项目名称:Blackphone-BP1-Kernel,代码行数:28,


示例4: __local_bh_disable_ip

void __local_bh_disable_ip(unsigned long ip, unsigned int cnt){	unsigned long flags;	WARN_ON_ONCE(in_irq());	raw_local_irq_save(flags);	/*	 * The preempt tracer hooks into preempt_count_add and will break	 * lockdep because it calls back into lockdep after SOFTIRQ_OFFSET	 * is set and before current->softirq_enabled is cleared.	 * We must manually increment preempt_count here and manually	 * call the trace_preempt_off later.	 */	__preempt_count_add(cnt);	/*	 * Were softirqs turned off above:	 */	if (softirq_count() == (cnt & SOFTIRQ_MASK))		trace_softirqs_off(ip);	raw_local_irq_restore(flags);	if (preempt_count() == cnt) {#ifdef CONFIG_DEBUG_PREEMPT		current->preempt_disable_ip = get_lock_parent_ip();#endif		trace_preempt_off(CALLER_ADDR0, get_lock_parent_ip());	}}
开发者ID:h4ck3rm1k3,项目名称:linux,代码行数:29,


示例5: dotest

static void dotest(void (*testcase_fn)(void), int expected, int lockclass_mask){	unsigned long saved_preempt_count = preempt_count();	int expected_failure = 0;#if defined(CONFIG_DEBUG_PREEMPT) && defined(CONFIG_DEBUG_RT_MUTEXES)        int saved_lock_count = current->lock_count;#endif	WARN_ON(irqs_disabled());	testcase_fn();	/*	 * Filter out expected failures:	 */#ifndef CONFIG_PROVE_LOCKING	if ((lockclass_mask & LOCKTYPE_SPIN) && debug_locks != expected)		expected_failure = 1;	if ((lockclass_mask & LOCKTYPE_RWLOCK) && debug_locks != expected)		expected_failure = 1;	if ((lockclass_mask & LOCKTYPE_MUTEX) && debug_locks != expected)		expected_failure = 1;	if ((lockclass_mask & LOCKTYPE_RWSEM) && debug_locks != expected)		expected_failure = 1;#endif	if (debug_locks != expected) {		if (expected_failure) {			expected_testcase_failures++;			printk("failed|");		} else {			unexpected_testcase_failures++;			printk("FAILED|");			dump_stack();		}	} else {		testcase_successes++;		printk("  ok  |");	}	testcase_total++;	if (debug_locks_verbose)		printk(" lockclass mask: %x, debug_locks: %d, expected: %d/n",			lockclass_mask, debug_locks, expected);	/*	 * Some tests (e.g. double-unlock) might corrupt the preemption	 * count, so restore it:	 */	preempt_count() = saved_preempt_count;#ifdef CONFIG_TRACE_IRQFLAGS	if (softirq_count())		current->softirqs_enabled = 0;	else		current->softirqs_enabled = 1;#endif	reset_locks();#if defined(CONFIG_DEBUG_PREEMPT) && defined(CONFIG_DEBUG_RT_MUTEXES)        current->lock_count = saved_lock_count;#endif}
开发者ID:mrtos,项目名称:Logitech-Revue,代码行数:60,


示例6: _local_bh_enable_ip

static inline void _local_bh_enable_ip(unsigned long ip){	WARN_ON_ONCE(in_irq() || irqs_disabled());#ifdef CONFIG_TRACE_IRQFLAGS	local_irq_disable();#endif	/*	 * Are softirqs going to be turned on now:	 */	if (softirq_count() == SOFTIRQ_DISABLE_OFFSET)		trace_softirqs_on(ip);	/*	 * Keep preemption disabled until we are done with	 * softirq processing: 	 */	sub_preempt_count(SOFTIRQ_DISABLE_OFFSET - 1);	if (unlikely(!in_interrupt() && local_softirq_pending()))		do_softirq();	dec_preempt_count();#ifdef CONFIG_TRACE_IRQFLAGS	local_irq_enable();#endif	preempt_check_resched();}
开发者ID:adyjl,项目名称:DORIMANX_LG_STOCK_LP_KERNEL,代码行数:26,


示例7: __local_bh_disable

static void __local_bh_disable(unsigned long ip, unsigned int cnt){	unsigned long flags;	WARN_ON_ONCE(in_irq());	raw_local_irq_save(flags);	/*	 * The preempt tracer hooks into add_preempt_count and will break	 * lockdep because it calls back into lockdep after SOFTIRQ_OFFSET	 * is set and before current->softirq_enabled is cleared.	 * We must manually increment preempt_count here and manually	 * call the trace_preempt_off later.	 */	add_preempt_count_notrace(cnt);	/*	 * Were softirqs turned off above:	 */	if (softirq_count() == cnt)		trace_softirqs_off(ip);	raw_local_irq_restore(flags);	if (preempt_count() == cnt)		trace_preempt_off(CALLER_ADDR0, get_parent_ip(CALLER_ADDR1));}
开发者ID:adyjl,项目名称:DORIMANX_LG_STOCK_LP_KERNEL,代码行数:25,


示例8: __local_bh_enable

static void __local_bh_enable(unsigned int cnt){	WARN_ON_ONCE(!irqs_disabled());	if (softirq_count() == (cnt & SOFTIRQ_MASK))		trace_softirqs_on(_RET_IP_);	preempt_count_sub(cnt);}
开发者ID:SutterCain,项目名称:linux-misc,代码行数:8,


示例9: _local_bh_enable

/* * Special-case - softirqs can safely be enabled in * cond_resched_softirq(), or by __do_softirq(), * without processing still-pending softirqs: */void _local_bh_enable(void){	WARN_ON_ONCE(in_irq());	WARN_ON_ONCE(!irqs_disabled());	if (softirq_count() == SOFTIRQ_OFFSET)		trace_softirqs_on((unsigned long)__builtin_return_address(0));	sub_preempt_count(SOFTIRQ_OFFSET);}
开发者ID:WiseMan787,项目名称:ralink_sdk,代码行数:14,


示例10: __local_bh_enable

static void __local_bh_enable(unsigned int cnt){	WARN_ON_ONCE(in_irq());	WARN_ON_ONCE(!irqs_disabled());	if (softirq_count() == cnt)		trace_softirqs_on((unsigned long)__builtin_return_address(0));	sub_preempt_count(cnt);}
开发者ID:adyjl,项目名称:DORIMANX_LG_STOCK_LP_KERNEL,代码行数:9,


示例11: _local_bh_enable

/* * Special-case - softirqs can safely be enabled in * cond_resched_softirq(), or by __do_softirq(), * without processing still-pending softirqs: */void _local_bh_enable(void){#ifdef CONFIG_TRACE_IRQFLAGS	WARN_ON_ONCE(in_irq());#endif	WARN_ON_ONCE(!irqs_disabled());	if (softirq_count() == SOFTIRQ_OFFSET)		trace_softirqs_on((unsigned long)__builtin_return_address(0));	sub_preempt_count(SOFTIRQ_OFFSET);}
开发者ID:Mr-Aloof,项目名称:wl500g,代码行数:16,


示例12: __local_bh_enable

void __local_bh_enable(void){	WARN_ON_ONCE(in_irq());	/*	 * softirqs should never be enabled by __local_bh_enable(),	 * it always nests inside local_bh_enable() sections:	 */	WARN_ON_ONCE(softirq_count() == SOFTIRQ_OFFSET);	sub_preempt_count(SOFTIRQ_OFFSET);}
开发者ID:WiseMan787,项目名称:ralink_sdk,代码行数:12,


示例13: __local_bh_disable

static void __local_bh_disable(unsigned long ip){	unsigned long flags;	WARN_ON_ONCE(in_irq());	raw_local_irq_save(flags);	add_preempt_count(SOFTIRQ_OFFSET);	/*	 * Were softirqs turned off above:	 */	if (softirq_count() == SOFTIRQ_OFFSET)		trace_softirqs_off(ip);	raw_local_irq_restore(flags);}
开发者ID:Mr-Aloof,项目名称:wl500g,代码行数:15,


示例14: dotest

static void dotest(void (*testcase_fn)(void), int expected, int lockclass_mask){	unsigned long saved_preempt_count = preempt_count();	int expected_failure = 0;	WARN_ON(irqs_disabled());	testcase_fn();#ifndef CONFIG_PROVE_LOCKING	if ((lockclass_mask & LOCKTYPE_SPIN) && debug_locks != expected)		expected_failure = 1;	if ((lockclass_mask & LOCKTYPE_RWLOCK) && debug_locks != expected)		expected_failure = 1;	if ((lockclass_mask & LOCKTYPE_MUTEX) && debug_locks != expected)		expected_failure = 1;	if ((lockclass_mask & LOCKTYPE_RWSEM) && debug_locks != expected)		expected_failure = 1;#endif	if (debug_locks != expected) {		if (expected_failure) {			expected_testcase_failures++;			printk("failed|");		} else {			unexpected_testcase_failures++;			printk("FAILED|");			dump_stack();		}	} else {		testcase_successes++;		printk("  ok  |");	}	testcase_total++;	if (debug_locks_verbose)		printk(" lockclass mask: %x, debug_locks: %d, expected: %d/n",			lockclass_mask, debug_locks, expected);	preempt_count() = saved_preempt_count;#ifdef CONFIG_TRACE_IRQFLAGS	if (softirq_count())		current->softirqs_enabled = 0;	else		current->softirqs_enabled = 1;#endif	reset_locks();}
开发者ID:MiniBlu,项目名称:cm11_kernel_htc_msm8974a3ul,代码行数:47,


示例15: do_softirq

asmlinkage void do_softirq(void){ 	__u32 pending; 	unsigned long flags; 	if (in_interrupt()) 		return; 	local_irq_save(flags); 	pending = local_softirq_pending(); 	/* Switch to interrupt stack */ 	if (pending) {		call_softirq();		WARN_ON_ONCE(softirq_count());	} 	local_irq_restore(flags);}
开发者ID:Einheri,项目名称:wl500g,代码行数:17,


示例16: dotest

static void dotest(void (*testcase_fn)(void), int expected, int lockclass_mask){	unsigned long saved_preempt_count = preempt_count();	WARN_ON(irqs_disabled());	testcase_fn();	/*	 * Filter out expected failures:	 */#ifndef CONFIG_PROVE_LOCKING	if (expected == FAILURE && debug_locks) {		expected_testcase_failures++;		pr_cont("failed|");	}	else#endif	if (debug_locks != expected) {		unexpected_testcase_failures++;		pr_cont("FAILED|");		dump_stack();	} else {		testcase_successes++;		pr_cont("  ok  |");	}	testcase_total++;	if (debug_locks_verbose)		pr_cont(" lockclass mask: %x, debug_locks: %d, expected: %d/n",			lockclass_mask, debug_locks, expected);	/*	 * Some tests (e.g. double-unlock) might corrupt the preemption	 * count, so restore it:	 */	preempt_count_set(saved_preempt_count);#ifdef CONFIG_TRACE_IRQFLAGS	if (softirq_count())		current->softirqs_enabled = 0;	else		current->softirqs_enabled = 1;#endif	reset_locks();}
开发者ID:AshishNamdev,项目名称:linux,代码行数:45,



注:本文中的softirq_count函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ softpipe_context函数代码示例
C++ softfloat_raiseFlags函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。