lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 29 Jul 2022 13:09:19 +0200 From: Dmytro Maluka <dmy@...ihalf.com> To: Sean Christopherson <seanjc@...gle.com> Cc: Paolo Bonzini <pbonzini@...hat.com>, kvm@...r.kernel.org, Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>, Dave Hansen <dave.hansen@...ux.intel.com>, x86@...nel.org, "H. Peter Anvin" <hpa@...or.com>, linux-kernel@...r.kernel.org, Eric Auger <eric.auger@...hat.com>, Alex Williamson <alex.williamson@...hat.com>, Rong L Liu <rong.l.liu@...el.com>, Zhenyu Wang <zhenyuw@...ux.intel.com>, Tomasz Nowicki <tn@...ihalf.com>, Grzegorz Jaszczyk <jaz@...ihalf.com>, Dmitry Torokhov <dtor@...gle.com> Subject: Re: [PATCH 1/3] KVM: x86: Move kvm_(un)register_irq_mask_notifier() to generic KVM On 7/28/22 20:46, Sean Christopherson wrote: > On Fri, Jul 15, 2022, Dmytro Maluka wrote: >> In preparation for implementing postponing resamplefd event until the >> interrupt is unmasked, move kvm_(un)register_irq_mask_notifier() from >> x86 to arch-independent code to make it usable by irqfd. > > This patch needs to move more than just the helpers, e.g. mask_notifier_list > needs to be in "struct kvm", not "stuct kvm_arch". > > arch/arm64/kvm/../../../virt/kvm/eventfd.c: In function ‘kvm_register_irq_mask_notifier’: > arch/arm64/kvm/../../../virt/kvm/eventfd.c:528:51: error: ‘struct kvm_arch’ has no member named ‘mask_notifier_list’ > 528 | hlist_add_head_rcu(&kimn->link, &kvm->arch.mask_notifier_list); > | ^ > make[3]: *** [scripts/Makefile.build:249: arch/arm64/kvm/../../../virt/kvm/eventfd.o] Error 1 > make[3]: *** Waiting for unfinished jobs.... > AR kernel/entry/built-in.a Oops, sorry. > And kvm_fire_mask_notifiers() should probably be moved as well, otherwise there's > no point in moving the registration to common code. Good point, we can move it right away, even though it is not called on other architectures for now. > The other option would be to make the generic functions wrappers around arch-specific > hooks. But IIRC won't this eventually be needed for other architectures? Right, I assume we will eventually need it for ARM at least. Not in the near future though, and at the moment I have no non-x86 hardware on hand to implement it for other architectures. Actually I feel a bit uncomfortable with generic irqfd relying on kvm_register_irq_mask_notifier() which silently has no effect on other architectures. Maybe it's better to keep kvm_(un)register_irq_mask_notifier() in the x86 code, and for the generic code add a weak version which e.g. just prints a warning like "irq mask notifiers not implemented on this arch". (Or maybe instead of weak functions introduce arch-specific hooks as you suggested, and print such a warning if no hook is provided.) What do you think? Thanks, Dmytro
Powered by blists - more mailing lists