Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp43730ybz; Tue, 21 Apr 2020 04:24:12 -0700 (PDT) X-Google-Smtp-Source: APiQypI+OrJ8b9F/ofDuJ44TGqHimiS/hQjHkmnCjQIowkkniGnHcTcwGFSXQbemPhs843hMWGDZ X-Received: by 2002:a17:906:4c46:: with SMTP id d6mr20242049ejw.257.1587468252352; Tue, 21 Apr 2020 04:24:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587468252; cv=none; d=google.com; s=arc-20160816; b=qmK4Y51RQkRQBN6KIYaCWR6Us/xCBQ89t07asMjGGmCsbhHcyAZK5YIBbZ1roVX0Os SSp3Jilwe7iHMoko4uzTXc+878YVF268hpoqOK/nAkQHAmJdwQ1+sChIXEguXSUIi8Hw 7oV03ILcpqFtpxCP4smEeCOLedNVlGBMof53aF3bPtIQJUsx6q170JYLBv7+Vtt8X8+P sTH+D2vsZjdOYLFXrt14dLwjVKWCoqXs8eDK5s+DC8PaGeBN/q0JwfFELj0O+wiiiz4X ce6O68w9gJADbQpT43PzdlJcnhKwfq6X5U8qFiX5KGjPH9UgbTPSYHKA/TzWOPtVS1dT ebRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=5INuHDo8RkxBQI1c6D+UV2G0d783U8nnilEvfGe2hU0=; b=h1ZgXf8uXGsNHq5hUrTDgtMAUKNraADmUi4zZ76FVtrF4ENzUUcuyp3pygt0y/m/9n BoWrY7t6Nz5Fx2LNWxauQnfdLmMeZaHnzVL49SEBxudaGpMl1xtwh499RmcpRCuGv2mI kzW/AprpiRJgD3B1iUtfW232tkPhX5mAPIJ0O1MoLPieqYKR40W0ywUiBCSkugra/EiH 6zHSmTm+MUqY5aH6DZHv6hHQOW7EsJVXweZcy+vSwaKq05ZrodnFpB1cdUOL6k0A81Ku TFAz0lWPf9ZCjtxJMSjwm8hDPIPYLRgZIxYb0C3KtNZkdJ0pj3kScVdgkoFJp0EZmeOI evKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=CfWmPsEx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h14si1505990ejd.424.2020.04.21.04.23.49; Tue, 21 Apr 2020 04:24:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=CfWmPsEx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728532AbgDULUh (ORCPT + 99 others); Tue, 21 Apr 2020 07:20:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47584 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726741AbgDULUg (ORCPT ); Tue, 21 Apr 2020 07:20:36 -0400 Received: from mail-pg1-x542.google.com (mail-pg1-x542.google.com [IPv6:2607:f8b0:4864:20::542]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC5F2C061A0F; Tue, 21 Apr 2020 04:20:36 -0700 (PDT) Received: by mail-pg1-x542.google.com with SMTP id x26so6615978pgc.10; Tue, 21 Apr 2020 04:20:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=5INuHDo8RkxBQI1c6D+UV2G0d783U8nnilEvfGe2hU0=; b=CfWmPsExRg8TFieNHdsCul6CDg7KQXi/925bXG18wBDsPfbylGrKs3CqHnCJ9Qcf9/ Rvff0UYzO3ndeb8H9FyA1PzZywww/9/xujQc3HvsMj+UexNj27db/Thn41aIlXas386Q VEvSDzx/pdf+vKkOZzNOX7+UHb/zQa73Z/a2STyvXatMTDBIO8hyAV0F92jqZnpIYaLl af9aPGoBqS/39UJZnFXjqHbQKN3+MDO89fry8qdV0PShnrH49zamFChLdvmymTATRJS/ QqaiZT0G0Oel9hvi5BHGXJBKIjhSd5q5vKmUbVPKWFw+AQkB9Glx2Ra8TgiqJBWs1Ail gcAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=5INuHDo8RkxBQI1c6D+UV2G0d783U8nnilEvfGe2hU0=; b=AAAQDinV0laZSidiq/88VlZVEqC5ooV5w9jUJKDFOD/Km5rwfOj/Ogf7Vp9Tuw8BaK q4pc61x6YDdHH5wX1rBuy8Pz3wA095RtSq5d0ro4eFhvBcZixDFW1wuq5iFtFE8ada2i FRlAHiRt++DNsgfSJsWbs57n7bwMbIA2RDtMISOmF2D0SkXFNON5or6Qxb6g50/jVEle gJidKLk3Mh5h88rxs7fd4pxIUsOMkDc9CuSffW8Angj3dcG6QAxXqmd6DGNt1ymYrXwO hyju1R4Es8Vd4jyrzEdbYIx5w5ApCJjSDJVQI46hNEAGNV4RYs21+geiYqpiWX8pO21Q vhAg== X-Gm-Message-State: AGi0Pua10nWuh8WiZQWoGSMRv5TrWUGlaqp9WR51pYxim2xJi3FmzTdL B1D1maTUVO16IxRISJHeZLQbvjtv X-Received: by 2002:a63:2e44:: with SMTP id u65mr1855828pgu.142.1587468036204; Tue, 21 Apr 2020 04:20:36 -0700 (PDT) Received: from localhost.localdomain ([103.7.29.6]) by smtp.googlemail.com with ESMTPSA id f74sm8643176pje.3.2020.04.21.04.20.33 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Apr 2020 04:20:35 -0700 (PDT) From: Wanpeng Li X-Google-Original-From: Wanpeng Li To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: Paolo Bonzini , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , Haiwei Li Subject: [PATCH 0/2] KVM: VMX: Tscdeadline timer emulation fastpath Date: Tue, 21 Apr 2020 19:20:24 +0800 Message-Id: <1587468026-15753-1-git-send-email-wanpengli@tencent.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org IPI and Timer cause the main vmexits in cloud environment observation, after single target IPI fastpath, let's optimize tscdeadline timer latency by introducing tscdeadline timer emulation fastpath , it will skip various KVM related checks when possible. i.e. after vmexit due to tscdeadline timer emulation, handle it and vmentry immediately without checking various kvm stuff when possible. Testing on SKX Server. cyclictest in guest(w/o mwait exposed, adaptive advance lapic timer is default -1): 5632.75ns -> 4559.25ns, 19% kvm-unit-test/vmexit.flat: w/o APICv, w/o advance timer: tscdeadline_immed: 4780.75 -> 3851 19.4% tscdeadline: 7474 -> 6528.5 12.7% w/o APICv, w/ adaptive advance timer default -1: tscdeadline_immed: 4845.75 -> 3930.5 18.9% tscdeadline: 6048 -> 5871.75 3% w/ APICv, w/o avanced timer: tscdeadline_immed: 2919 -> 2467.75 15.5% tscdeadline: 5661.75 -> 5188.25 8.4% w/ APICv, w/ adaptive advance timer default -1: tscdeadline_immed: 3018.5 -> 2561 15.2% tscdeadline: 4663.75 -> 4626.5 1% Tested-by: Haiwei Li Cc: Haiwei Li Wanpeng Li (2): KVM: X86: TSCDEADLINE MSR emulation fastpath KVM: VMX: Handle preemption timer fastpath arch/x86/include/asm/kvm_host.h | 3 ++ arch/x86/kvm/lapic.c | 20 ++------ arch/x86/kvm/lapic.h | 16 +++++++ arch/x86/kvm/vmx/vmx.c | 101 ++++++++++++++++++++++++++++++++++++++-- arch/x86/kvm/x86.c | 55 +++++++++++++++++++--- 5 files changed, 167 insertions(+), 28 deletions(-) -- 2.7.4