From nobody Sat Oct 4 01:39:26 2025 Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ACDEC2D7DFC for ; Thu, 21 Aug 2025 21:42:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755812539; cv=none; b=LU/KRLgGC26KIj+vbPQjc3dxb/0u2KVbgJEOwY834lkBz79oM59fPgg4lBhkiHnw2hp4qgheirNUcBSCOiiHMpxYHpD2koTAkK7Xbuw/wGL7/ZbV2/fooWMeVuJHm3OeBiLG5MOZsku72CWhUc6qQOnhbikGgF2+0Jl+78aM52k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755812539; c=relaxed/simple; bh=jO/gj25JzhDalfYTefJGdFK+irEJClGBRvjVRqOnfsk=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=EkIm8qYRc0RNTGTEaNOl0I8odNzUlI1Tzknm62kUUlvNA9wDKyTWAZZq+ryR6uZdUIQqZhVXvtbATnMIdlJKAkRIIujsCaUhGThH9XQRC4+ayqe8/GPd+Fo6txP7Qv9Mmi0IY7AbRERaOB57ACEx7QhjHUuNEtmdCsDOTmKPIbU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=06Tufx1W; arc=none smtp.client-ip=209.85.214.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="06Tufx1W" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-24458264c5aso16542535ad.3 for ; Thu, 21 Aug 2025 14:42:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1755812537; x=1756417337; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=e8pkHcdgPqI0ISkr0EzZdXVU8MYoR6lkGEb75P/NGP4=; b=06Tufx1WuMNaTrR661jIZWG5iTeBq6DmlLsWZccwUdqBAxCPtMD4VbklqCE0qEsEMz hcV7sb3dadXFg0cjkWijsvNore2DrVAEoj1hN2La7XS3WDszAtKQpH949aKgAlNaGKm2 0ZsTuwoKpStjSr668nf1Os1TzzUeTs7jMzY++uP8wTyuYvTnvbiY2yaHdZjKhss5K5lt jlHgoynlK0EpshLmIaCeJGcfgWvlEaE3rgIMMyFUNfbTaGnHmXPOk3ukYpKJanUcYonZ CpxMhO2d2XKWQKTUgs5coTy+wLglDsArvymPI/35GApyq5cD4RuDbd8qAHJ6XwxG4kEe c5/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755812537; x=1756417337; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=e8pkHcdgPqI0ISkr0EzZdXVU8MYoR6lkGEb75P/NGP4=; b=c6bGSz4W8MyfKkCv2K/ih5Rh254L3OhRMzaJdxtnPytFVG4InlReoUGhMX3WY4z1Kc rWpJQ1Kt8QD3992st6vfvVvQbza3x/aC2G3VZ/QX4TfkYvyL45DhHc5bOq0lw3xc3c1x p2E1xf6lLKsfAff5ws8NwbhznbI7AxFplGJxtb51yehfu/yZKUZivctoo3DqT0YSeEwY ZyJ+SdJKM3TK0YG1agDVA9CrKZraNvPm1ZGC2w4lwI1lux6eMkJgpSiojBsCHDk7GH08 UehhtOh4f/OFA7CHfWI3Uwu6JijmdyoLubJssgghV+nJC9JWa42xDo7sMGjaxKX/0tQ4 VN+g== X-Forwarded-Encrypted: i=1; AJvYcCVlSZ5uZU7UrYZjkAZN88ukW7wLoU03IpzXxbB1WouiwHBxR5t0C0AuPSnFzZ0zoqFCHfPDbU6UWmrRK/8=@vger.kernel.org X-Gm-Message-State: AOJu0YzSEPGeD25cyGEN7Quzmo2RfDv6jNKYfWr+axG/zaCx4k4rlExT 5SA0rhhd3ZtZUAnH1Mq40xiMVy/TyB9H5HFizlPlO3jil0PxnfsO5uULk3l+aKEeKTxvIie1vPF DyG6lgg== X-Google-Smtp-Source: AGHT+IFT6Sn/6lo/x/nO8mYo4e+XE4zjzpgAf9RzlJKpSlQeT3lTnfh3y0Zb8gxOWD92wxfJvI93w2u+hBs= X-Received: from pjbsi8.prod.google.com ([2002:a17:90b:5288:b0:320:e3b2:68de]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:2a8b:b0:246:3964:63dc with SMTP id d9443c01a7336-2463964650fmr4102925ad.47.1755812537064; Thu, 21 Aug 2025 14:42:17 -0700 (PDT) Reply-To: Sean Christopherson Date: Thu, 21 Aug 2025 14:42:09 -0700 In-Reply-To: <20250821214209.3463350-1-seanjc@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250821214209.3463350-1-seanjc@google.com> X-Mailer: git-send-email 2.51.0.261.g7ce5a0a67e-goog Message-ID: <20250821214209.3463350-4-seanjc@google.com> Subject: [PATCH 3/3] KVM: x86: Move vector_hashing into lapic.c From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Move the vector_hashing module param into lapic.c now that all usage is contained within the local APIC emulation code. Opportunistically drop the accessor and append "_enabled" to the variable to help capture that it's a boolean module param. No functional change intended. Signed-off-by: Sean Christopherson --- arch/x86/kvm/lapic.c | 8 ++++++-- arch/x86/kvm/x86.c | 8 -------- arch/x86/kvm/x86.h | 1 - 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 1a8bc81973e3..6fac6fb86c19 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -74,6 +74,10 @@ module_param(lapic_timer_advance, bool, 0444); #define LAPIC_TIMER_ADVANCE_NS_MAX 5000 /* step-by-step approximation to mitigate fluctuation */ #define LAPIC_TIMER_ADVANCE_ADJUST_STEP 8 + +static bool __read_mostly vector_hashing_enabled =3D true; +module_param_named(vector_hashing, vector_hashing_enabled, bool, 0444); + static int kvm_lapic_msr_read(struct kvm_lapic *apic, u32 reg, u64 *data); static int kvm_lapic_msr_write(struct kvm_lapic *apic, u32 reg, u64 data); =20 @@ -1152,7 +1156,7 @@ static inline bool kvm_apic_map_get_dest_lapic(struct= kvm *kvm, if (!kvm_lowest_prio_delivery(irq)) return true; =20 - if (!kvm_vector_hashing_enabled()) { + if (!vector_hashing_enabled) { lowest =3D -1; for_each_set_bit(i, bitmap, 16) { if (!(*dst)[i]) @@ -1293,7 +1297,7 @@ int kvm_irq_delivery_to_apic(struct kvm *kvm, struct = kvm_lapic *src, r =3D 0; r +=3D kvm_apic_set_irq(vcpu, irq, dest_map); } else if (kvm_apic_sw_enabled(vcpu->arch.apic)) { - if (!kvm_vector_hashing_enabled()) { + if (!vector_hashing_enabled) { if (!lowest) lowest =3D vcpu; else if (kvm_apic_compare_prio(vcpu, lowest) < 0) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 7ba2cdfdac44..554b36de700c 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -164,9 +164,6 @@ module_param(kvmclock_periodic_sync, bool, 0444); static u32 __read_mostly tsc_tolerance_ppm =3D 250; module_param(tsc_tolerance_ppm, uint, 0644); =20 -static bool __read_mostly vector_hashing =3D true; -module_param(vector_hashing, bool, 0444); - bool __read_mostly enable_vmware_backdoor =3D false; module_param(enable_vmware_backdoor, bool, 0444); EXPORT_SYMBOL_GPL(enable_vmware_backdoor); @@ -13552,11 +13549,6 @@ bool kvm_arch_has_noncoherent_dma(struct kvm *kvm) } EXPORT_SYMBOL_GPL(kvm_arch_has_noncoherent_dma); =20 -bool kvm_vector_hashing_enabled(void) -{ - return vector_hashing; -} - bool kvm_arch_no_poll(struct kvm_vcpu *vcpu) { return (vcpu->arch.msr_kvm_poll_control & 1) =3D=3D 0; diff --git a/arch/x86/kvm/x86.h b/arch/x86/kvm/x86.h index eb3088684e8a..786e36fcd0fb 100644 --- a/arch/x86/kvm/x86.h +++ b/arch/x86/kvm/x86.h @@ -431,7 +431,6 @@ void kvm_deliver_exception_payload(struct kvm_vcpu *vcp= u, =20 int kvm_mtrr_set_msr(struct kvm_vcpu *vcpu, u32 msr, u64 data); int kvm_mtrr_get_msr(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata); -bool kvm_vector_hashing_enabled(void); void kvm_fixup_and_inject_pf_error(struct kvm_vcpu *vcpu, gva_t gva, u16 e= rror_code); int x86_decode_emulated_instruction(struct kvm_vcpu *vcpu, int emulation_t= ype, void *insn, int insn_len); --=20 2.51.0.261.g7ce5a0a67e-goog