[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 8/8] target-i386/kvm: cache the return value
From: |
Igor Mammedov |
Subject: |
Re: [Qemu-devel] [PATCH v4 8/8] target-i386/kvm: cache the return value of kvm_enable_x2apic() |
Date: |
Fri, 7 Oct 2016 15:01:24 +0200 |
On Wed, 5 Oct 2016 15:06:57 +0200
Radim Krčmář <address@hidden> wrote:
> Assume that KVM would have returned the same on subsequent runs.
> Abstract the memoizaiton pattern into macros and call it memorize as
> adding the r makes it less obscure.
>
> Signed-off-by: Radim Krčmář <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
> ---
> v4:
> * changed the name to memorize [Igor]
> * remove useless underscores in macro arguments
> * merge the two macros, as it seems that the deleted one wouldn't get
> other users anytime soon
> ---
> target-i386/kvm.c | 17 +++++++++++++++--
> 1 file changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/target-i386/kvm.c b/target-i386/kvm.c
> index 0fd664648665..0472f45fd092 100644
> --- a/target-i386/kvm.c
> +++ b/target-i386/kvm.c
> @@ -129,10 +129,23 @@ static bool kvm_x2apic_api_set_flags(uint64_t flags)
> return !kvm_vm_enable_cap(s, KVM_CAP_X2APIC_API, 0, flags);
> }
>
> +#define MEMORIZE(fn) \
> + ({ \
> + static typeof(fn) _result; \
> + static bool _memorized; \
> + \
> + if (_memorized) { \
> + return _result; \
> + } \
> + _memorized = true; \
> + _result = fn; \
> + })
> +
> bool kvm_enable_x2apic(void)
> {
> - return kvm_x2apic_api_set_flags(KVM_X2APIC_API_USE_32BIT_IDS |
> - KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK);
> + return MEMORIZE(
> + kvm_x2apic_api_set_flags(KVM_X2APIC_API_USE_32BIT_IDS |
> +
> KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK));
> }
>
> static int kvm_get_tsc(CPUState *cs)
- Re: [Qemu-devel] [PATCH v4 7/8] intel_iommu: keep buggy EIM enabled in 2.7 machine type, (continued)
- Re: [Qemu-devel] [PATCH v4 7/8] intel_iommu: keep buggy EIM enabled in 2.7 machine type, Michael S. Tsirkin, 2016/10/06
- Re: [Qemu-devel] [PATCH v4 7/8] intel_iommu: keep buggy EIM enabled in 2.7 machine type, Radim Krčmář, 2016/10/06
- [Qemu-devel] Deprecating old machine-types (was Re: [PATCH v4 7/8] intel_iommu: keep buggy EIM enabled in 2.7 machine type), Eduardo Habkost, 2016/10/10
- Re: [Qemu-devel] Deprecating old machine-types (was Re: [PATCH v4 7/8] intel_iommu: keep buggy EIM enabled in 2.7 machine type), Paolo Bonzini, 2016/10/11
- Re: [Qemu-devel] Deprecating old machine-types (was Re: [PATCH v4 7/8] intel_iommu: keep buggy EIM enabled in 2.7 machine type), Daniel P. Berrange, 2016/10/11
- Re: [Qemu-devel] Deprecating old machine-types (was Re: [PATCH v4 7/8] intel_iommu: keep buggy EIM enabled in 2.7 machine type), Paolo Bonzini, 2016/10/11
- Re: [Qemu-devel] Deprecating old machine-types (was Re: [PATCH v4 7/8] intel_iommu: keep buggy EIM enabled in 2.7 machine type), Eduardo Habkost, 2016/10/14
- Re: [Qemu-devel] [PATCH v4 7/8] intel_iommu: keep buggy EIM enabled in 2.7 machine type, Radim Krčmář, 2016/10/06
- Re: [Qemu-devel] [PATCH v4 7/8] intel_iommu: keep buggy EIM enabled in 2.7 machine type, Michael S. Tsirkin, 2016/10/09
[Qemu-devel] [PATCH v4 8/8] target-i386/kvm: cache the return value of kvm_enable_x2apic(), Radim Krčmář, 2016/10/05
- Re: [Qemu-devel] [PATCH v4 8/8] target-i386/kvm: cache the return value of kvm_enable_x2apic(),
Igor Mammedov <=