x86 idle: remove 32-bit-only "no-hlt" parameter, hlt_works_ok flag
Remove 32-bit x86 a cmdline param "no-hlt", and the cpuinfo_x86.hlt_works_ok that it sets. If a user wants to avoid HLT, then "idle=poll" is much more useful, as it avoids invocation of HLT in idle, while "no-hlt" failed to do so. Indeed, hlt_works_ok was consulted in only 3 places. First, in /proc/cpuinfo where "hlt_bug yes" would be printed if and only if the user booted the system with "no-hlt" -- as there was no other code to set that flag. Second, check_hlt() would not invoke halt() if "no-hlt" were on the cmdline. Third, it was consulted in stop_this_cpu(), which is invoked by native_machine_halt()/reboot_interrupt()/smp_stop_nmi_callback() -- all cases where the machine is being shutdown/reset. The flag was not consulted in the more frequently invoked play_dead()/hlt_play_dead() used in processor offline and suspend. Since Linux-3.0 there has been a run-time notice upon "no-hlt" invocations indicating that it would be removed in 2012. Signed-off-by: Len Brown <len.brown@intel.com> Cc: x86@kernel.org
此提交包含在:
@@ -89,7 +89,6 @@ struct cpuinfo_x86 {
|
||||
char wp_works_ok; /* It doesn't on 386's */
|
||||
|
||||
/* Problems on some 486Dx4's and old 386's: */
|
||||
char hlt_works_ok;
|
||||
char hard_math;
|
||||
char rfu;
|
||||
char fdiv_bug;
|
||||
@@ -165,15 +164,6 @@ DECLARE_PER_CPU_SHARED_ALIGNED(struct cpuinfo_x86, cpu_info);
|
||||
|
||||
extern const struct seq_operations cpuinfo_op;
|
||||
|
||||
static inline int hlt_works(int cpu)
|
||||
{
|
||||
#ifdef CONFIG_X86_32
|
||||
return cpu_data(cpu).hlt_works_ok;
|
||||
#else
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
#define cache_line_size() (boot_cpu_data.x86_cache_alignment)
|
||||
|
||||
extern void cpu_detect(struct cpuinfo_x86 *c);
|
||||
|
新增問題並參考
封鎖使用者