Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp121521yba; Wed, 8 May 2019 17:35:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqzZN3/IKvoqDhV/KxwwzX4Qj0iJlClQe+LVht+20Gi2hOZsrm4MXD0LG/yl4daQ5nRLw3of X-Received: by 2002:a62:7513:: with SMTP id q19mr752177pfc.108.1557362130541; Wed, 08 May 2019 17:35:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557362130; cv=none; d=google.com; s=arc-20160816; b=wAWzGzJkMWYC6XKpSy1yS2MN73e3AEpMIn4nt8ztEUxW6dx4Hw/8kN7rcat5K34IZj Q3G+071y9VWT+ngzGoJxqF1sK+r/Dvi9r3pl8+yWKHNUJ0kchavdYKkRnsKgZJjm7gwz dg95LTjHrbNInb08JBS1gHAtt0D5jK6+NQei0V+iG+X+bnr/48ZzZZf9/g+mWSU6AebV tqErOxxhCKvzRVw237NrhZG6LsSp9TKr6RrW5VVnIOmcho01BeNq4YJRfeOjB8PQbbI+ ZSFIHS+i+gm1Yphy2nJFZzRZu2xUMMrMOBKZpDWPNykLXisr9tjuGp/JA1QtdV8FsLif CCww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=5a8ymBcKcFPJxxELmpnxY6JCQmHZSan+3t+baag2wZ8=; b=uptL6yC2BKnC3dql6EcXMShKBC6PefrZAKrP52eHOb2GjJt/4HKHGyYFYfDqXTXUfn AHHy/XzmauFh7Lv2+VB9rKf+1ycD34D30DkDF9ZSdk/DfIkJFWWwhtfh0/Cdw+2bhzvB BIxnaEOm39UNv54lF7CrjVnKl1be664BfJUp9ecS36vJjpneeA6kb0iUX91Q/OLJ/wEZ IW74fElvEYTJo4CicD4OmzjEyck+MSTzS+GgjgrjjZQu8G4NVTLr1GOgUgC5hvVRb87L +AeA7YZ1/CAj/ZXiCJ+aaoZh1a3tnRa1g8RS0kHO4LtQvrdkHr7q2TMAWNqJK66dD0Ja wNzw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2018-07-02 header.b=M9LozMDl; 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 y1si480338plb.276.2019.05.08.17.35.14; Wed, 08 May 2019 17:35:30 -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-2018-07-02 header.b=M9LozMDl; 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 S1727509AbfEIAb3 (ORCPT + 99 others); Wed, 8 May 2019 20:31:29 -0400 Received: from aserp2130.oracle.com ([141.146.126.79]:41792 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726709AbfEIAb3 (ORCPT ); Wed, 8 May 2019 20:31:29 -0400 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x490JkoL125474; Thu, 9 May 2019 00:29:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : cc : references : from : message-id : date : mime-version : in-reply-to : content-type : content-transfer-encoding; s=corp-2018-07-02; bh=5a8ymBcKcFPJxxELmpnxY6JCQmHZSan+3t+baag2wZ8=; b=M9LozMDlfVzkuZPmrgKeo2tStYfS5uOvzEuEgc50ej0XyZgzHD9NNPt22gCi7IWfmm0I klmsAIKT3DxSMDGTre/duDhgOGICpnh+BFMdcgZjesdfe2nAbhbH2l+L82uW7thg/oZV U2flYIplpXz7/Jt4px+7Vr6DwWZ3vkktmaBnbljdPu132YXmYxJlz8y3MmETk+imYS6w 2HhPGBu2YCvO/VISpPo07Pwyzd1J1KleqOTxKmDwszpSXsQHoaPtyMcEOv1vZ8Z5tU87 lzmSoBBjRoDBQIl2rBm60QmrtOGoBeQk5XuZEakUdwXqMEb31GrC00yrXItCIvmIaIO0 QA== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by aserp2130.oracle.com with ESMTP id 2s94b67mcs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 09 May 2019 00:29:25 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x490RvZi101903; Thu, 9 May 2019 00:29:25 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userp3030.oracle.com with ESMTP id 2sagyuxafj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 09 May 2019 00:29:24 +0000 Received: from abhmp0018.oracle.com (abhmp0018.oracle.com [141.146.116.24]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id x490TEVM009905; Thu, 9 May 2019 00:29:14 GMT Received: from [10.132.91.213] (/10.132.91.213) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 08 May 2019 17:29:13 -0700 Subject: Re: [RFC PATCH v2 11/17] sched: Basic tracking of matching tasks To: Aubrey Li Cc: Tim Chen , Aaron Lu , Vineeth Remanan Pillai , Nishanth Aravamudan , Julien Desfossez , Peter Zijlstra , Ingo Molnar , Thomas Gleixner , Paul Turner , Linus Torvalds , Linux List Kernel Mailing , =?UTF-8?B?RnLDqWTDqXJpYyBXZWlzYmVja2Vy?= , Kees Cook , Greg Kerr , Phil Auld , Aaron Lu , Valentin Schneider , Mel Gorman , Pawan Gupta , Paolo Bonzini References: <2364f2b65bf50826d881c84d7634b6565dfee527.1556025155.git.vpillai@digitalocean.com> <20190429061516.GA9796@aaronlu> <6dfc392f-e24b-e641-2f7d-f336a90415fa@linux.intel.com> <777b7674-4811-dac4-17df-29bd028d6b26@linux.intel.com> <28fb6854-2772-5d29-087a-6a0cf6afe626@oracle.com> From: Subhra Mazumdar Message-ID: <8098b70b-2095-91ea-d4ad-9181829066c7@oracle.com> Date: Wed, 8 May 2019 17:25:18 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9251 signatures=668686 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-1810050000 definitions=main-1905090000 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9251 signatures=668686 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1905090000 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/8/19 5:01 PM, Aubrey Li wrote: > On Thu, May 9, 2019 at 2:41 AM Subhra Mazumdar > wrote: >> >> On 5/8/19 11:19 AM, Subhra Mazumdar wrote: >>> On 5/8/19 8:49 AM, Aubrey Li wrote: >>>>> Pawan ran an experiment setting up 2 VMs, with one VM doing a >>>>> parallel kernel build and one VM doing sysbench, >>>>> limiting both VMs to run on 16 cpu threads (8 physical cores), with >>>>> 8 vcpu for each VM. >>>>> Making the fix did improve kernel build time by 7%. >>>> I'm gonna agree with the patch below, but just wonder if the testing >>>> result is consistent, >>>> as I didn't see any improvement in my testing environment. >>>> >>>> IIUC, from the code behavior, especially for 2 VMs case(only 2 >>>> different cookies), the >>>> per-rq rb tree unlikely has nodes with different cookies, that is, all >>>> the nodes on this >>>> tree should have the same cookie, so: >>>> - if the parameter cookie is equal to the rb tree cookie, we meet a >>>> match and go the >>>> third branch >>>> - else, no matter we go left or right, we can't find a match, and >>>> we'll return idle thread >>>> finally. >>>> >>>> Please correct me if I was wrong. >>>> >>>> Thanks, >>>> -Aubrey >>> This is searching in the per core rb tree (rq->core_tree) which can have >>> 2 different cookies. But having said that, even I didn't see any >>> improvement with the patch for my DB test case. But logically it is >>> correct. >>> >> Ah, my bad. It is per rq. But still can have 2 different cookies. Not sure >> why you think it is unlikely? > Yeah, I meant 2 different cookies on the system, but unlikely 2 > different cookies > on one same rq. > > If I read the source correctly, for the sched_core_balance path, when try to > steal cookie from another CPU, sched_core_find() uses dst's cookie to search > if there is a cookie match in src's rq, and sched_core_find() returns idle or > matched task, and later put this matched task onto dst's rq (activate_task() in > sched_core_find()). At this moment, the nodes on the rq's rb tree should have > same cookies. > > Thanks, > -Aubrey Yes, but sched_core_find is also called from pick_task to find a local matching task. The enqueue side logic of the scheduler is unchanged with core scheduling, so it is possible tasks with different cookies are enqueued on the same rq. So while searching for a matching task locally doing it correctly should matter.