[PATCH] Drivers: hv: vmbus: Move add_interrupt_randomness back to real interrupt

Jan Kiszka posted 1 patch 2 weeks, 6 days ago
drivers/hv/vmbus_drv.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH] Drivers: hv: vmbus: Move add_interrupt_randomness back to real interrupt
Posted by Jan Kiszka 2 weeks, 6 days ago
From: Jan Kiszka <jan.kiszka@siemens.com>

Sebastian Siewior wrote:
"This is feeding entropy and would like to see interrupt registers. But
since this is invoked from a thread it won't."

So move it back to where it is always in interrupt context.

Fixes: f8e6343b7a89 ("Drivers: hv: vmbus: Simplify allocation of vmbus_evt")
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 drivers/hv/vmbus_drv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index bc4fc1951ae1..28025a264861 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -1361,8 +1361,6 @@ static void __vmbus_isr(void)
 
 	vmbus_message_sched(hv_cpu, hv_cpu->hyp_synic_message_page);
 	vmbus_message_sched(hv_cpu, hv_cpu->para_synic_message_page);
-
-	add_interrupt_randomness(vmbus_interrupt);
 }
 
 static DEFINE_PER_CPU(bool, vmbus_irq_pending);
@@ -1410,6 +1408,8 @@ void vmbus_isr(void)
 		lockdep_hardirq_threaded();
 		__vmbus_isr();
 	}
+
+	add_interrupt_randomness(vmbus_interrupt);
 }
 EXPORT_SYMBOL_FOR_MODULES(vmbus_isr, "mshv_vtl");
 
-- 
2.47.3
Re: [PATCH] Drivers: hv: vmbus: Move add_interrupt_randomness back to real interrupt
Posted by Sebastian Andrzej Siewior 2 weeks, 6 days ago
On 2026-03-17 09:09:27 [+0100], Jan Kiszka wrote:
> From: Jan Kiszka <jan.kiszka@siemens.com>
> 
> Sebastian Siewior wrote:
> "This is feeding entropy and would like to see interrupt registers. But
> since this is invoked from a thread it won't."
> 
> So move it back to where it is always in interrupt context.
> 
> Fixes: f8e6343b7a89 ("Drivers: hv: vmbus: Simplify allocation of vmbus_evt")
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> ---
>  drivers/hv/vmbus_drv.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
> index bc4fc1951ae1..28025a264861 100644
> --- a/drivers/hv/vmbus_drv.c
> +++ b/drivers/hv/vmbus_drv.c
> @@ -1361,8 +1361,6 @@ static void __vmbus_isr(void)
>  
>  	vmbus_message_sched(hv_cpu, hv_cpu->hyp_synic_message_page);
>  	vmbus_message_sched(hv_cpu, hv_cpu->para_synic_message_page);
> -
> -	add_interrupt_randomness(vmbus_interrupt);
>  }
>  
>  static DEFINE_PER_CPU(bool, vmbus_irq_pending);
> @@ -1410,6 +1408,8 @@ void vmbus_isr(void)
>  		lockdep_hardirq_threaded();
>  		__vmbus_isr();
>  	}
> +
> +	add_interrupt_randomness(vmbus_interrupt);
>  }
>  EXPORT_SYMBOL_FOR_MODULES(vmbus_isr, "mshv_vtl");

Why not sysvec_hyperv_callback()?

Sebastian
Re: [PATCH] Drivers: hv: vmbus: Move add_interrupt_randomness back to real interrupt
Posted by Jan Kiszka 2 weeks, 6 days ago
On 17.03.26 12:05, Sebastian Andrzej Siewior wrote:
> On 2026-03-17 09:09:27 [+0100], Jan Kiszka wrote:
>> From: Jan Kiszka <jan.kiszka@siemens.com>
>>
>> Sebastian Siewior wrote:
>> "This is feeding entropy and would like to see interrupt registers. But
>> since this is invoked from a thread it won't."
>>
>> So move it back to where it is always in interrupt context.
>>
>> Fixes: f8e6343b7a89 ("Drivers: hv: vmbus: Simplify allocation of vmbus_evt")
>> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
>> ---
>>  drivers/hv/vmbus_drv.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
>> index bc4fc1951ae1..28025a264861 100644
>> --- a/drivers/hv/vmbus_drv.c
>> +++ b/drivers/hv/vmbus_drv.c
>> @@ -1361,8 +1361,6 @@ static void __vmbus_isr(void)
>>  
>>  	vmbus_message_sched(hv_cpu, hv_cpu->hyp_synic_message_page);
>>  	vmbus_message_sched(hv_cpu, hv_cpu->para_synic_message_page);
>> -
>> -	add_interrupt_randomness(vmbus_interrupt);
>>  }
>>  
>>  static DEFINE_PER_CPU(bool, vmbus_irq_pending);
>> @@ -1410,6 +1408,8 @@ void vmbus_isr(void)
>>  		lockdep_hardirq_threaded();
>>  		__vmbus_isr();
>>  	}
>> +
>> +	add_interrupt_randomness(vmbus_interrupt);
>>  }
>>  EXPORT_SYMBOL_FOR_MODULES(vmbus_isr, "mshv_vtl");
> 
> Why not sysvec_hyperv_callback()?

Because we do not want to be x86-only.

Jan

-- 
Siemens AG, Foundational Technologies
Linux Expert Center
Re: [PATCH] Drivers: hv: vmbus: Move add_interrupt_randomness back to real interrupt
Posted by Sebastian Andrzej Siewior 2 weeks, 6 days ago
On 2026-03-17 12:56:02 [+0100], Jan Kiszka wrote:
> >> @@ -1410,6 +1408,8 @@ void vmbus_isr(void)
> >>  		lockdep_hardirq_threaded();
> >>  		__vmbus_isr();
> >>  	}
> >> +
> >> +	add_interrupt_randomness(vmbus_interrupt);
> >>  }
> >>  EXPORT_SYMBOL_FOR_MODULES(vmbus_isr, "mshv_vtl");
> > 
> > Why not sysvec_hyperv_callback()?
> 
> Because we do not want to be x86-only.

Who is other one and does it have its add_interrupt_randomness() there
already?
This is a driver, this does not belong here.

> Jan

Sebastian
Re: [PATCH] Drivers: hv: vmbus: Move add_interrupt_randomness back to real interrupt
Posted by Jan Kiszka 2 weeks, 6 days ago
On 17.03.26 14:22, Sebastian Andrzej Siewior wrote:
> On 2026-03-17 12:56:02 [+0100], Jan Kiszka wrote:
>>>> @@ -1410,6 +1408,8 @@ void vmbus_isr(void)
>>>>  		lockdep_hardirq_threaded();
>>>>  		__vmbus_isr();
>>>>  	}
>>>> +
>>>> +	add_interrupt_randomness(vmbus_interrupt);
>>>>  }
>>>>  EXPORT_SYMBOL_FOR_MODULES(vmbus_isr, "mshv_vtl");
>>>
>>> Why not sysvec_hyperv_callback()?
>>
>> Because we do not want to be x86-only.
> 
> Who is other one and does it have its add_interrupt_randomness() there
> already?

It's the arm64 path of the hv support. Regarding the vmbus IRQ, it seems
to be fully handled here, without an equivalent of
arch/x86/kernel/cpu/mshyperv.c.

> This is a driver, this does not belong here.

Don't argue with me, I didn't put it here in the beginning. Maybe
Michael can shed more light on this (and sorry for having forgotten to
CC you on this patch).

Jan

-- 
Siemens AG, Foundational Technologies
Linux Expert Center