Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753552AbdLMP7D (ORCPT ); Wed, 13 Dec 2017 10:59:03 -0500 Received: from aserp2130.oracle.com ([141.146.126.79]:38486 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753164AbdLMP66 (ORCPT ); Wed, 13 Dec 2017 10:58:58 -0500 Date: Wed, 13 Dec 2017 10:54:56 -0500 From: Konrad Rzeszutek Wilk To: Yury Norov Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Andrew Morton , Ashish Kalra , Christoffer Dall , Geert Uytterhoeven , Linu Cherian , Sunil Goutham Subject: Re: [PATCH] IPI performance benchmark Message-ID: <20171213155456.GL10097@char.us.oracle.com> References: <20171211141600.24401-1-ynorov@caviumnetworks.com> <20171211153332.GG15649@char.us.oracle.com> <20171213104747.m4b5pbnlcroodfe7@yury-thinkpad> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20171213104747.m4b5pbnlcroodfe7@yury-thinkpad> User-Agent: Mutt/1.8.3 (2017-05-23) X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8743 signatures=668646 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=888 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1712130226 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1945 Lines: 41 On Wed, Dec 13, 2017 at 01:47:47PM +0300, Yury Norov wrote: > On Mon, Dec 11, 2017 at 10:33:32AM -0500, Konrad Rzeszutek Wilk wrote: > > On Mon, Dec 11, 2017 at 05:16:00PM +0300, Yury Norov wrote: > > > This benchmark sends many IPIs in different modes and measures > > > time for IPI delivery (first column), and total time, ie including > > > time to acknowledge the receive by sender (second column). > > > > > > The scenarios are: > > > Dry-run: do everything except actually sending IPI. Useful > > > to estimate system overhead. > > > Self-IPI: Send IPI to self CPU. > > > Normal IPI: Send IPI to some other CPU. > > > Broadcast IPI: Send broadcast IPI to all online CPUs. > > > > > > For virtualized guests, sending and reveiving IPIs causes guest exit. > > > I used this test to measure performance impact on KVM subsystem of > > > Christoffer Dall's series "Optimize KVM/ARM for VHE systems". > > > > > > https://www.spinics.net/lists/kvm/msg156755.html > > > > > > Test machine is ThunderX2, 112 online CPUs. Below the results normalized > > > to host dry-run time. Smaller - better. > > > > Would it make sense to also add spinlock contention tests? Meaning make > > this framework a bit more generic so you could do IPI and you could > > also do spinlock contention? > > > > Like: > > http://xenbits.xen.org/gitweb/?p=xentesttools/bootstrap.git;a=blob;f=root_image/drivers/spinlock_hog/spinlock_hog.c;h=040a154808452576b1aa5720a6282981319a5360;hb=HEAD > > There's kernel/locking/locktorture.c for spinlock testing. Maybe it > worth to add new testcase there? If you find my 'framework' more > suitable for you, I'm also OK with it. Is my understanding correct > that you want something like broadcast IPI case, but with different > payload? Yes, exactly! But as I said, you have probably other things on your mind so this is more of - 'it would be cool if you could do it, but if you don't get to it - I understand' type.