public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* BUG Report: "config KVM" selects PREEMPT_NOTIFIERS, but it should also select PREEMPT (Vanilla Kernel 2.6.30)
@ 2009-06-29 15:18 Walther Maldonado
  2009-07-01  9:41 ` Avi Kivity
  0 siblings, 1 reply; 3+ messages in thread
From: Walther Maldonado @ 2009-06-29 15:18 UTC (permalink / raw)
  To: kvm

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.

But I don't have CONFIG_PREEMPT (Preemptible Kernel), my kernel was configured with CONFIG_PREEMPT_VOLUNTARY (Voluntary Kernel Preemption). Since the define CONFIG_PREEMPT_NOTIFIERS is used in other files other than preempt.h, the bug might be in KVM's Kconfig file (in my case, arch/x86/kConfig) not selecting/depending on the right config parameters.

Cheers,
Walther

PS: If there is a need to reply, please do so directly as I am not subscribed to the mailing list.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: BUG Report: "config KVM" selects PREEMPT_NOTIFIERS, but it should also select PREEMPT (Vanilla Kernel 2.6.30)
  2009-06-29 15:18 BUG Report: "config KVM" selects PREEMPT_NOTIFIERS, but it should also select PREEMPT (Vanilla Kernel 2.6.30) Walther Maldonado
@ 2009-07-01  9:41 ` Avi Kivity
  2009-07-01 13:29   ` Walther Maldonado
  0 siblings, 1 reply; 3+ messages in thread
From: Avi Kivity @ 2009-07-01  9:41 UTC (permalink / raw)
  To: Walther Maldonado; +Cc: kvm

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: BUG Report: "config KVM" selects PREEMPT_NOTIFIERS, but it should also select PREEMPT (Vanilla Kernel 2.6.30)
  2009-07-01  9:41 ` Avi Kivity
@ 2009-07-01 13:29   ` Walther Maldonado
  0 siblings, 0 replies; 3+ messages in thread
From: Walther Maldonado @ 2009-07-01 13:29 UTC (permalink / raw)
  To: Avi Kivity; +Cc: kvm@vger.kernel.org

Good day,

Alright, my bad. After closer studying I realized I had misread where the defines were delimiting each function. :/ Sorry for the invalid report (and yes, I had other issues setting up and running the modules, but I was pretty sure the missing symbols were caused because of the define, which turned out to be false).

Cheers~
Walther.

On Wed, 1 Jul 2009 11:41:38 +0200
Avi Kivity <avi@redhat.com> wrote:

> 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
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-07-01 13:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-29 15:18 BUG Report: "config KVM" selects PREEMPT_NOTIFIERS, but it should also select PREEMPT (Vanilla Kernel 2.6.30) Walther Maldonado
2009-07-01  9:41 ` Avi Kivity
2009-07-01 13:29   ` Walther Maldonado

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox