From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: BUG Report: "config KVM" selects PREEMPT_NOTIFIERS, but it should also select PREEMPT (Vanilla Kernel 2.6.30) Date: Wed, 01 Jul 2009 12:41:38 +0300 Message-ID: <4A4B2F52.3080506@redhat.com> References: <20090629171855.2820e75a@Xellex> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org To: Walther Maldonado Return-path: Received: from mx2.redhat.com ([66.187.237.31]:57008 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751852AbZGAJjx (ORCPT ); Wed, 1 Jul 2009 05:39:53 -0400 In-Reply-To: <20090629171855.2820e75a@Xellex> Sender: kvm-owner@vger.kernel.org List-ID: On 06/29/2009 06:18 PM, Walther Maldonado wrote: > Good day, > > Today when attempting to compile and install the KVM module (kernel 2.6.30), inserting the module would error with a number of unresolved symbols such as preempt_notifier_register() not found. > > Some code-browsing revealed that, even though the kvm KConfig setting "KVM" does select PREEMPT_NOTIFIERS, in include/linux/preempt.h, said define will not cause the expected functions to be defined unless CONFIG_PREEMPT is also selected. > > Not in my copy of v2.6.30. preempt.h only guards the preempt notifier symbols with CONFIG_PREEMPT_NOTIFIER. I built sched.o with CONFIG_PREEMPT_NONE=y and see: [avi@cleopatra linux-2.6 (v2.6.30)]$ nm kernel/sched.o | grep preempt_notifier 00000000c559bf4c A __crc_preempt_notifier_register 000000008be61cbb A __crc_preempt_notifier_unregister 0000000000000028 r __kcrctab_preempt_notifier_register 0000000000000020 r __kcrctab_preempt_notifier_unregister 0000000000000232 r __kstrtab_preempt_notifier_register 0000000000000216 r __kstrtab_preempt_notifier_unregister 0000000000000050 r __ksymtab_preempt_notifier_register 0000000000000040 r __ksymtab_preempt_notifier_unregister 0000000000000c77 T preempt_notifier_register 0000000000000caf T preempt_notifier_unregister Perhaps you have a stale kernel installed? Try reinstalling the kernel and modules and rebooting. -- error compiling committee.c: too many arguments to function