From: Vitaly Kuznetsov <vkuznets@redhat.com>
To: Wanpeng Li <kernellwp@gmail.com>
Cc: "the arch\/x86 maintainers" <x86@kernel.org>,
devel@linuxdriverproject.org, LKML <linux-kernel@vger.kernel.org>,
"K. Y. Srinivasan" <kys@microsoft.com>,
Haiyang Zhang <haiyangz@microsoft.com>,
Stephen Hemminger <sthemmin@microsoft.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Tianyu.Lan@microsoft.com,
"Michael Kelley \(EOSG\)" <Michael.H.Kelley@microsoft.com>
Subject: Re: [PATCH 0/4] x86/hyper-v: optimize PV IPIs
Date: Wed, 27 Jun 2018 11:25:18 +0200 [thread overview]
Message-ID: <877emkh98h.fsf@vitty.brq.redhat.com> (raw)
In-Reply-To: <CANRm+CwNfOkosECeSGaXXDaqTDvh1u228ztU8C5Xe95FGgNsFQ@mail.gmail.com> (Wanpeng Li's message of "Wed, 27 Jun 2018 08:49:08 +0800")
Wanpeng Li <kernellwp@gmail.com> writes:
> Hi Vitaly, (fix my reply mess this time)
> On Sat, 23 Jun 2018 at 01:09, Vitaly Kuznetsov <vkuznets@redhat.com> wrote:
>>
>> When reviewing my "x86/hyper-v: use cheaper HVCALL_FLUSH_VIRTUAL_ADDRESS_
>> {LIST,SPACE} hypercalls when possible" patch Michael suggested to apply the
>> same idea to PV IPIs. Here we go!
>>
>> Despite what Hyper-V TLFS says about HVCALL_SEND_IPI hypercall, it can
>> actually be 'fast' (passing parameters through registers). Use that too.
>>
>> This series can collide with my "KVM: x86: hyperv: PV IPI support for
>> Windows guests" series as I rename ipi_arg_non_ex/ipi_arg_ex structures
>> there. Depending on which one gets in first we may need to do tiny
>> adjustments.
>
> As hyperv PV TLB flush has already been merged, is there any other
> obvious multicast IPIs scenarios? qemu supports interrupt remapping
> since two years ago, I think windows guest can switch to cluster mode
> after entering x2APIC, so sending IPI per cluster.
When we manifest ourselves as Hyper-V Windows 'forgets' about x2apic
mode: Hyper-V has a concept of 'Synthetic interrupt controller' - an
xapic extension which we also support in KVM. I don't really know any
obvious scenarios for mass IPIs in Windows besides TLB flush but I'm
worried they may exist. Without PV IPIs any such attempt will likely
lead to a crash.
In general, I do care more about completeness and correctness of our
Hyper-V emulation at this point: Windows is only being tested on 'real'
Hyper-Vs so when we emulate a subset of enlightenments we're on our own
when something is not working. It is also very helpfult for
Linux-on-Hyper-V depelopment as we can see how Windows-on-Hyper-v
behaves :-)
> In addition, you
> can also post the benchmark result for this PV IPI optimization,
> although it also fixes the bug which you mentioned above.
I'd love to get to know how to trigger mass IPIs in Windows so a
benchmark can be performed...
> I can post one variant for Linux guest PV IPI if it also makes
> sense. :)
With x2apic support I'm actually not sure. Maybe configurations with
a very large number of vCPUs and IPIs going to > 256 vCPUs can benefit
from a 'single hypercall' solution.
--
Vitaly
next prev parent reply other threads:[~2018-06-27 9:25 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-22 17:06 [PATCH 0/4] x86/hyper-v: optimize PV IPIs Vitaly Kuznetsov
2018-06-22 17:06 ` [PATCH 1/4] x86/hyper-v: implement hv_do_fast_hypercall16 Vitaly Kuznetsov
2018-07-03 7:03 ` [tip:x86/hyperv] x86/hyper-v: Implement hv_do_fast_hypercall16 tip-bot for Vitaly Kuznetsov
2018-06-22 17:06 ` [PATCH 2/4] x86/hyper-v: use 'fast' hypercall for HVCALL_SEND_IPI Vitaly Kuznetsov
2018-06-25 23:54 ` Michael Kelley (EOSG)
2018-07-03 7:04 ` [tip:x86/hyperv] x86/hyper-v: Use " tip-bot for Vitaly Kuznetsov
2018-06-22 17:06 ` [PATCH 3/4] x86/hyper-v: use cheaper HVCALL_SEND_IPI hypercall when possible Vitaly Kuznetsov
2018-06-26 0:03 ` Michael Kelley (EOSG)
2018-07-03 7:04 ` [tip:x86/hyperv] x86/hyper-v: Use " tip-bot for Vitaly Kuznetsov
2018-06-22 17:06 ` [PATCH 4/4] x86/hyper-v: trace PV IPI send Vitaly Kuznetsov
2018-07-03 7:05 ` [tip:x86/hyperv] x86/hyper-v: Trace " tip-bot for Vitaly Kuznetsov
2018-06-27 0:49 ` [PATCH 0/4] x86/hyper-v: optimize PV IPIs Wanpeng Li
2018-06-27 9:25 ` Vitaly Kuznetsov [this message]
2018-06-27 10:27 ` Wanpeng Li
2018-06-27 9:32 ` Vitaly Kuznetsov
2018-06-28 16:27 ` Vitaly Kuznetsov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877emkh98h.fsf@vitty.brq.redhat.com \
--to=vkuznets@redhat.com \
--cc=Michael.H.Kelley@microsoft.com \
--cc=Tianyu.Lan@microsoft.com \
--cc=devel@linuxdriverproject.org \
--cc=haiyangz@microsoft.com \
--cc=hpa@zytor.com \
--cc=kernellwp@gmail.com \
--cc=kys@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=sthemmin@microsoft.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox