2013-08-05 22:35:11

by David Daney

[permalink] [raw]
Subject: Re: [PATCH] kvm: Make kvm_rebooting visible

On 08/05/2013 03:12 PM, Andi Kleen wrote:
> From: Andi Kleen <[email protected]>
>
> kvm_rebooting is referenced from assembler code, thus
> needs to be visible.
>
> Signed-off-by: Andi Kleen <[email protected]>
> ---
> virt/kvm/kvm_main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
> index 1580dd4..eff6abd 100644
> --- a/virt/kvm/kvm_main.c
> +++ b/virt/kvm/kvm_main.c
> @@ -95,7 +95,7 @@ static void hardware_disable_all(void);
>
> static void kvm_io_bus_destroy(struct kvm_io_bus *bus);
>
> -bool kvm_rebooting;
> +__visible bool kvm_rebooting;
> EXPORT_SYMBOL_GPL(kvm_rebooting);

How many of these are there kernel wide?

Could you do something like this instead:

DEFINE_AND_EXPORT_GPL(bool, kvm_rebooting);

The definition of DEFINE_AND_EXPORT_GPL(_type, _name) is left as an
exercise for the reader.

David Daney


2013-08-05 22:58:03

by Andi Kleen

[permalink] [raw]
Subject: Re: [PATCH] kvm: Make kvm_rebooting visible

> > static void kvm_io_bus_destroy(struct kvm_io_bus *bus);
> >
> >-bool kvm_rebooting;
> >+__visible bool kvm_rebooting;
> > EXPORT_SYMBOL_GPL(kvm_rebooting);
>
> How many of these are there kernel wide?

Not very many (at least on x86 allyes) <~10.
Also most users are not exported.

Probably not worth an own macro.

>
> Could you do something like this instead:
>
> DEFINE_AND_EXPORT_GPL(bool, kvm_rebooting);
>
> The definition of DEFINE_AND_EXPORT_GPL(_type, _name) is left as an
> exercise for the reader.

I actually had EXPORT_SYMBOL make things always visible for a long time,
but it prevents optimizing away unused code in very small
non modular configurations. So I switched to separate annotations.

-Andi

--
[email protected] -- Speaking for myself only.