From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758186AbcGKRn2 (ORCPT ); Mon, 11 Jul 2016 13:43:28 -0400 Received: from mail-co1nam03on0111.outbound.protection.outlook.com ([104.47.40.111]:6035 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755286AbcGKRn0 (ORCPT ); Mon, 11 Jul 2016 13:43:26 -0400 X-Greylist: delayed 3599 seconds by postgrey-1.27 at vger.kernel.org; Mon, 11 Jul 2016 13:43:25 EDT Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=waiman.long@hpe.com; Message-ID: <5783B6D7.7020903@hpe.com> Date: Mon, 11 Jul 2016 11:10:15 -0400 From: Waiman Long User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20130109 Thunderbird/10.0.12 MIME-Version: 1.0 To: Peter Zijlstra CC: Pan Xinhui , , , , , , , , , , , , , , Subject: Re: [PATCH v2 0/4] implement vcpu preempted check References: <1467124991-13164-1-git-send-email-xinhui.pan@linux.vnet.ibm.com> <20160706065255.GH30909@twins.programming.kicks-ass.net> In-Reply-To: <20160706065255.GH30909@twins.programming.kicks-ass.net> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [72.71.243.90] X-ClientProxiedBy: BY1PR14CA0013.namprd14.prod.outlook.com (10.161.91.23) To CS1PR84MB0311.NAMPRD84.PROD.OUTLOOK.COM (10.162.190.29) X-MS-Office365-Filtering-Correlation-Id: f80fc903-1abd-4db1-64e4-08d3a99d808a X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0311;2:BQks99QzKJ1OK6I8dNn1I4pX89SlvFGioBNme2IpN/9209raHC23p2WZzgZqbh0WYN5Ty5LccxWUQJSN+rEiF+vx3rqG7TkpSFqyFksGfXGbUdvUjsvE/l9PfanccNU4my5YihrRTOLbw/5UD/Eaexn7e2+9hBiZtU/vZ4rM1EK/mBLSnA4625+JnpQe3dN0;3:YqmvU9p8Oxg61sO6ws7E8CwsWJwKFEQOPI6hy4gl9RQNV9lFE3F5+E9uzRqFMSAlYip1XxLRWM8VvUuggowjxpFp5d0cw6Cbz1d4Eqkb8Ev29y8zaIydNp6E4t+IdAK6;25:WLjggjyZAbAyzA8/7m6Q4mkQAWVKBeLnq4pHDI287nD+Cb3p7vXg+oKWkexVhbCeMgx1P4UpJ6ZY+VQk44EF9sfIyw+7TUpWfQacsP3Xh0MyC9UzY4dcIb9llbPJT758pCl+xCB9MzAhoPUO0v1o0WcNJm+WUiehC2fJyAn1nJvwEvdgcs+0/EDQVbyorJHARJG/AhijbE5n7qd1Eiaz8Imirgh/xc7Zu8vPMYXm0LH2xR1EMSXKC/qxzUYzW4OPvXESByalIOJGlsJQTDDUioeWTnWihE88HtisLOsn7etkjoe1N+VrJskTSOmf4IsWB76YG9CSNK/UIMhaUTymttRi9N/HSVFn//R+mMuU2hoVT3BYHggqggm2sqDw/NLo7C3djSoaa4hxrpyYu6qE7xMVVo4puGQ396akjG4fNF0=;31:INmGMtYPf+W9FAnQpTqHaGGX/Yz/x7TqUaT8S5qGEjFgIhMsU+stFKNFmMaUTwTqvkXTCnEN351cnc6WKFv39I3mcj3W2Nc5i/+k4LJHVIdlXkmURPtDztYndmrx7yhadZ8WrwQsGvscos2gLIvfvBp26MxykKCCVKgk32KhH96Q4qETyujFe0l4l94kko7JqqK6F0ni9uwR0xJHmpUMQA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CS1PR84MB0311; X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0311;20:shLaUcgAKedr+PxDM85v0eKAFY2nxJMU1iE+tE8Xnv7UhimGaRq1afXl8Hgy9ucCgvnp6LFfYWddHbO4Ri6jOYLd9LTKqEeCyhYKMVHc910ScSrXqHfa/F5d/UgqzBiK4sNQzbTeIixZJMIBsk8zdSklml/FWyww50sCtdCXN8F7pEZasbYhpmXSAWfwzLPGWf52d+nMX2iU6bmvAGh6K1mrzwkobAeIYVMoenz/nncn4zjSAOl3OQrd02ov1bqDPP9H1C2kpFDnKDLvZRs4MLB569Y/ggMgoOXlqL2J1qiKjQ+R/08+fjDyrWVX7GkYoe8Qx0+JHXQp+HVLpMEbNF7pdrq4Gvpx+YUPJMjqwCW5XWtLkwaB89Ndb+JaRkuZj4Ii2L+EayUSGNbu9V/UNlF/l6DDawd/g1+C0yHSmRoN4LW14BdePLiK6SyaKAeVRuz6XWClBYwI3w9e/zO4Le8WuIGsxSTAikkty+Xdj2RW7ypalYjaX9/4ExDDaXCx;4:AvN9AMLS0iMbUJtOD02U2uyvo6x31qSfUOYnxX8ip8k9eOTCbCqTgB5DQOQ8Gu/lcfb/7gyqmaQA0fTCyho6HzTHMT7joOIbgDwoFG/5HvYytpAJweGculfCnhKO6BHQG/LUCd64Bmc22CXH03to7vF3NP+NZ1fP1lanoNM7tVq2K845C/jFVoypEui4mfBl1UzX9QYkulBw5HKcxOAKE4nqRPDOAJvloXU+DykxFlLUlbc38kVWd3HGny3LGtsDNk9T3oficZn4TPIdJsweV3s+EzYu9QBSRnFBr4s5dTt6D0rU0wtOLkG2BykiFcEMx8T+nncZeSirHDD6LlJy+N5vI+xnOEZJHb4kYE+BTLBdDd3njNmLp8xy3TqIAdIk X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:CS1PR84MB0311;BCL:0;PCL:0;RULEID:;SRVR:CS1PR84MB0311; X-Forefront-PRVS: 00003DBFE7 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(189002)(24454002)(199003)(377454003)(110136002)(86362001)(47776003)(4001350100001)(65806001)(65956001)(66066001)(101416001)(50986999)(76176999)(65816999)(87266999)(54356999)(36756003)(97736004)(8676002)(230700001)(2906002)(105586002)(68736007)(189998001)(586003)(2950100001)(6116002)(3846002)(92566002)(77096005)(106356001)(23756003)(19580395003)(64126003)(80316001)(117156001)(50466002)(59896002)(33656002)(7846002)(81156014)(81166006)(7736002)(42186005)(83506001)(4326007)(305945005);DIR:OUT;SFP:1102;SCL:1;SRVR:CS1PR84MB0311;H:[192.168.142.165];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;CS1PR84MB0311;23:8r4LTHh82xP0vr3+eXM0YBSohJM5VoMv717Mp37?= =?iso-8859-1?Q?B1EBNbu5V4S/7TqGOVmX0ppUdXgnTJ03LHgQ03bh/HVWG5jW5I7ojzaiBR?= =?iso-8859-1?Q?THexfr+haJZaa+MZNoRnOR7LQrZS0AFrLabL5Y7Wdy96kyYu4kBh1YZj7C?= =?iso-8859-1?Q?O5o8z3/m3kaemdaNOw+KTNTCRPveDiXYhNBzSYjgWPTzXhu6P8lwRwcoiE?= =?iso-8859-1?Q?ewiIjEyqQ3yEvFsVu8OBnH/Cy36Z1xmYa5iqbB3HBdet/j4qKURuczLWil?= =?iso-8859-1?Q?4KQSC4xVNnDpT5qTS6oVlDGd6KP7aFNCHygF3Ft5ModrOh8rSSvD1vi1/j?= =?iso-8859-1?Q?s0uNVP/jGN2A/hJM/2B2B9ijN0lvBNy1aUhGm4Lzxo5m6X1O6mRALK/wMy?= =?iso-8859-1?Q?OYQeqWW0dfMmwgMNpSTAny7oUOiTaS29nMomf4jBSdCoMSQRRfHbN9yDNf?= =?iso-8859-1?Q?5QAXRPenIW2AfxeO0lSX7NITFlgJIT0yvlXHIA6ujQWZlnRqeTaQ7gHiRV?= =?iso-8859-1?Q?7wzvtlACs72N2MMcW16Iis1J4BWY694ktIbTDrRyJXvH08LvnCf/51mz3E?= =?iso-8859-1?Q?K3GXq9oWE09zWHhDDRORRq8L49EIEq3SF/PbZSYt8rnjx0udIjEGyeTNJ5?= =?iso-8859-1?Q?8olO7JHkt6CeY/vRaA3j30ITz4BdlJSkmSFUnJAHrTij4JbC9Ev01zm1a/?= =?iso-8859-1?Q?JLwA33GbqYqaRDbxOm4JXE2tPbfV4L8aun98OeSzvlAicW4+95K2UPoOzy?= =?iso-8859-1?Q?zfcbKiXnB4tux/hGcAG2WQN018nRQOjJ5GpmdE6W69KqGHV72LmcIbkKkf?= =?iso-8859-1?Q?b5zBP3uDT5PYZBRFLUuBHKj/dlD4jjO52tRAraN/4qhxMhDybD+s88jcXv?= =?iso-8859-1?Q?jasgP13H9s7BtlMg0yctHu1HjUmZ6VlOsku8ZEXslb8++uVDYo9e9NSqym?= =?iso-8859-1?Q?eHTy7//HSTNci5pPGuI4HTcRcJgKnfImenZ3CijRpNX9yxO9qiy9q3xiLI?= =?iso-8859-1?Q?cxNWXTs+nG+P4FXd7CKePNWuudZM9WD1KlN65mDAuFTklDkmNCRZZ4ajXP?= =?iso-8859-1?Q?f8dhgjAvi1Fi9yClS/8mN1O6taLgAmaooPWaxRd4cMPzBC3aBBXFamYdD5?= =?iso-8859-1?Q?LaNbvhDLCWZhl4jy+bZl3kngxBanz95xq2I8SGoJun566H8ekM96arSWQP?= =?iso-8859-1?Q?WLaidwKQ2bOC9mbazTZ3pEQJFdTSxrNDIY/LPzz6z/xLiSyk2GEEZgw+7w?= =?iso-8859-1?Q?yORNBLfvdmX6Glc+MBSGeCzWZ6b/9AcquJtzoPi/QHSrdDdEyruPm0zJBJ?= =?iso-8859-1?Q?Vcb1SGc9B6gE0L94M9/lRPFeJkvFbTmy+74lCQqu6ZwYA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;CS1PR84MB0311;6:biPSISTIxDbzUMdsJogsH8reJSYDCEy6XVT4UjHED4TMuKFrLhIM2/l5B9alNVY5U0CFpVCxLPlegevn8nf4KKTd9cl5H2tN0aTMRzBifT9YM6R1zElSSJ59RSViNDbGpfU5ClsRPf9YawppmcyLUtONrSixhzu5F3sRn+wQXNooAgESxpYIbp2wMDTIznuJHLFoLr7pXEFvoPZCvCjdp9pv3fo4CeAn+Qg8KM/bxpM0sxeKADq9QJhKGlbm/qiIre61zmMFl35KInqONZHkMArQ5Tyfm5mWCFZAEahJ7bo=;5:rT5ALDNLbJE0TbuNdb+gmzNgMaCo8KtjeVyRO7E4MpnQ41+iL48Bw+CHjFmfVh3oTVBpRZ8dr2/XXzCVanHaxuDmZBXofMghQlogKJEOz4VR5Tw4ff3gJj0ZnY5WLE/cJvp55vwSkdXupRGhuqy29A==;24:nwkEs+WGY6wij0O9oOt3zR/zjT2Oixd9nThM+sTDapdXWXyX7qalj9sDgiV7z+OSsdfxoWFmILrnD5LT32aFzu4Yqlx5vi/n9/If00nmzUo=;7:aUoLLsuk5o2MwgRHcoRfPIu8Qh5zM2nmd0gO3wD33r6FBGwxz9Il46vKKJSwi7j7GD5wUnodboQjs7PbACQZBWnpGZ/Ffyc0aXzulZSA2bC0vm34lA8mdAVdtpuWdr5RbDwvBaz9QVCT2mDqOvdLESS7IRwwkM8hBC+bV2kgRE3Ryzf9rvbyO/G6rpUZIGsde+r+a6ATzGGufd0et9JGO3ygna6hZQOckh5l72f31IfMUtC2yLkI4ENOUKWKJJr5 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2016 15:10:29.8956 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR84MB0311 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07/06/2016 02:52 AM, Peter Zijlstra wrote: > On Tue, Jun 28, 2016 at 10:43:07AM -0400, Pan Xinhui wrote: >> change fomr v1: >> a simplier definition of default vcpu_is_preempted >> skip mahcine type check on ppc, and add config. remove dedicated macro. >> add one patch to drop overload of rwsem_spin_on_owner and mutex_spin_on_owner. >> add more comments >> thanks boqun and Peter's suggestion. >> >> This patch set aims to fix lock holder preemption issues. >> >> test-case: >> perf record -a perf bench sched messaging -g 400 -p&& perf report >> >> 18.09% sched-messaging [kernel.vmlinux] [k] osq_lock >> 12.28% sched-messaging [kernel.vmlinux] [k] rwsem_spin_on_owner >> 5.27% sched-messaging [kernel.vmlinux] [k] mutex_unlock >> 3.89% sched-messaging [kernel.vmlinux] [k] wait_consider_task >> 3.64% sched-messaging [kernel.vmlinux] [k] _raw_write_lock_irq >> 3.41% sched-messaging [kernel.vmlinux] [k] mutex_spin_on_owner.is >> 2.49% sched-messaging [kernel.vmlinux] [k] system_call >> >> We introduce interface bool vcpu_is_preempted(int cpu) and use it in some spin >> loops of osq_lock, rwsem_spin_on_owner and mutex_spin_on_owner. >> These spin_on_onwer variant also cause rcu stall before we apply this patch set >> > Paolo, could you help out with an (x86) KVM interface for this? > > Waiman, could you see if you can utilize this to get rid of the > SPIN_THRESHOLD in qspinlock_paravirt? That API is certainly useful to make the paravirt spinlock perform better. However, I am not sure if we can completely get rid of the SPIN_THRESHOLD at this point. It is not just the kvm, the xen code need to be modified as well. Cheers, Longman