The workqueues are problematic as they may be contended. They can't be scheduled with top priority either. Also the optimization in bL_switch_request() to skip the workqueue entirely when the target CPU and the calling CPU were the same didn't allow for bL_switch_request() to be called from atomic context, as might be the case for some cpufreq drivers. Let's move to dedicated kthreads instead. Signed-off-by: Nicolas Pitre <nico@linaro.org>
18 lines
458 B
C
18 lines
458 B
C
/*
|
|
* arch/arm/include/asm/bL_switcher.h
|
|
*
|
|
* Created by: Nicolas Pitre, April 2012
|
|
* Copyright: (C) 2012-2013 Linaro Limited
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
#ifndef ASM_BL_SWITCHER_H
|
|
#define ASM_BL_SWITCHER_H
|
|
|
|
int bL_switch_request(unsigned int cpu, unsigned int new_cluster_id);
|
|
|
|
#endif
|