lkml.org 
[lkml]   [2022]   [Jul]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH 0/5] KVM/x86: add a new hypercall to execute host system
    On Tue, Jul 26, 2022 at 3:27 AM Paolo Bonzini <pbonzini@redhat.com> wrote:
    >
    > On 7/26/22 10:33, Andrei Vagin wrote:
    ...
    > > == Execute system calls from a user-space VMM ==
    > >
    > > In this case, the Sentry is always running in VM, and a syscall handler in GR0
    > > triggers vmexit to transfer control to VMM (user process that is running in
    > > hr3), VMM executes a required system call, and transfers control back to the
    > > Sentry. We can say that it implements the suggested hypercall in the
    > > user-space.
    > >
    > > The sentry syscall time is 2100ns in this case.
    > >
    > > The new hypercall does the same but without switching to the host ring 3. It
    > > reduces the sentry syscall time to 1000ns.
    >
    > Yeah, ~3000 clock cycles is what I would expect.
    >
    > What does it translate to in terms of benchmarks? For example a simple
    > netperf/UDP_RR benchmark.

    * netperf in gVisor with the syscall fast path:
    $ ./runsc --platform kvm --network host --rootless do netperf -H ::1
    -p 12865 -t UDP_RR
    MIGRATED UDP REQUEST/RESPONSE TEST from ::0 (::) port 0 AF_INET6 to
    ::1 (::1) port 0 AF_INET6 : interval : first burst 0
    Local /Remote
    Socket Size Request Resp. Elapsed Trans.
    Send Recv Size Size Time Rate
    bytes Bytes bytes bytes secs. per sec

    212992 212992 1 1 10.00 95965.18
    212992 212992

    * netperf in gVisor without syscall fast path:
    $ ./runsc.orig --platform kvm --network host --rootless do netperf -H
    ::1 -p 12865 -t UDP_RR
    MIGRATED UDP REQUEST/RESPONSE TEST from ::0 (::) port 0 AF_INET6 to
    ::1 (::1) port 0 AF_INET6 : interval : first burst 0
    Local /Remote
    Socket Size Request Resp. Elapsed Trans.
    Send Recv Size Size Time Rate
    bytes Bytes bytes bytes secs. per sec

    212992 212992 1 1 10.00 58709.17
    212992 212992

    * netperf executed on the host without gVisor
    $ netperf -H ::1 -p 12865 -t UDP_RR
    MIGRATED UDP REQUEST/RESPONSE TEST from ::0 (::) port 0 AF_INET6 to
    ::1 (::1) port 0 AF_INET6 : interval : first burst 0
    Local /Remote
    Socket Size Request Resp. Elapsed Trans.
    Send Recv Size Size Time Rate
    bytes Bytes bytes bytes secs. per sec

    212992 212992 1 1 10.00 146460.80
    212992 212992

    Thanks,
    Andrei

    \
     
     \ /
      Last update: 2022-07-27 08:46    [W:2.643 / U:0.224 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site