From: Easwar Hariharan <eahariha@xxxxxxxxxxxxxxxxxxx> Sent: Friday, May 10, 2024 10:55 AM > > On 5/7/2024 6:16 AM, mhkelley58@xxxxxxxxx wrote: > > From: Michael Kelley <mhklinux@xxxxxxxxxxx> > > > > Current documentation does not describe how Linux handles the synthetic > > interrupt controller (synic) that Hyper-V provides to guest VMs, nor how > > VMBus or timer interrupts are handled. Add text describing the synic and > > reorganize existing text to make this more clear. > > > > Signed-off-by: Michael Kelley <mhklinux@xxxxxxxxxxx> > > --- > > Documentation/virt/hyperv/clocks.rst | 21 +++++--- > > Documentation/virt/hyperv/vmbus.rst | 79 ++++++++++++++++++---------- > > 2 files changed, 66 insertions(+), 34 deletions(-) > > > > diff --git a/Documentation/virt/hyperv/clocks.rst b/Documentation/virt/hyperv/clocks.rst > > index a56f4837d443..919bb92d6d9d 100644 > > --- a/Documentation/virt/hyperv/clocks.rst > > +++ b/Documentation/virt/hyperv/clocks.rst > > @@ -62,12 +62,21 @@ shared page with scale and offset values into user space. User > > space code performs the same algorithm of reading the TSC and > > applying the scale and offset to get the constant 10 MHz clock. > > > > -Linux clockevents are based on Hyper-V synthetic timer 0. While > > -Hyper-V offers 4 synthetic timers for each CPU, Linux only uses > > -timer 0. Interrupts from stimer0 are recorded on the "HVS" line in > > -/proc/interrupts. Clockevents based on the virtualized PIT and > > -local APIC timer also work, but the Hyper-V synthetic timer is > > -preferred. > > +Linux clockevents are based on Hyper-V synthetic timer 0 (stimer0). > > +While Hyper-V offers 4 synthetic timers for each CPU, Linux only uses > > +timer 0. In older versions of Hyper-V, an interrupt from stimer0 > > +results in a VMBus control message that is demultiplexed by > > +vmbus_isr() as described in the VMBus documentation. > > Is VMBus documentation here referring to Documentation/virt/hyperv/vmbus.rst? > If so, could you please add internal links with :ref:? See for example in > Documentation/process/1.Intro.rst. You are right. The reference is to vmbus.rst. I'll make it a link, though the guidelines under "Cross-referencing" in "Using Sphinx for kernel documentation" prefer just using the path to the documentation file with no special annotation like :doc: or :ref:. So it would just be "Documentation/virt/hyperv/vmbus.rst". I'll try this and make sure it comes out right. Michael > If referring to Microsoft documentation, please > provide a permalink. Please do also look for other opportunities to cross-link within > Documentation or to external resources. > > Thanks for the improvements! > > Easwar