From: Jon Doron <arilou@gmail.com>
To: kvm@vger.kernel.org
Cc: vkuznets@redhat.com, Jon Doron <arilou@gmail.com>
Subject: [PATCH v1 0/3] x86/kvm/hyper-v: add support for synthetic debugger
Date: Tue, 3 Mar 2020 15:03:53 +0200 [thread overview]
Message-ID: <20200303130356.50405-1-arilou@gmail.com> (raw)
Add support for the synthetic debugger interface of hyper-v, the
synthetic debugger has 2 modes.
1. Use a set of MSRs to send/recv information
2. Use hypercalls
The first mode is based the following MSRs:
1. Control/Status MSRs which either asks for a send/recv .
2. Send/Recv MSRs each holds GPA where the send/recv buffers are.
3. Pending MSR, holds a GPA to a PAGE that simply has a boolean that
indicates if there is data pending to issue a recv VMEXIT.
In the first patch the first mode is being implemented in the sense that
it simply exits to user-space when a control MSR is being written and
when the pending MSR is being set, then it's up-to userspace to
implement the rest of the logic of sending/recving.
In the second mode instead of using MSRs KNet will simply issue
Hypercalls with the information to send/recv, in this mode the data
being transferred is UDP encapsulated, unlike in the previous mode in
which you get just the data to send.
The new hypercalls will exit to userspace which will be incharge of
re-encapsulating if needed the UDP packets to be sent.
There is an issue though in which KDNet does not respect the hypercall
page and simply issues vmcall/vmmcall instructions depending on the cpu
type expecting them to be handled as it a real hypercall was issued.
Jon Doron (3):
x86/kvm/hyper-v: Add support for synthetic debugger capability
x86/kvm/hyper-v: enable hypercalls regardless of hypercall page
x86/kvm/hyper-v: Add support for synthetic debugger via hypercalls
arch/x86/include/asm/hyperv-tlfs.h | 21 +++++
arch/x86/include/asm/kvm_host.h | 11 +++
arch/x86/kvm/hyperv.c | 122 ++++++++++++++++++++++++++++-
arch/x86/kvm/hyperv.h | 5 ++
arch/x86/kvm/trace.h | 22 ++++++
arch/x86/kvm/x86.c | 8 ++
include/uapi/linux/kvm.h | 9 +++
7 files changed, 197 insertions(+), 1 deletion(-)
--
2.24.1
next reply other threads:[~2020-03-03 13:04 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-03 13:03 Jon Doron [this message]
2020-03-03 13:03 ` [PATCH v1 1/3] x86/kvm/hyper-v: Add support for synthetic debugger capability Jon Doron
2020-03-04 13:51 ` Vitaly Kuznetsov
2020-03-05 13:56 ` Jon Doron
2020-03-03 13:03 ` [PATCH v1 2/3] x86/kvm/hyper-v: enable hypercalls regardless of hypercall page Jon Doron
2020-03-04 13:58 ` Vitaly Kuznetsov
2020-03-05 13:57 ` Jon Doron
2020-03-03 13:03 ` [PATCH v1 3/3] x86/kvm/hyper-v: Add support for synthetic debugger via hypercalls Jon Doron
[not found] ` <87mu8wdxtt.fsf@vitty.brq.redhat.com>
2020-03-05 13:58 ` Jon Doron
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=20200303130356.50405-1-arilou@gmail.com \
--to=arilou@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=vkuznets@redhat.com \
/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