Re: [patch 1/5] tracehook: Provide TIF_NOTIFY_RESUME handling for KVM

From: Peter Zijlstra
Date: Thu Aug 01 2019 - 10:48:27 EST


On Thu, Aug 01, 2019 at 04:32:51PM +0200, Thomas Gleixner wrote:
> +#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
> +/**
> + * tracehook_handle_notify_resume - Notify resume handling for virt
> + *
> + * Called with interrupts and preemption enabled from VMENTER/EXIT.
> + */
> +void tracehook_handle_notify_resume(void)
> +{
> + local_irq_disable();
> + while (test_and_clear_thread_flag(TIF_NOTIFY_RESUME)) {
> + local_irq_enable();
> + tracehook_notify_resume(NULL);
> + local_irq_disable();
> + }
> + local_irq_enable();

I'm confused by the IRQ state swizzling here, what is it doing?

> +}
> +EXPORT_SYMBOL_GPL(tracehook_handle_notify_resume);
> +#endif
>
>