From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8C5BA338925 for ; Wed, 17 Dec 2025 13:01:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=198.175.65.10 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765976487; cv=fail; b=C1MKwwyY2rGZyhopCXZiI/pCyXj9mSjVcvU4CNhpk9/xss0aN0XjXrjgB0DdQZoUxAQuR9FmhmLHUjTyj0cXyIlucnfFu0dbMdo1MRY+A0J68+WSNlEjt3k3S1vRn799xbiGodUMS2NmJXCAAhnRnWPygwrRh+nxY3tl/ErVzBM= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765976487; c=relaxed/simple; bh=+4noxxeNMkAB0/1Cwk5a6NhsILnKJk7Wg18vuhAQt2I=; h=Message-ID:Date:Subject:To:CC:References:From:In-Reply-To: Content-Type:MIME-Version; b=dGOzPTpmsNwHAGKmMwZBFaLSacRtmR8ogt7wUQV2jayo15lapfxZKnzDbV44Vrl5IqDJAxoD//RQTu4Qf3QvM57E6s0n2hJzsqBbeAk+i/Dacyr/qcl5OARRP78tiSEQ+fbAjWArTVoR+LFNaDE2Kdj7ILy9eQygYIz8Pz6icjE= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=fail smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=j79bgjfL; arc=fail smtp.client-ip=198.175.65.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="j79bgjfL" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1765976485; x=1797512485; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=+4noxxeNMkAB0/1Cwk5a6NhsILnKJk7Wg18vuhAQt2I=; b=j79bgjfLJHKsgJDFMbbyJi3clI06WVAGRpZIUq7nPUEx+6jc56arlUBw jXzo2/iD1QYNwlZ+AJTIlzShMKTA7M+Jsdq0hJiT+mppPVlA2dWJj1Xkg pt7KRw1X+mlGrcOqXABUSD9GTyw/QWVyLfED6N8TTYlrYUuRI093C10Ec kFul0CkEzHsQz/HLSNUFmocNAeHYltwLvo/wid4xcekXYXKvKFfKQ2Q8O AyJDHVUq3Pno68YJpKNg6mnbqnWkkEL1ZErTrnFZk7gLS0r6SRsDS/J8z hGX0mVNzv0IWWKY9HzSaZ6rHQRszjenfmFr0OvYLBIr6+JYApBqkyxz3l w==; X-CSE-ConnectionGUID: Ipxq2wDTQa+fJLdgyv775A== X-CSE-MsgGUID: ZHJ7/g89S+2s46ZYCW54eQ== X-IronPort-AV: E=McAfee;i="6800,10657,11645"; a="85329366" X-IronPort-AV: E=Sophos;i="6.21,155,1763452800"; d="scan'208";a="85329366" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Dec 2025 05:01:24 -0800 X-CSE-ConnectionGUID: x/NkBWquQsq//QWlE3IxaQ== X-CSE-MsgGUID: jQwowEbvSneH/HQwBEgkBw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,155,1763452800"; d="scan'208";a="198057475" Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24]) by orviesa009.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Dec 2025 05:01:25 -0800 Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Wed, 17 Dec 2025 05:01:23 -0800 Received: from ORSEDG902.ED.cps.intel.com (10.7.248.12) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29 via Frontend Transport; Wed, 17 Dec 2025 05:01:23 -0800 Received: from MW6PR02CU001.outbound.protection.outlook.com (52.101.48.58) by edgegateway.intel.com (134.134.137.112) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Wed, 17 Dec 2025 05:01:22 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fb5VGfabGGAhdk3Lc/6D+KaShDRZiq1knXUMiYPTa/JPpJYw7npMiwB2GU1MqmqbDAJWArqlyrbDBmzaWMcrd0bHJ+YHq5G2q9qd7zckgBIoAfF4hRnSi6txLGFHuWjLNn7YHN/Ze4ViPu0T8KSiktCpC1zF2OcOUq3jyOcntXadg+8YPyqk1E+5QTGQ9XWPWMwufmLucvh2hYgDFkyZdSRUdOwEGuDu04OjJVJpOg+Sf4vqwEA9oyLtayq9ZEPFfyFubqg4Xpm88hC/d45zfgoD29M5PCv8lhrfHgEDn3Di0UP9aY12p57iXDHws7eCapikguet09EmXZ+l/vu4GQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HKnE+fFJ2khpvBVeZ0ETGtAnGY9UVnuPj5i3PYR1j+E=; b=O78G6t63POxf2j4XG9z2SKDk7dG+NIeNqzImfIWNifwZYsTxD718cuR1cB9Jo2w/nbSHasJgQ9NY2uGLqZtq21fm/cySaeHfXe6FYC4w4dRJwvSmnROf8eCxHnE1JvzwbgqYbbaWTsHFzGp43YGhieqdyTkK/iMroQGXIvwWnagPgeCfqRrG5T9+rjTkSEU+9zCeJuL8uQ/aGxkGyoPWJrqnHXAqVPe5B/vpF4ys/rVdU383bJo8hbTigA28oyf9MDxa3PdqWDXw/CKgT7ICaH4iQOKodgufZCsZ0CJSDwyFbA4c7Wnq0TCWwyffGsxipb6Av1z7l4y33tf+0+EOaA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB6020.namprd11.prod.outlook.com (2603:10b6:8:61::19) by IA1PR11MB7821.namprd11.prod.outlook.com (2603:10b6:208:3f0::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Wed, 17 Dec 2025 13:01:19 +0000 Received: from DM4PR11MB6020.namprd11.prod.outlook.com ([fe80::4af6:d44e:b6b0:fdce]) by DM4PR11MB6020.namprd11.prod.outlook.com ([fe80::4af6:d44e:b6b0:fdce%4]) with mapi id 15.20.9412.011; Wed, 17 Dec 2025 13:01:19 +0000 Message-ID: <9d6dbc7e-19bd-4b41-896f-1307470adb7a@intel.com> Date: Wed, 17 Dec 2025 21:01:05 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 23/23] -- DO NOT APPLY!!! -- sched/cache/debug: Display the per LLC occupancy for each process via proc fs To: Aaron Lu CC: Peter Zijlstra , Ingo Molnar , "K Prateek Nayak" , "Gautham R . Shenoy" , Vincent Guittot , "Juri Lelli" , Dietmar Eggemann , Steven Rostedt , Ben Segall , "Mel Gorman" , Valentin Schneider , "Madadi Vineeth Reddy" , Hillf Danton , Shrikanth Hegde , Jianyong Wu , Yangyu Chen , Tingyin Duan , Vern Hao , Vern Hao , Len Brown , Aubrey Li , Zhao Liu , Chen Yu , Adam Li , Tim Chen , , Tim Chen References: <0eaf9b9f89f0d97dbf46b760421f65aee3ffe063.1764801860.git.tim.c.chen@linux.intel.com> <20251217095912.GB2073381@bytedance.com> Content-Language: en-US From: "Chen, Yu C" In-Reply-To: <20251217095912.GB2073381@bytedance.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SG2PR01CA0129.apcprd01.prod.exchangelabs.com (2603:1096:4:40::33) To DM4PR11MB6020.namprd11.prod.outlook.com (2603:10b6:8:61::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR11MB6020:EE_|IA1PR11MB7821:EE_ X-MS-Office365-Filtering-Correlation-Id: 52d48e2d-c580-41f2-4a9d-08de3d6c5f26 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?NnJrdmk5bGVMZXpiYkMrejNaczVDbmsvRXVWY2F5WDFCeDc2dFVpMWdtSW9x?= =?utf-8?B?M242SE1Ecmxva1VTYWk5Qm82QU5oZnE3SWZnMDR5OE11OXgxamh4cnhxZ1p5?= =?utf-8?B?RzZyZVd2OHFscG5Mb3FOZDFIbmh2TXdscEwzMklnS05pN3NuRzhNK1dEV2hF?= =?utf-8?B?bk9PNE9uWDlrOUVweUxXcVBKcDQ4QzlYbHVoMUU4QW1oWXo1OGp5Tml3OGRt?= =?utf-8?B?YS9sK0k5cUxyTGhXUEV0WTc1ZUd1RlRIKzZOL0FUc1RuaXd0ZVVhWXhtMVYv?= =?utf-8?B?TGlYRXVtekNUZEgraHNyRWJjelErTkhPTDVvSUpsVDExaW1jVWFNalVTWU8w?= =?utf-8?B?Z1FjSTNXOVhITkxSc2xsUDZxTXlkeW9MdGIzeTZlR3N2V2hRZlZqN3BieWRO?= =?utf-8?B?MExyTUIvZzFyR09YdVhycTJZK2NBNTEzYmRVc1FHNlRqRmdkZVcyLzFIaUJX?= =?utf-8?B?bjdQRk96YW5rTWNGdUx1Qysvc1ZzZGRMK2Z0YmR0c01GMFM0ME9HTnd4bWZr?= =?utf-8?B?QlBtWko3VWJ1TDZMVVUxVlU1cTY0RkJmMGQxdXRSZTBJb2pLVXpsU3Mralhk?= =?utf-8?B?cUdNSFVXMUNicmdvSlB6Mm9jdDJEeUFxcXhWM05xUFhlVjEyMzN3Mit6M09y?= =?utf-8?B?NXRqOTJPbkxIRlpzR3BkNVVJZXJ3eSs1QkpaMzZsYmw1UWpTeXpBWVJHeXNu?= =?utf-8?B?ZHRINy8vSnlCK1RnZm1aais3TFAxQjRFWVN6Yk9UanAzaWwvVlkzN0ZNWkZY?= =?utf-8?B?VXU2QlRPZ1RHSldWRElPSDNxTFdtUDZMeTFtQVNKNWFvVDMzcksyNUpPaXly?= =?utf-8?B?Y2hlb1laR241Tk45czV2NDAvL1RRb2tTQlJTWEFsaDNZREh4aVNCWTNXWHRT?= =?utf-8?B?aE5URUQ1aEZNWEJIaU5UNlNHNld1QVM2K3VxNVY3bVJvRXFSOEkrcHVKN0dz?= =?utf-8?B?aXZCakd3QUFNNlYxR3pZWFZHT1JHNDRhOWtHdmFiY2Z2cm9reURwWm55d0dv?= =?utf-8?B?VExUZGptNGFYeVlSSzZ1cUZseG1HUHphcFhUaFJFQ0VZbWg1OEU4TkxFTThX?= =?utf-8?B?K1gzMmpNYVpLNDcyaFU1clJ6Sk95QUZBZmpFeVdrd1RJNDhQR0h3TGR4cGsw?= =?utf-8?B?R1BKTGNDSVBQd2UvMm1BelJjOGZFNDlIQ3hZYkpMK2hTQVREQzJvVHVTNmJO?= =?utf-8?B?eVc3eW9GRllDNEpFWUNnSGx6elJtNWxjNmtkL2JPZXBGamFoZy9abDg0c1V6?= =?utf-8?B?SERqaTNycDJwODluay9CS2RxU1JNZlFrdGZQM0s0VUF2NnJvQ0J3VGJLUGJi?= =?utf-8?B?c2hTUUpNMUxJdS9VWlBNcFQ3K0JPc2RhV1cxbE02SDZhM1pLd1Vxam1VRloz?= =?utf-8?B?Vkp4VFRma2VPT2R4bExOVU5rbWtJQzhRVVArS2hsU0UxNk96NVdHZzBBNnRG?= =?utf-8?B?alovcC9UMG9nSjY2OTl0M2pQL3BheFpIYTI2VnZyYXdCZS9uSWk2REJ2eG9W?= =?utf-8?B?QWt1Qlc5NG1qSi9OYnV4NFNlMXpORlY5eHYzOExOR3ltcWJCRjh6bmF4UGJj?= =?utf-8?B?ZkdrTWc1d0hmUFNFSWdFL1RETmFXcUxOTi95RTJYazMxWjVRU2RuN0E2eFF4?= =?utf-8?B?SGZQakVuNE1SMFJkdTRmSjlxeU9tSmRHeldBTEtadEF5c2pNWGVEQkhQNGxu?= =?utf-8?B?ZUN3NXVucUF6S1ByZVUvWUowMVhPbS9mRDNpY2FKTjVBSzZmemIyRFJkWll2?= =?utf-8?B?cVcvbnlqRUJiNkpIYkxhaGd1L1h2LzZIV1BoY3JrdnJkd2NIejBHL2tNb0M1?= =?utf-8?B?TjMvUldMcHVaK0ExY2VqbDlyWWlaUDI5aFdVUGszcDNtWHBJY3ByenNUVkNx?= =?utf-8?B?SGZyVm1hdWVlMVBXUENFNXAwRUlseTA5NHc2YTIwVVpHSjVBcUtmaDFrVXor?= =?utf-8?Q?w2utvZlPHK328pIYRuMe9bR6EZXMt7DM?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB6020.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cDVMSkNGdXYwMldPWDlOUklpLzhJbnc3U1VjYm85TWxYODNib1lYQUpiR2l1?= =?utf-8?B?TzZYb0htdU03S3pINE9aL25ZeHY1NUtod1g3b1ljNDUrdERpSjhLRHlyNnZt?= =?utf-8?B?SEc4Q0lIOW0xV1ZZLzdKKzM3YmJJUmZTczVodk1TYTlPZjN6RDdBYmd0ZWNt?= =?utf-8?B?d0dtKys1TUtJdWM4a2laZFFLN3FtTERocVZLblFBUzlCUzhqVi9kQTFKYlJI?= =?utf-8?B?WVhOZldXTnFpWkQxQjdmNDZPdmFyczZadWt5ZWpYR2wrUnM3aWxkRjY5OVJm?= =?utf-8?B?WHVjWExKaUFpWEFtQ2NYSGNTMzhQbml1YStWempoOWZLVHBNVjBKZG9FVjE4?= =?utf-8?B?RFlVOWF2MEpHSk1jK0lzUTJYOEFhbW1sS3dGMTBQNFVJeGQxUUZmV2pJS08y?= =?utf-8?B?L3F5SHFkNFkvdkZOc1pYQkgydHM4L2Nra2p5bXRjTnVqN2lTelMwOEduOUcz?= =?utf-8?B?ZG51TDJGS2tJNWtWcWJQNVJZYTV4SnVDVE51OXVVM29FS1VZb1U3WHU2UjIv?= =?utf-8?B?dlRJUDNyUENHVjdYSjg5SjJQOVlsVmJwZWxjaFNoMUMvYmEvWXdoME4wRjBo?= =?utf-8?B?UkJjR0hscnBlQVBrZEo5aTZHMGR4RmU4SWRuVUZMaUl6VTNnNDYyRmFVYWtC?= =?utf-8?B?T1hyVitrT094dHFQckhIWGswZjRSTmRrbVExSW5iZGZBZEVSRmkxUHNDVFBQ?= =?utf-8?B?Rnl6WGRPNnhyeUQ1S2ZFT21VeDhxL21UQ2hBL29VTTJrL2FudTlrR3FldytE?= =?utf-8?B?Z3ltby9zamFGdG15TGhqeEVKS01nNjlLWkp3NkxKVGtLTjVnSkd0L0hkb21h?= =?utf-8?B?NldVZHN5VWl5RkFWSEtrSmpNZ0M5SE1jUWRxbG5Gb1RwbjdjQ0RHczdNaFk0?= =?utf-8?B?L2ZFM255WjM1aGx6SUtHSzJ2QVluT2NVU3ZodXM2UXB1WUNEVnRZWGNnNGh4?= =?utf-8?B?dWk1czZuUzVKbWVDWFhhYitYVGpMRmppS0wyWHdFQnVtcEFKMDdSY2paQmhJ?= =?utf-8?B?ZW5LNXkzVzBuR1oxdWplOVcxMmprTE9ETVk5T1hvV1kzV21QUnNRWEwyVmpk?= =?utf-8?B?bG9UcC95TjhObjRUYlRLY1E5cEE3MStpbGR6azJKcnRCRkNyWUtxelZWRTFN?= =?utf-8?B?dkxUZFdIRFRRNTdndDJWNWlDVEJ3U1VoM3ZRQXJWdkxKODBIYS9BVWpxUSt2?= =?utf-8?B?NzFrYmhBRXE4SWtIV3FxYTdHN1RmWVhEL0tUS1JHZDhNQ0taZmd5ZFRNeFlw?= =?utf-8?B?T3RnZVQwVUF6VkJtQUU2aEUwcnlDQkNkQng4TGlyU3U0eWhSblJFenlpNitJ?= =?utf-8?B?VThmNmZSVnR0a05MRWx3KzJERU1ia2lETWxNSVM5a2F5THdsTUFvQ3VSNHVJ?= =?utf-8?B?S0lPeWpORlZwaG10cjJ2QkNyQnpIM096R0VDQVJzblpESFhEUTY2MnBOWjRO?= =?utf-8?B?S3E0TVFKN0JRT2M3cFFVTXJqVFA4S3VMaFFmcFBuTnYrUjZLWUhTOTFoaDFI?= =?utf-8?B?Nk9sOFc3bVU5OS82dnFaZWEzRFViVjBtY1l3bWRQeC9HT1AzbU85SjZmZnZw?= =?utf-8?B?Z1QvbDZEQ2pVMTlXbmFOMjlpNTFrTXJCN3doQ1pMcWFEUStWWHVOVzJoN2tr?= =?utf-8?B?NlZIQUVOWVhhZnVjRlRoMlpPd3hGbHh4RVFkSDlvUmd3VUZoYWRrQXRyNVZh?= =?utf-8?B?NjliNHJMcENRK25vRWtUSVpNdG55Y055QnFvVkJTUjl3YlljL2dhT0J6UkZ5?= =?utf-8?B?a05kZVdweVNPbjJkNlNnUVZiSWhHNG5WUW0ydDE2QVhFM2syN1d2aHRkNEtK?= =?utf-8?B?cGZkNGZWREZ5RXlOSmYyOVRWT1BDcEdkRGdvRjRVNm1zaXBDVndRZkgvSkpT?= =?utf-8?B?QzlYMG5abUFNL0JWOVBFMnliUWFCREk5VG9Ja0lxY2I0NjM3bTk5Q081aDk1?= =?utf-8?B?ejdtclNZRUV1VmVOTTNPK0N5b0hnQmVBUXhhV0NZNVoxYmJpempHUVNZM29L?= =?utf-8?B?Z1dMNm1xYmU3V2ZlTDY4THp1M0NEQmdYNVIzckNlZzNIV1hqREY4aFpORXhV?= =?utf-8?B?b3FXZ0F6Q3Y0TjhIZ3E4aXhyejhYbnpMRDRVSS94TTRsRnAxanlTS2dUUVdD?= =?utf-8?Q?y9xMI69hhdH4mqbxUlMNSnAwh?= X-MS-Exchange-CrossTenant-Network-Message-Id: 52d48e2d-c580-41f2-4a9d-08de3d6c5f26 X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB6020.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 13:01:19.8516 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: D+5X1lopx+v5c1M4AWLwiKhSPCrPkTmHQqr11L/B/EChR5HCnV8QkRuBULdTYspYEWBlVuvHAugjBKwbd06RCg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB7821 X-OriginatorOrg: intel.com On 12/17/2025 5:59 PM, Aaron Lu wrote: > On Wed, Dec 03, 2025 at 03:07:42PM -0800, Tim Chen wrote: >> From: Chen Yu >> >> Debug patch only. >> >> Show the per-LLC occupancy in /proc/{PID}/schedstat, with each column >> corresponding to one LLC. This can be used to verify if the cache-aware >> load balancer works as expected by aggregating threads onto dedicated LLCs. >> >> Suppose there are 2 LLCs and the sampling duration is 10 seconds: >> >> Enable the cache aware load balance: >> 0 12281 <--- LLC0 residency delta is 0, LLC1 is 12 seconds >> 0 18881 >> 0 16217 >> >> disable the cache aware load balance: >> 6497 15802 >> 9299 5435 >> 17811 8278 >> >> Signed-off-by: Chen Yu >> Signed-off-by: Tim Chen >> --- >> fs/proc/base.c | 22 ++++++++++++++++++++++ >> include/linux/mm_types.h | 19 +++++++++++++++++-- >> include/linux/sched.h | 3 +++ >> kernel/sched/fair.c | 40 ++++++++++++++++++++++++++++++++++++++-- >> 4 files changed, 80 insertions(+), 4 deletions(-) >> >> diff --git a/fs/proc/base.c b/fs/proc/base.c >> index 6299878e3d97..f4be96f4bd01 100644 >> --- a/fs/proc/base.c >> +++ b/fs/proc/base.c >> @@ -518,6 +518,28 @@ static int proc_pid_schedstat(struct seq_file *m, struct pid_namespace *ns, >> (unsigned long long)task->se.sum_exec_runtime, >> (unsigned long long)task->sched_info.run_delay, >> task->sched_info.pcount); >> +#ifdef CONFIG_SCHED_CACHE >> + if (sched_cache_enabled()) { >> + struct mm_struct *mm = task->mm; >> + u64 *llc_runtime; >> + >> + if (!mm) >> + return 0; >> + >> + llc_runtime = kcalloc(max_llcs, sizeof(u64), GFP_KERNEL); >> + if (!llc_runtime) >> + return 0; >> + >> + if (get_mm_per_llc_runtime(task, llc_runtime)) >> + goto out; >> + >> + for (int i = 0; i < max_llcs; i++) >> + seq_printf(m, "%llu ", llc_runtime[i]); > > I feel it is better to also mark the current preferred LLC of this > process so that I can know how well it works. > Sure. >> + seq_puts(m, "\n"); >> +out: >> + kfree(llc_runtime); >> + } >> +#endif >> >> return 0; >> } > > BTW, is there a way to tell if a process is being taken care of by > 'cache aware scheduling' or it's blocked due to its huge rss or having > too many threads? > > I used below debug code to get these info through schedstat, but maybe I > missed something and there is a simpler method? > > diff --git a/fs/proc/base.c b/fs/proc/base.c > index f4be96f4bd015..c709a1a1bd867 100644 > --- a/fs/proc/base.c > +++ b/fs/proc/base.c > @@ -505,6 +505,7 @@ static int proc_pid_stack(struct seq_file *m, struct pid_namespace *ns, > #endif > > #ifdef CONFIG_SCHED_INFO > +DECLARE_PER_CPU(int, sd_llc_id); > /* > * Provides /proc/PID/schedstat > */ > @@ -522,6 +523,7 @@ static int proc_pid_schedstat(struct seq_file *m, struct pid_namespace *ns, > if (sched_cache_enabled()) { > struct mm_struct *mm = task->mm; > u64 *llc_runtime; > + int mm_sched_llc; > > if (!mm) > return 0; > @@ -533,8 +535,17 @@ static int proc_pid_schedstat(struct seq_file *m, struct pid_namespace *ns, > if (get_mm_per_llc_runtime(task, llc_runtime)) > goto out; > > + if (mm->mm_sched_cpu == -1) > + mm_sched_llc = -1; > + else > + mm_sched_llc = per_cpu(sd_llc_id, mm->mm_sched_cpu); We can use llc_id(mm->mm_sched_cpu). > + > + seq_printf(m, "%llu 0x%x\n", mm->nr_running_avg, mm->mm_sched_flags); > for (int i = 0; i < max_llcs; i++) > - seq_printf(m, "%llu ", llc_runtime[i]); > + seq_printf(m, "%s%s%llu ", > + i == task->preferred_llc ? "*" : "", > + i == mm_sched_llc ? "?" : "", > + llc_runtime[i]); > seq_puts(m, "\n"); > out: > kfree(llc_runtime); > diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h > index 255c22be7312f..06bb106d1b724 100644 > --- a/include/linux/mm_types.h > +++ b/include/linux/mm_types.h > @@ -1048,6 +1048,7 @@ struct mm_struct { > raw_spinlock_t mm_sched_lock; > unsigned long mm_sched_epoch; > int mm_sched_cpu; > + int mm_sched_flags; > u64 nr_running_avg ____cacheline_aligned_in_smp; > #endif > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 205208f061bb3..ab1cdba65d389 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -1237,12 +1237,20 @@ static inline int get_sched_cache_scale(int mul) > return (1 + (llc_aggr_tolerance - 1) * mul); > } > > +#define MM_SCHED_EXCEED_LLC_CAPACITY 1 > +#define MM_SCHED_NO_CACHE_INFO 2 > +#define MM_SCHED_EXCEED_LLC_NR 4 > +#define MM_SCHED_NR_THREADS 8 > + > static bool exceed_llc_capacity(struct mm_struct *mm, int cpu) > { > unsigned int llc, scale; > struct cacheinfo *ci; > unsigned long rss; > > + mm->mm_sched_flags &= ~MM_SCHED_NO_CACHE_INFO; > + mm->mm_sched_flags &= ~MM_SCHED_EXCEED_LLC_CAPACITY; > + Maybe we can do some read-comparison before writing the flags, previously we found that writing the per-process mm struct is very expensive, so maybe avoid writing to it as much as possible. I'll fold your changes and do the test. Thanks! Thanks, Chenyu