Hi,
On 01/08/2019 07:45, Andrii Anisov wrote:
On 30.07.19 23:10, Julien Grall wrote:
In this series I think I need interrupts locked until I start time accounting
for hypervisor. Time accounting is started by `tacc_head()` function. I
prefer to have it called from C, because it is more convenient and obvious
for those who are less familiar with the ARM code.
Here is the question to you: what is the best place (and way) to start
hypervisor time tracking?
Looking at the patch, hypervisor time accounting is for:
1) softirqs
2) hardirqs
For hardirqs, you always enter in C with interrupt disabled. So this can be
called directly from there.
For softirqs, they are quite a few places where do_sofirq() is called. So you
either want to track the time in the function directly or on each callers.
I am not sure which one is the best way.
Resending the patch without things addressed is only going to make it worst.
I'm still convinced the patch would improve interrupt latency for high
interrupt rate use cases.
But I understand that I have no experiment to prove the effect, so I'm not
willing to push through the patch.
The only thing I ask is justification in your commit message rather than
throwing things and expecting the reviewer to understand why you do that. I
would recommend to refresh yourself how to submit a patch series [1].
I'll follow you recommendation.
Also, I have a question to you about another aspect of this patch. In the
function `enter_hypervisor_head()` there is a check for a disabled workaround
and turning it on. If we have the interrupts enabled until there, we have
good chances to go through the interrupt processing `do_IRQ()` before WA
enabled. Is it still OK?
Hmmm, that's correct.
Sorry I did not get your point. What exactly is correct? My observation of the
scenario where we can go through the big piece of the hypervisor without WA
enabled? Or processing IRQs without WA enabled is the correct way to do?
"big piece" is somewhat half-correct.... All the hypercalls will be correctly
protected, so the problem is only if you receive an interrupt before SSBD is
enabled.
I would move the enablement in assembly code as part of entry.
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel