Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp948141imm; Fri, 11 May 2018 08:45:59 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpD5BTusYvMEOpC0wDr/qu5wMezuLQuJNC+adT/wXZcYYQuXZB1xczoRBnLCTKVFFqS4EYX X-Received: by 2002:a17:902:aa95:: with SMTP id d21-v6mr5928509plr.73.1526053559563; Fri, 11 May 2018 08:45:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526053559; cv=none; d=google.com; s=arc-20160816; b=O/L0Nd1XS2cLNaQeEttUKaQzrixPWnAn1Egq6rfLOWBHpIF2QlDqsY+kbhk8moDFq3 2/Qi6h3AUqAH1ITHSY8to5XTsMajX6VEEF4Fmj2fYq9a12kMYh+BjaNYKom0wuW2mx7T FsY165Z76gqY6A+e15Y35GTVpWpxxDXwxXbJ+13ncQFmOv6noYwY4eQy0AfxMFmoG1Fx aRu9yaR2L8nhTYr01XR20eLxFV5ILqY4Z2c/JlfFVj7Fm4QTK9tZl/TSMZ4+j51R2/DN mdjnoq1SmRdkp5bgVuk3PBvEogCSXo5BSmZu7jMjTKLAtaj1LH+fP1JjA9yZdDkNuJGO uFNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:user-agent :in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:dkim-signature:arc-authentication-results; bh=bGLiV/leDz5y/Q2+cIWjRDjKGgbdg2IabPB++8D4BuU=; b=WNHA5S7iPfd7aBHzI3yqo96oykTwASH8qzlIPBGLJ40CDGNIuY8vikyEVhJO989cv6 shSbRzr5qVCEkU2KjTIjDLRZiCXcSFRhOAVMhdyZaAhAR4O/bMsOwWk/YJTidV1xQkVy ZpxdfxyXl+ztSI7RFRwB7m43TGleiHxNqWiQ9sFOMsmKLDGIadKXAlsKSjO+6P1LfLZm +dmG9KEygmQLBGdd29HfWD50RcT96A7auM+SURTEr+jeN8/WW1uWS8n+HhRYY2LSZsfh 2eS3796YBkF2Bw0huj91ZGQjGOMf4ShQG8hKPhacJD1xLJl/lpDjFGyU/nXgPOmee5oB 70cw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=TiDnzoXC; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q7-v6si2734559pgf.547.2018.05.11.08.45.44; Fri, 11 May 2018 08:45:59 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=TiDnzoXC; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751942AbeEKPpc (ORCPT + 99 others); Fri, 11 May 2018 11:45:32 -0400 Received: from aserp2130.oracle.com ([141.146.126.79]:34642 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751449AbeEKPp3 (ORCPT ); Fri, 11 May 2018 11:45:29 -0400 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w4BFaYG9087221; Fri, 11 May 2018 15:45:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : references : mime-version : content-type : in-reply-to : content-transfer-encoding; s=corp-2017-10-26; bh=bGLiV/leDz5y/Q2+cIWjRDjKGgbdg2IabPB++8D4BuU=; b=TiDnzoXCoTNSndu4MlN3EeN2tRyrKTUJXFEG14Jls99tKZhKE/xF8HlMsqH2A9wW2/8L 2Rl76FMN5JOQPTqwgfndIZuRpwKlmkV3m516+9itZJtwcMD6W8tPI/EOGLcoOlG5lepe WiQmY2w0GCHRIBKi9mk3ZFQBV6Kv1bQKYh7jl46tZo42RgKlKyYbvQ7cSKg2Du6fjn2c RFT4iJfuUDkvwd3PPyBwRvL9/0isRwn/WUtHZ8Ly37qQJ72tsQs3QoIyxfXEcekgJRk3 Ntu6fbAv8kD92qTmHz1g3gwJvZJFyXIkz7zmMaKgFwTN0HhSmEC6buEsWSW1Y/i7sSvi Yg== Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by aserp2130.oracle.com with ESMTP id 2hwabc91cg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 May 2018 15:45:00 +0000 Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserv0022.oracle.com (8.14.4/8.14.4) with ESMTP id w4BFj0aF008379 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 May 2018 15:45:00 GMT Received: from abhmp0018.oracle.com (abhmp0018.oracle.com [141.146.116.24]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id w4BFj02W001624; Fri, 11 May 2018 15:45:00 GMT Received: from char.us.oracle.com (/10.137.176.158) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 11 May 2018 08:45:00 -0700 Received: by char.us.oracle.com (Postfix, from userid 1000) id 131996A00C1; Fri, 11 May 2018 11:44:59 -0400 (EDT) Date: Fri, 11 May 2018 11:44:58 -0400 From: Konrad Rzeszutek Wilk To: Wanpeng Li Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Paolo Bonzini , Radim =?utf-8?B?S3LEjW3DocWZ?= , Tim Shearer , Liran Alon Subject: Re: [PATCH 3/3] KVM: VMX: Allow I/O port 0x80 bypass when userspace prefer Message-ID: <20180511154458.GI27459@char.us.oracle.com> References: <1523943962-25415-1-git-send-email-wanpengli@tencent.com> <1523943962-25415-4-git-send-email-wanpengli@tencent.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <1523943962-25415-4-git-send-email-wanpengli@tencent.com> User-Agent: Mutt/1.8.3 (2017-05-23) Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8890 signatures=668698 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1805110148 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Apr 16, 2018 at 10:46:02PM -0700, Wanpeng Li wrote: > From: Wanpeng Li >=20 > Tim Shearer reported that "There is a guest which is running a packet=20 > forwarding app based on the DPDK (dpdk.org). The packet receive routine= =20 > writes to 0xc070 using glibc's "outw_p" function which does an addition= al=20 > write to I/O port 80. It does this write for every packet that's receiv= ed,=20 > causing a flood of KVM userspace context switches". He uses mpstat to=20 > observe a CPU performing L2 packet forwarding on a pinned guest vCPU,=20 > the guest time is 95 percent when allowing I/O port 0x80 bypass, howeve= r,=20 > it is 65.78 percent when I/O port 0x80 bypss is disabled. =20 >=20 > This patch allows I/O port 0x80 bypass when userspace prefer. s/prefer/requests it/ >=20 Perhaps: Reported-by: Tim Shearer as well? > Cc: Paolo Bonzini > Cc: Radim Kr=C4=8Dm=C3=A1=C5=99 > Cc: Tim Shearer > Cc: Liran Alon > Signed-off-by: Wanpeng Li > --- > arch/x86/kvm/vmx.c | 7 +++++++ > 1 file changed, 7 insertions(+) >=20 > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > index ebf1140..d3e5fef 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -10118,6 +10118,13 @@ static int vmx_vm_init(struct kvm *kvm) > goto out; > memset(kvm_vmx->vmx_io_bitmap[i], 0xff, PAGE_SIZE); > } > + if (kvm->arch.ioport_disable_intercept) { > + /* > + * Allow direct access to the PC debug port (it is often used for I/= O > + * delays, but the vmexits simply slow things down). > + */ > + clear_bit(0x80, kvm_vmx->vmx_io_bitmap[VMX_IO_BITMAP_A]); > + } > return 0; > =20 > out: > --=20 > 2.7.4 >=20