Hello, I've got an Athlon 64 laptop running a custom (x86, not x86_64) kernel based on the FC2 kernel sources. I'm successfully using the cpufreq interface to control the cpu speed when the laptop is running on AC power. However, when I remove AC power, I see the following lines in /var/log/messages: May 24 17:52:50 whirlaway kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 17:52:50 whirlaway kernel: in_atomic():1, irqs_disabled():0 May 24 17:52:50 whirlaway kernel: Call Trace: May 24 17:52:50 whirlaway kernel: [<02115ea6>] __might_sleep+0xa5/0xaf May 24 17:52:50 whirlaway kernel: [<02239040>] cpufreq_notify_transition+0x2e/0x141 May 24 17:52:50 whirlaway kernel: [<42a99b45>] transition_frequency+0x8d/0xeb [powernow_k8] May 24 17:52:50 whirlaway kernel: [<42a99c63>] powernowk8_target+0xc0/0x105 [powernow_k8] May 24 17:52:50 whirlaway kernel: [<02238ac7>] __cpufreq_driver_target+0xa/0xc May 24 17:52:50 whirlaway kernel: [<0223966c>] cpufreq_governor_userspace+0x159/0x180 May 24 17:52:50 whirlaway kernel: [<02238b83>] __cpufreq_governor+0x5d/0xea May 24 17:52:50 whirlaway kernel: [<02238f07>] __cpufreq_set_policy+0x12b/0x132 May 24 17:52:50 whirlaway kernel: [<02238ff1>] cpufreq_update_policy+0x6b/0x8c May 24 17:52:50 whirlaway kernel: [<021bb16f>] acpi_processor_get_platform_limit+0x25/0x41 May 24 17:52:50 whirlaway kernel: [<021bc120>] acpi_processor_notify+0x38/0x58 May 24 17:52:50 whirlaway kernel: [<021a67d1>] acpi_ev_notify_dispatch+0x52/0x5b May 24 17:52:50 whirlaway kernel: [<021a28c1>] acpi_os_execute_deferred+0xc/0x15 May 24 17:52:50 whirlaway kernel: [<021237be>] worker_thread+0x196/0x1f3 May 24 17:52:50 whirlaway kernel: [<021a28b5>] acpi_os_execute_deferred+0x0/0x15 May 24 17:52:50 whirlaway kernel: [<021151f0>] default_wake_function+0x0/0xc May 24 17:52:50 whirlaway kernel: [<021151f0>] default_wake_function+0x0/0xc May 24 17:52:50 whirlaway kernel: [<02123628>] worker_thread+0x0/0x1f3 May 24 17:52:50 whirlaway kernel: [<02126065>] kthread+0x69/0x91 May 24 17:52:50 whirlaway kernel: [<02125ffc>] kthread+0x0/0x91 May 24 17:52:50 whirlaway kernel: [<021041d9>] kernel_thread_helper+0x5/0xb and the machine remains stuck at the lowest cpu frequency setting. Once I restore AC power, I can again use cpufreq to change frequencies. As far as I know, there are no other (e.g. cpuspeed) frequency-management daemons running in the background. Is this a feature of cpufreq or something else? Is there any way to still manually control the cpu speed when running on battery? Thanks for any help. -Dave ---------- p.s. Some possibly relevant lines from my custom kernel .config are: # # Automatically generated make config: don't edit # CONFIG_X86=y CONFIG_MMU=y CONFIG_UID16=y CONFIG_GENERIC_ISA_DMA=y # # Code maturity level options # CONFIG_EXPERIMENTAL=y CONFIG_CLEAN_COMPILE=y CONFIG_STANDALONE=y CONFIG_BROKEN_ON_SMP=y # # General setup # CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_SYSCTL=y CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_LOG_BUF_SHIFT=17 CONFIG_HOTPLUG=y # CONFIG_IKCONFIG is not set # CONFIG_EMBEDDED is not set CONFIG_KALLSYMS=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y # # Loadable module support # CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set CONFIG_OBSOLETE_MODPARM=y # CONFIG_MODVERSIONS is not set CONFIG_KMOD=y # # Processor type and features # CONFIG_X86_PC=y # CONFIG_X86_ELAN is not set # CONFIG_X86_VOYAGER is not set # CONFIG_X86_NUMAQ is not set # CONFIG_X86_SUMMIT is not set # CONFIG_X86_BIGSMP is not set # CONFIG_X86_VISWS is not set # CONFIG_X86_GENERICARCH is not set # CONFIG_X86_ES7000 is not set # CONFIG_M386 is not set # CONFIG_M486 is not set # CONFIG_M586 is not set # CONFIG_M586TSC is not set # CONFIG_M586MMX is not set # CONFIG_M686 is not set # CONFIG_MPENTIUMII is not set # CONFIG_MPENTIUMIII is not set # CONFIG_MPENTIUMM is not set # CONFIG_MPENTIUM4 is not set # CONFIG_MK6 is not set # CONFIG_MK7 is not set CONFIG_MK8=y # CONFIG_MCRUSOE is not set # CONFIG_MWINCHIPC6 is not set # CONFIG_MWINCHIP2 is not set # CONFIG_MWINCHIP3D is not set # CONFIG_MCYRIXIII is not set # CONFIG_MVIAC3_2 is not set CONFIG_X86_GENERIC=y CONFIG_X86_CMPXCHG=y CONFIG_X86_XADD=y CONFIG_X86_L1_CACHE_SHIFT=7 CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INVLPG=y CONFIG_X86_BSWAP=y CONFIG_X86_POPAD_OK=y CONFIG_X86_GOOD_APIC=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_4G=y CONFIG_X86_SWITCH_PAGETABLES=y CONFIG_X86_4G_VM_LAYOUT=y CONFIG_X86_UACCESS_INDIRECT=y CONFIG_X86_HIGH_ENTRY=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y # CONFIG_SMP is not set CONFIG_PREEMPT=y # CONFIG_X86_UP_APIC is not set CONFIG_X86_TSC=y CONFIG_X86_MCE=y # CONFIG_X86_MCE_NONFATAL is not set # CONFIG_TOSHIBA is not set # CONFIG_I8K is not set CONFIG_MICROCODE=m CONFIG_X86_MSR=m CONFIG_X86_CPUID=m # # Firmware Drivers # CONFIG_EDD=m # CONFIG_NOHIGHMEM is not set CONFIG_HIGHMEM4G=y # CONFIG_HIGHMEM64G is not set CONFIG_HIGHMEM=y CONFIG_HIGHPTE=y # CONFIG_MATH_EMULATION is not set CONFIG_MTRR=y # CONFIG_EFI is not set CONFIG_HAVE_DEC_LOCK=y CONFIG_REGPARM=y # # Power management options (ACPI, APM) # CONFIG_PM=y # CONFIG_SOFTWARE_SUSPEND is not set # CONFIG_PM_DISK is not set # # ACPI (Advanced Configuration and Power Interface) Support # CONFIG_ACPI=y CONFIG_ACPI_BOOT=y CONFIG_ACPI_INTERPRETER=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_SLEEP_PROC_FS=y CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m CONFIG_ACPI_BUTTON=m CONFIG_ACPI_FAN=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_THERMAL=y CONFIG_ACPI_ASUS=m CONFIG_ACPI_TOSHIBA=m # CONFIG_ACPI_DEBUG is not set CONFIG_ACPI_BUS=y CONFIG_ACPI_EC=y CONFIG_ACPI_POWER=y CONFIG_ACPI_PCI=y CONFIG_ACPI_SYSTEM=y CONFIG_X86_PM_TIMER=y # # APM (Advanced Power Management) BIOS Support # CONFIG_APM=y # CONFIG_APM_IGNORE_USER_SUSPEND is not set # CONFIG_APM_DO_ENABLE is not set CONFIG_APM_CPU_IDLE=y # CONFIG_APM_DISPLAY_BLANK is not set CONFIG_APM_RTC_IS_GMT=y # CONFIG_APM_ALLOW_INTS is not set # CONFIG_APM_REAL_MODE_POWER_OFF is not set # # CPU Frequency scaling # CONFIG_CPU_FREQ=y # CONFIG_CPU_FREQ_PROC_INTF is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y # CONFIG_CPU_FREQ_24_API is not set CONFIG_CPU_FREQ_TABLE=y # # CPUFreq processor drivers # CONFIG_X86_ACPI_CPUFREQ=m # CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set # CONFIG_X86_POWERNOW_K6 is not set # CONFIG_X86_POWERNOW_K7 is not set CONFIG_X86_POWERNOW_K8=m # CONFIG_X86_GX_SUSPMOD is not set # CONFIG_X86_SPEEDSTEP_CENTRINO is not set # CONFIG_X86_SPEEDSTEP_ICH is not set # CONFIG_X86_SPEEDSTEP_SMI is not set # CONFIG_X86_P4_CLOCKMOD is not set # CONFIG_X86_LONGRUN is not set # CONFIG_X86_LONGHAUL is not set