From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 69B0BC4338F for ; Tue, 27 Jul 2021 22:25:41 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2ED0760F51 for ; Tue, 27 Jul 2021 22:25:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 2ED0760F51 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 814506E252; Tue, 27 Jul 2021 22:25:36 +0000 (UTC) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 61E3F6E0BF; Tue, 27 Jul 2021 22:25:34 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10058"; a="298121076" X-IronPort-AV: E=Sophos;i="5.84,275,1620716400"; d="scan'208";a="298121076" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Jul 2021 15:25:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,275,1620716400"; d="scan'208";a="498973339" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga004.fm.intel.com with ESMTP; 27 Jul 2021 15:25:25 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Tue, 27 Jul 2021 15:25:24 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Tue, 27 Jul 2021 15:25:24 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.171) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Tue, 27 Jul 2021 15:25:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EP9HYqdWHEzriSB0ErHhk2cpeOkHz/hB/hBCjZvmwmHAdmG7qJXfO/mcW0a3A8POzaxnk1GeMXrybKLG/3fFTgJz/Pf8xmSK8hHDILPjyjQOoQRfT/DnhCcHntKW0FzqfQgatdyQrsOC/sCpDzXJ7TXUL4RIo3fKrYU8xLH9xtzeI//DkBxyKTkHAwkXYw7aGPr5xn1StwK1OS5biWw7unnn89hQW5jZ1JJI3JkXEuHmnbmMMKoYLdqKSAOWMSMHYJcf1J19UQMDTfuCPsGuK2XQQKBELLHfzK+zrTSJJzoR6SwdE7HobvgEoMW6/33LFlE54pkcsEfW0amhoOXC0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MP+pEffQorasWPqs8PTdWzPuhXWsx+tFFaahS28uwxU=; b=McovBN3KTEEQq+mBkIaL4CyTQWUnRMXfZTwIytY4J13Cmm2+KkU2l/W6E/lqKsibbFSf+pY4dtf9F6ZB34C+J5oyWp8Poe5MrzviRjdXJ2IXWeeGeqyxRQVCDmfLr8faBp/fFFwbW3sBuu8cx8npi51JWHTIQ/W72JCxGBSCAl78EapmR+dVHM47X5UNG/BUQlbVfXH5zG+CM0e6Rs7ORJkivyx8SQFXQy5SMvUnIpvdp7K8h8Eaadbtz0oaYuj+3ZOmkzPbOs9EiStyVjuetpTP6T5qQrcpufZircJfGvK9G2HLqcr1yVSetgG7VYFdFiB7SUnHms6iHK3fSrK3jw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MP+pEffQorasWPqs8PTdWzPuhXWsx+tFFaahS28uwxU=; b=muh50kJk5YYnHoUC0vwFhx5bmhS/ZKPIcw9cr8AQwzV3FXQWWafoz4YFWiEUuTTTG3BddfUxvsvACdCvaUPCh8zzWdSba9kTVkI6ijdc3K4tcKWTR6BAAaXB8dkdU7sYnAGMgs/7HLkhoN77N3xKu6IbjaeDdwLfVJjv0m95Oh8= Authentication-Results: lists.freedesktop.org; dkim=none (message not signed) header.d=none; lists.freedesktop.org; dmarc=none action=none header.from=intel.com; Received: from CO6PR11MB5634.namprd11.prod.outlook.com (2603:10b6:5:35d::20) by CO6PR11MB5652.namprd11.prod.outlook.com (2603:10b6:5:35e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.26; Tue, 27 Jul 2021 22:25:22 +0000 Received: from CO6PR11MB5634.namprd11.prod.outlook.com ([fe80::5d5e:b6bf:aafa:ecd4]) by CO6PR11MB5634.namprd11.prod.outlook.com ([fe80::5d5e:b6bf:aafa:ecd4%9]) with mapi id 15.20.4352.032; Tue, 27 Jul 2021 22:25:22 +0000 To: Matthew Brost References: <20210726190800.26762-1-vinay.belgaumkar@intel.com> <20210726190800.26762-15-vinay.belgaumkar@intel.com> <20210727191656.GA48855@DUT151-ICLU.fm.intel.com> From: "Belgaumkar, Vinay" Message-ID: <905ee3e8-19e2-569d-eac7-321aa9747ae5@intel.com> Date: Tue, 27 Jul 2021 15:25:20 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 Thunderbird/78.12.0 In-Reply-To: <20210727191656.GA48855@DUT151-ICLU.fm.intel.com> Content-Language: en-US X-ClientProxiedBy: CO2PR04CA0143.namprd04.prod.outlook.com (2603:10b6:104::21) To CO6PR11MB5634.namprd11.prod.outlook.com (2603:10b6:5:35d::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.1.71] (99.88.121.38) by CO2PR04CA0143.namprd04.prod.outlook.com (2603:10b6:104::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.18 via Frontend Transport; Tue, 27 Jul 2021 22:25:21 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 97ef08dd-c3ed-4584-cab6-08d9514d6c53 X-MS-TrafficTypeDiagnostic: CO6PR11MB5652: X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4125; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NBDoyVEzafKs7x9zzDZmrUdVxMhmgTvS5o1IljyHeN9EZon27h6FcUxCGi03KsUlpto5xtZJA16WRNeoqd9mWDdpL4A/btlQ86+jRimpAHTjkV9be+L8JL4/3BSMtGj2jmqBqAROi6Ro1mcaZRrehiq0H9meQKCMdRHk0kzIA6b3bfwgkdSJYVsse4UbIlQKXnjuiBY/ISdurdx4AdGrllX5/nOlGeMabhOFOHM97sLj7Ynq/KO49QiSLPEiy2x3MUtCZ3qvMQNcMhoQHFDAv4lzpDX6yO1iin5O7vS263nFGsGAJ+2FlsBle3yxXkg5maSd0DBrHWI3ypS9hTcfmo6xY0AY2kbEMf9JfmM70XCTYGEYzdR2s3TY9tqrUPWLDbQjlJFElsBqSa4QyZ9B99eRe2AU5UlYZkCSZa2SRPJZhVrd+lHdCjVa2Qt48Mu240lXXjvDAPk0I6i9h+R+EwLvn7Q8WLe+BfVxkpmYK5MV/QbIAUOSd6uLimNAbFvIBK7ePj8kXCmN98glEVByLkv3jYp9MA48/eWrVTVl8DFK4YVB9/PrveXSAhDHmoBS3Y1nFJcbTCQGPaIqn105M0GDbWkfV7cbbUltF0g7C/UMmTD4nWV472RRCmSO6yRqLhWfo+jBhgeqseKO156YfhSOIZl3xnrKyWTqO6tVty7hV4LI6ob/DYlXh8jaEdvFeG2Gu87kWLuYdGPiHSNUAIqODM0p+FLJ+rXPtiba99hfWo3TUOvC1Sd6zzSceHLR X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR11MB5634.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(376002)(366004)(136003)(346002)(396003)(26005)(38100700002)(86362001)(83380400001)(5660300002)(53546011)(2906002)(186003)(6636002)(8676002)(2616005)(4326008)(31696002)(36756003)(316002)(66476007)(66556008)(37006003)(6486002)(6862004)(478600001)(8936002)(450100002)(30864003)(956004)(66946007)(16576012)(31686004)(45980500001)(43740500002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dmRpbk1ZblFleEV5UDhwa0ZiNmg3RFVMbVUwc2lhTXM0d2Y0RG9FcHVOVmho?= =?utf-8?B?UmhFMGZMTElrUlFFaXZoNUtBZEp4KzJmTzF1UGtGWUZ3TUkrS2dxS0xwYkIv?= =?utf-8?B?RUdLN3VKL1lNa042NHBOY0pjdDRuTmsyemdTNUVVZmNjQ25DZ2p6d2MvV1VW?= =?utf-8?B?ekcydmpCWDA2RXN0WFRsME5vMzFOdTJ3WDNnUXh4UDFYUTFPNFYzZ25tdXpn?= =?utf-8?B?UTVTdTdPWG9QRkxna1grMkw3QTJVRGEwelliSCtkS0h3N0R1N21nbGhzdHhs?= =?utf-8?B?VVpsaXdWVWpCSHdORjJsdGErdkNSdWZpTzNHQ3JWWEVJZ1pKR3Z6M0pVOGUv?= =?utf-8?B?TDVvWXBMK3dmYlZ6NVZxMkdBU2FGQTZTWGQ2aVZDOUVKd1BiWWhienljOFJW?= =?utf-8?B?QjR6aVd1WGtsZlU1OEc3eEFDSFZia3FOVmJOSlQ1ODNFb1QxT2FrNjVrV2N1?= =?utf-8?B?LzB0R3QxWmtGNVlSV3hxdnozNllPbTlqekZTMXgwNzZrajlYU3R2b2N3SUxi?= =?utf-8?B?SWJQUlhDZ3R0SVViRDFiZXVWR2pybzBlWW9GS1B0QUxURDRzaHVaNmUwQ3BI?= =?utf-8?B?QUZVUmFLWE1MZERzaHRUcXpjZ09QeEE4d2hXSkVmSVlUWXBwOEVEek1LeEVB?= =?utf-8?B?QTlMa3NJZ2RSUmJ3Tll2U2NXMFgwY0pha0tYQTdnNk5rdU9NTnF4NGlRUFpa?= =?utf-8?B?UVBMMHhha281cmZBVE1iaU9aU0I1Titmc0Z0WVJSeUxHR1oyR1NzbXFEVzBY?= =?utf-8?B?UklvTHRxN3d2RFQ1WE9aSjVvSFJsSVVXYWhKNWU2bm5Fd2pkNVIwcW1oMkZV?= =?utf-8?B?K3FqaXBRTi9CN1NENms3YTU0WmZHeDlZVzJuNkNFREtDbktuVmNLeTg4TDhj?= =?utf-8?B?NkpLS2pVTnh3eU5mOGgxNk1qU3BZcjdjM3NjNHB5NTRva0dydzVjZnNWdytY?= =?utf-8?B?WWRVTytEMEVBckF6Uys1SnVtL29uVUx1ZlVMT21jOElucjl0RytuN1V4aEtM?= =?utf-8?B?QldWWUhWWjNTd3JVc056ZWpTUXNOaWFBcERtVFhDRUt5NGc4cHlsMVMwTjRv?= =?utf-8?B?RGpKdVlzMytIdVFIN1M0WWVZYlA3RFY1YWxTb2hWM0t0bFdVUkVGZy9ra0hZ?= =?utf-8?B?WUdRQ2tDNUhQaXBHNzBLdkpWQ0dsU2NDQWZ6R0Fmc3FUK2xWaTRkNEpJTjRV?= =?utf-8?B?Z0pyUW8zaUJnMjhrZmt1NUdsV2grbC9HdU1oQy9SMXNrTTMzYVhMdXZDdmsz?= =?utf-8?B?ZS81N2RhMzhRNkt4VG9Pblo1cE1GOXVWUng1SkFCU2d0b1NiLzc2R0Q1NVJO?= =?utf-8?B?N2hlSFNOdndBQWZJUlR5ZS9BVm0rYlBKY3F5S2pJTzBWc0RNczhDM1QveXpP?= =?utf-8?B?NGUxNkJETkx1RG9jVzIwVHAxMmVIeTJWaGxJM2xRYVRRMU9Zc3Z5cS9Zei9x?= =?utf-8?B?Zm00bmI2U291K1BVeTk5bVJvcUhMaW5jcGNBYkpTQmtQVHBNWlpkU0o1RHpq?= =?utf-8?B?T01CUWN0Wk9jOXZ4bklQVllQbjlJaHhmQXdUSmNDMHpid1VhMkt5ZHlzbTB5?= =?utf-8?B?b29VZjZwZThHTTZ3ZVBCN0IwSkxRdk1UTWM1TFpkVEMydXlxUmIxZ29ON1ow?= =?utf-8?B?VGJvY2hzYTMyZlRPc3JMYzN1ZXNtZDV5a0QwRmlCZWlrUVV4ZWVjODA3WE9W?= =?utf-8?B?dUVhUXhEbGlpSFVVeFYySG92WUMzUWVUTzVMbHJhbWZYMWFid1NibitNeVhQ?= =?utf-8?Q?ytOPbQHrj+tG6GpfTkb+bchfZoG0CVQa6Ud9kHK?= X-MS-Exchange-CrossTenant-Network-Message-Id: 97ef08dd-c3ed-4584-cab6-08d9514d6c53 X-MS-Exchange-CrossTenant-AuthSource: CO6PR11MB5634.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jul 2021 22:25:22.2722 (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: cFqSZ+cjNmoZ9pQWpkY8nbx2g7hQ4wmtXYmN2HiFtppVDWEdUSUkgFcuak0JkWvYYiYfjmQ9dPI3yhIa5IMQymdeBRMFS4Zmi6+zo31kTZ4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR11MB5652 X-OriginatorOrg: intel.com Subject: Re: [Intel-gfx] [PATCH 14/15] drm/i915/guc/slpc: Add SLPC selftest X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" CgpPbiA3LzI3LzIwMjEgMTI6MTYgUE0sIE1hdHRoZXcgQnJvc3Qgd3JvdGU6Cj4gT24gTW9uLCBK dWwgMjYsIDIwMjEgYXQgMTI6MDc6NTlQTSAtMDcwMCwgVmluYXkgQmVsZ2F1bWthciB3cm90ZToK Pj4gVGVzdHMgdGhhdCBleGVyY2lzZSB0aGUgU0xQQyBnZXQvc2V0IGZyZXF1ZW5jeSBpbnRlcmZh Y2VzLgo+Pgo+PiBDbGFtcF9tYXggd2lsbCBzZXQgbWF4IGZyZXF1ZW5jeSB0byBtdWx0aXBsZSBs ZXZlbHMgYW5kIGNoZWNrCj4+IHRoYXQgU0xQQyByZXF1ZXN0cyBmcmVxdWVuY3kgbG93ZXIgdGhh biBvciBlcXVhbCB0byBpdC4KPj4KPj4gQ2xhbXBfbWluIHdpbGwgc2V0IG1pbiBmcmVxdWVuY3kg dG8gZGlmZmVyZW50IGxldmVscyBhbmQgY2hlY2sKPj4gaWYgU0xQQyByZXF1ZXN0cyBhcmUgaGln aGVyIG9yIGVxdWFsIHRvIHRob3NlIGxldmVscy4KPj4KPj4gdjI6IEFkZHJlc3MgcmV2aWV3IGNv bW1lbnRzIChNaWNoYWwgVykKPj4gdjM6IENoZWNrcGF0Y2goKSBjb3JyZWN0aW9ucwo+Pgo+PiBT aWduZWQtb2ZmLWJ5OiBWaW5heSBCZWxnYXVta2FyIDx2aW5heS5iZWxnYXVta2FyQGludGVsLmNv bT4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcnBzLmMgICAgICAg ICAgIHwgICAxICsKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9zbHBjLmMg ICAgICAgfCAzMTEgKysrKysrKysrKysrKysrKysrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3Qvc2VsZnRlc3Rfc2xwYy5oICAgICAgIHwgIDEyICsKPj4gICAuLi4vZHJtL2k5MTUvc2VsZnRl c3RzL2k5MTVfbGl2ZV9zZWxmdGVzdHMuaCAgfCAgIDEgKwo+PiAgIDQgZmlsZXMgY2hhbmdlZCwg MzI1IGluc2VydGlvbnMoKykKPj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Qvc2VsZnRlc3Rfc2xwYy5jCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3NscGMuaAo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcnBzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9ycHMuYwo+PiBpbmRleCA0OGQ0MTQ3MTY1YTkuLjYyMzczMzI4MzVmZSAxMDA2NDQKPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcnBzLmMKPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcnBzLmMKPj4gQEAgLTIzMTgsNCArMjMxOCw1IEBAIEVY UE9SVF9TWU1CT0xfR1BMKGk5MTVfZ3B1X3R1cmJvX2Rpc2FibGUpOwo+PiAgIAo+PiAgICNpZiBJ U19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9TRUxGVEVTVCkKPj4gICAjaW5jbHVkZSAic2VsZnRl c3RfcnBzLmMiCj4+ICsjaW5jbHVkZSAic2VsZnRlc3Rfc2xwYy5jIgo+PiAgICNlbmRpZgo+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfc2xwYy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfc2xwYy5jCj4+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0Cj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uNTAxOGY2ODY2ODZmCj4+IC0tLSAvZGV2L251bGwK Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfc2xwYy5jCj4+IEBAIC0w LDAgKzEsMzExIEBACj4+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4+ICsvKgo+ PiArICogQ29weXJpZ2h0IMKpIDIwMjEgSW50ZWwgQ29ycG9yYXRpb24KPj4gKyAqLwo+PiArCj4+ ICsjaW5jbHVkZSAic2VsZnRlc3Rfc2xwYy5oIgo+PiArCj4+ICsjZGVmaW5lIE5VTV9TVEVQUyA1 Cj4+ICsjZGVmaW5lIEgyR19ERUxBWSA1MDAwMAo+PiArI2RlZmluZSBkZWxheV9mb3JfaDJnKCkg dXNsZWVwX3JhbmdlKEgyR19ERUxBWSwgSDJHX0RFTEFZICsgMTAwMDApCj4+ICsKPj4gK3N0YXRp YyBpbnQgc2V0X21pbl9mcmVxKHN0cnVjdCBpbnRlbF9ndWNfc2xwYyAqc2xwYywgdTMyIGZyZXEp Cj4+ICt7Cj4+ICsJaW50IHJldDsKPj4gKwo+PiArCXJldCA9IGludGVsX2d1Y19zbHBjX3NldF9t aW5fZnJlcShzbHBjLCBmcmVxKTsKPj4gKwlpZiAocmV0KQo+PiArCQlwcl9lcnIoIkNvdWxkIG5v dCBzZXQgbWluIGZyZXF1ZW5jeSB0byBbJXVdXG4iLCBmcmVxKTsKPj4gKwllbHNlIC8qIERlbGF5 IHRvIGVuc3VyZSBoMmcgY29tcGxldGVzICovCj4+ICsJCWRlbGF5X2Zvcl9oMmcoKTsKPj4gKwo+ PiArCXJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgc2V0X21heF9mcmVxKHN0 cnVjdCBpbnRlbF9ndWNfc2xwYyAqc2xwYywgdTMyIGZyZXEpCj4+ICt7Cj4+ICsJaW50IHJldDsK Pj4gKwo+PiArCXJldCA9IGludGVsX2d1Y19zbHBjX3NldF9tYXhfZnJlcShzbHBjLCBmcmVxKTsK Pj4gKwlpZiAocmV0KQo+PiArCQlwcl9lcnIoIkNvdWxkIG5vdCBzZXQgbWF4aW11bSBmcmVxdWVu Y3kgWyV1XVxuIiwKPj4gKwkJCWZyZXEpOwo+PiArCWVsc2UgLyogRGVsYXkgdG8gZW5zdXJlIGgy ZyBjb21wbGV0ZXMgKi8KPj4gKwkJZGVsYXlfZm9yX2gyZygpOwo+PiArCj4+ICsJcmV0dXJuIHJl dDsKPj4gK30KPj4gKwo+PiAraW50IGxpdmVfc2xwY19jbGFtcF9taW4odm9pZCAqYXJnKQo+PiAr ewo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOwo+PiArCXN0cnVjdCBp bnRlbF9ndCAqZ3QgPSAmaTkxNS0+Z3Q7Cj4+ICsJc3RydWN0IGludGVsX2d1Y19zbHBjICpzbHBj ID0gJmd0LT51Yy5ndWMuc2xwYzsKPj4gKwlzdHJ1Y3QgaW50ZWxfcnBzICpycHMgPSAmZ3QtPnJw czsKPj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4+ICsJZW51bSBpbnRlbF9l bmdpbmVfaWQgaWQ7Cj4+ICsJc3RydWN0IGlndF9zcGlubmVyIHNwaW47Cj4+ICsJdTMyIHNscGNf bWluX2ZyZXEsIHNscGNfbWF4X2ZyZXE7Cj4+ICsJaW50IGVyciA9IDA7Cj4+ICsKPj4gKwlpZiAo IWludGVsX3VjX3VzZXNfZ3VjX3NscGMoJmd0LT51YykpCj4+ICsJCXJldHVybiAwOwo+PiArCj4+ ICsJaWYgKGlndF9zcGlubmVyX2luaXQoJnNwaW4sIGd0KSkKPj4gKwkJcmV0dXJuIC1FTk9NRU07 Cj4+ICsKPj4gKwlpZiAoaW50ZWxfZ3VjX3NscGNfZ2V0X21heF9mcmVxKHNscGMsICZzbHBjX21h eF9mcmVxKSkgewo+PiArCQlwcl9lcnIoIkNvdWxkIG5vdCBnZXQgU0xQQyBtYXggZnJlcVxuIik7 Cj4+ICsJCXJldHVybiAtRUlPOwo+PiArCX0KPj4gKwo+PiArCWlmIChpbnRlbF9ndWNfc2xwY19n ZXRfbWluX2ZyZXEoc2xwYywgJnNscGNfbWluX2ZyZXEpKSB7Cj4+ICsJCXByX2VycigiQ291bGQg bm90IGdldCBTTFBDIG1pbiBmcmVxXG4iKTsKPj4gKwkJcmV0dXJuIC1FSU87Cj4+ICsJfQo+PiAr Cj4+ICsJaWYgKHNscGNfbWluX2ZyZXEgPT0gc2xwY19tYXhfZnJlcSkgewo+PiArCQlwcl9lcnIo Ik1pbi9NYXggYXJlIGZ1c2VkIHRvIHRoZSBzYW1lIHZhbHVlXG4iKTsKPj4gKwkJcmV0dXJuIC1F SU5WQUw7Cj4+ICsJfQo+PiArCj4+ICsJaW50ZWxfZ3RfcG1fd2FpdF9mb3JfaWRsZShndCk7Cj4+ ICsJaW50ZWxfZ3RfcG1fZ2V0KGd0KTsKPj4gKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwg aWQpIHsKPj4gKwkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7Cj4+ICsJCXUzMiBzdGVwLCBtaW5f ZnJlcSwgcmVxX2ZyZXE7Cj4+ICsJCXUzMiBhY3RfZnJlcSwgbWF4X2FjdF9mcmVxOwo+PiArCj4+ ICsJCWlmICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9kd29yZChlbmdpbmUpKQo+PiArCQkJY29u dGludWU7Cj4+ICsKPj4gKwkJLyogR28gZnJvbSBtaW4gdG8gbWF4IGluIDUgc3RlcHMgKi8KPj4g KwkJc3RlcCA9IChzbHBjX21heF9mcmVxIC0gc2xwY19taW5fZnJlcSkgLyBOVU1fU1RFUFM7Cj4+ ICsJCW1heF9hY3RfZnJlcSA9IHNscGNfbWluX2ZyZXE7Cj4+ICsJCWZvciAobWluX2ZyZXEgPSBz bHBjX21pbl9mcmVxOyBtaW5fZnJlcSA8IHNscGNfbWF4X2ZyZXE7Cj4+ICsJCQkJCW1pbl9mcmVx ICs9IHN0ZXApIHsKPj4gKwkJCWVyciA9IHNldF9taW5fZnJlcShzbHBjLCBtaW5fZnJlcSk7Cj4+ ICsJCQlpZiAoZXJyKQo+PiArCQkJCWJyZWFrOwo+PiArCj4+ICsJCQlzdF9lbmdpbmVfaGVhcnRi ZWF0X2Rpc2FibGUoZW5naW5lKTsKPj4gKwo+PiArCQkJcnEgPSBpZ3Rfc3Bpbm5lcl9jcmVhdGVf cmVxdWVzdCgmc3BpbiwKPj4gKwkJCQkJZW5naW5lLT5rZXJuZWxfY29udGV4dCwKPj4gKwkJCQkJ TUlfTk9PUCk7Cj4+ICsJCQlpZiAoSVNfRVJSKHJxKSkgewo+PiArCQkJCWVyciA9IFBUUl9FUlIo cnEpOwo+PiArCQkJCXN0X2VuZ2luZV9oZWFydGJlYXRfZW5hYmxlKGVuZ2luZSk7Cj4+ICsJCQkJ YnJlYWs7Cj4+ICsJCQl9Cj4+ICsKPj4gKwkJCWk5MTVfcmVxdWVzdF9hZGQocnEpOwo+PiArCj4+ ICsJCQlpZiAoIWlndF93YWl0X2Zvcl9zcGlubmVyKCZzcGluLCBycSkpIHsKPj4gKwkJCQlwcl9l cnIoIiVzOiBTcGlubmVyIGRpZCBub3Qgc3RhcnRcbiIsCj4+ICsJCQkJCWVuZ2luZS0+bmFtZSk7 Cj4+ICsJCQkJaWd0X3NwaW5uZXJfZW5kKCZzcGluKTsKPj4gKwkJCQlzdF9lbmdpbmVfaGVhcnRi ZWF0X2VuYWJsZShlbmdpbmUpOwo+PiArCQkJCWludGVsX2d0X3NldF93ZWRnZWQoZW5naW5lLT5n dCk7Cj4+ICsJCQkJZXJyID0gLUVJTzsKPj4gKwkJCQlicmVhazsKPj4gKwkJCX0KPj4gKwo+PiAr CQkJLyogV2FpdCBmb3IgR3VDIHRvIGRldGVjdCBidXNpbmVzcyBhbmQgcmFpc2UKPj4gKwkJCSAq IHJlcXVlc3RlZCBmcmVxdWVuY3kgaWYgbmVjZXNzYXJ5Lgo+PiArCQkJICovCj4+ICsJCQlkZWxh eV9mb3JfaDJnKCk7Cj4+ICsKPj4gKwkJCXJlcV9mcmVxID0gaW50ZWxfcnBzX3JlYWRfcHVuaXRf cmVxX2ZyZXF1ZW5jeShycHMpOwo+PiArCj4+ICsJCQkvKiBHdUMgcmVxdWVzdHMgZnJlcSBpbiBt dWx0aXBsZXMgb2YgNTAvMyBNSHogKi8KPj4gKwkJCWlmIChyZXFfZnJlcSA8IChtaW5fZnJlcSAt IDUwLzMpKSB7Cj4+ICsJCQkJcHJfZXJyKCJTV1JlcSBpcyAlZCwgc2hvdWxkIGJlIGF0IGxlYXN0 ICVkXG4iLCByZXFfZnJlcSwKPj4gKwkJCQkJbWluX2ZyZXEgLSA1MC8zKTsKPj4gKwkJCQlpZ3Rf c3Bpbm5lcl9lbmQoJnNwaW4pOwo+PiArCQkJCXN0X2VuZ2luZV9oZWFydGJlYXRfZW5hYmxlKGVu Z2luZSk7Cj4+ICsJCQkJZXJyID0gLUVJTlZBTDsKPj4gKwkJCQlicmVhazsKPj4gKwkJCX0KPj4g Kwo+PiArCQkJYWN0X2ZyZXEgPSAgaW50ZWxfcnBzX3JlYWRfYWN0dWFsX2ZyZXF1ZW5jeShycHMp Owo+PiArCQkJaWYgKGFjdF9mcmVxID4gbWF4X2FjdF9mcmVxKQo+PiArCQkJCW1heF9hY3RfZnJl cSA9IGFjdF9mcmVxOwo+PiArCj4+ICsJCQlpZ3Rfc3Bpbm5lcl9lbmQoJnNwaW4pOwo+PiArCQkJ c3RfZW5naW5lX2hlYXJ0YmVhdF9lbmFibGUoZW5naW5lKTsKPj4gKwkJfQo+PiArCj4+ICsJCXBy X2luZm8oIk1heCBhY3R1YWwgZnJlcXVlbmN5IGZvciAlcyB3YXMgJWRcbiIsCj4+ICsJCQkJZW5n aW5lLT5uYW1lLCBtYXhfYWN0X2ZyZXEpOwo+PiArCj4+ICsJCS8qIEFjdHVhbCBmcmVxdWVuY3kg c2hvdWxkIHJpc2UgYWJvdmUgbWluICovCj4+ICsJCWlmIChtYXhfYWN0X2ZyZXEgPT0gc2xwY19t aW5fZnJlcSkgewo+PiArCQkJcHJfZXJyKCJBY3R1YWwgZnJlcSBkaWQgbm90IHJpc2UgYWJvdmUg bWluXG4iKTsKPj4gKwkJCWVyciA9IC1FSU5WQUw7Cj4+ICsJCX0KPj4gKwo+PiArCQlpZiAoZXJy KQo+PiArCQkJYnJlYWs7Cj4+ICsJfQo+PiArCj4+ICsJLyogUmVzdG9yZSBtaW4vbWF4IGZyZXF1 ZW5jaWVzICovCj4+ICsJc2V0X21heF9mcmVxKHNscGMsIHNscGNfbWF4X2ZyZXEpOwo+PiArCXNl dF9taW5fZnJlcShzbHBjLCBzbHBjX21pbl9mcmVxKTsKPj4gKwo+PiArCWlmIChpZ3RfZmx1c2hf dGVzdChndC0+aTkxNSkpCj4+ICsJCWVyciA9IC1FSU87Cj4+ICsKPj4gKwlpbnRlbF9ndF9wbV9w dXQoZ3QpOwo+PiArCWlndF9zcGlubmVyX2ZpbmkoJnNwaW4pOwo+PiArCWludGVsX2d0X3BtX3dh aXRfZm9yX2lkbGUoZ3QpOwo+PiArCj4+ICsJcmV0dXJuIGVycjsKPj4gK30KPj4gKwo+PiAraW50 IGxpdmVfc2xwY19jbGFtcF9tYXgodm9pZCAqYXJnKQo+PiArewo+IAo+IFRoaXMgdGVzdCBpcyBy ZWFsbHkgc2ltaWxhciB0byBsaXZlX3NscGNfY2xhbXBfbWluLCBoYXZlIHlvdSB0cmllZCB0bwo+ IGNvbWJpbmUgdGhlc2UgaW50byBhIHNpbmdsZSBmdW5jdGlvbiB3aXRoIGFyZ3VtZW50cz8KCldl IGNvdWxkLCBidXQgdGhlIGZvciBsb29wIGluIGNsYW1wIG1pbiBnb2VzIGZyb20gbWluIHRvIG1h eCB3aGVyZWFzIApjbGFtcF9tYXggZ29lcyBmcm9tIG1heCB0byBtaW4uIEl0J3MgbW9yZSBpbnR1 dGl2ZSBhbmQgZWFzeSB0byAKdW5kZXJzdGFuZCBpZiB3ZSBrZWVwIGl0IHRoaXMgd2F5LgoKPiAK Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKPj4gKwlzdHJ1Y3QgaW50 ZWxfZ3QgKmd0ID0gJmk5MTUtPmd0Owo+PiArCXN0cnVjdCBpbnRlbF9ndWNfc2xwYyAqc2xwYzsK Pj4gKwlzdHJ1Y3QgaW50ZWxfcnBzICpycHM7Cj4+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lOwo+PiArCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwo+PiArCXN0cnVjdCBpZ3Rfc3Bp bm5lciBzcGluOwo+PiArCWludCBlcnIgPSAwOwo+PiArCXUzMiBzbHBjX21pbl9mcmVxLCBzbHBj X21heF9mcmVxOwo+PiArCj4+ICsJc2xwYyA9ICZndC0+dWMuZ3VjLnNscGM7Cj4+ICsJcnBzID0g Jmd0LT5ycHM7Cj4+ICsKPj4gKwlpZiAoIWludGVsX3VjX3VzZXNfZ3VjX3NscGMoJmd0LT51Yykp Cj4+ICsJCXJldHVybiAwOwo+PiArCj4+ICsJaWYgKGlndF9zcGlubmVyX2luaXQoJnNwaW4sIGd0 KSkKPj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4+ICsKPj4gKwlpZiAoaW50ZWxfZ3VjX3NscGNfZ2V0 X21heF9mcmVxKHNscGMsICZzbHBjX21heF9mcmVxKSkgewo+PiArCQlwcl9lcnIoIkNvdWxkIG5v dCBnZXQgU0xQQyBtYXggZnJlcVxuIik7Cj4+ICsJCXJldHVybiAtRUlPOwo+PiArCX0KPj4gKwo+ PiArCWlmIChpbnRlbF9ndWNfc2xwY19nZXRfbWluX2ZyZXEoc2xwYywgJnNscGNfbWluX2ZyZXEp KSB7Cj4+ICsJCXByX2VycigiQ291bGQgbm90IGdldCBTTFBDIG1pbiBmcmVxXG4iKTsKPj4gKwkJ cmV0dXJuIC1FSU87Cj4+ICsJfQo+PiArCj4+ICsJaWYgKHNscGNfbWluX2ZyZXEgPT0gc2xwY19t YXhfZnJlcSkgewo+PiArCQlwcl9lcnIoIk1pbi9NYXggYXJlIGZ1c2VkIHRvIHRoZSBzYW1lIHZh bHVlXG4iKTsKPj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+ICsJfQo+PiArCj4+ICsJaW50ZWxfZ3Rf cG1fd2FpdF9mb3JfaWRsZShndCk7Cj4+ICsJaW50ZWxfZ3RfcG1fZ2V0KGd0KTsKPj4gKwlmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKPj4gKwkJc3RydWN0IGk5MTVfcmVxdWVzdCAq cnE7Cj4+ICsJCXUzMiBtYXhfZnJlcSwgcmVxX2ZyZXE7Cj4+ICsJCXUzMiBhY3RfZnJlcSwgbWF4 X2FjdF9mcmVxOwo+PiArCQl1MzIgc3RlcDsKPj4gKwo+PiArCQlpZiAoIWludGVsX2VuZ2luZV9j YW5fc3RvcmVfZHdvcmQoZW5naW5lKSkKPj4gKwkJCWNvbnRpbnVlOwo+PiArCj4+ICsJCS8qIEdv IGZyb20gbWF4IHRvIG1pbiBpbiA1IHN0ZXBzICovCj4+ICsJCXN0ZXAgPSAoc2xwY19tYXhfZnJl cSAtIHNscGNfbWluX2ZyZXEpIC8gTlVNX1NURVBTOwo+PiArCQltYXhfYWN0X2ZyZXEgPSBzbHBj X21pbl9mcmVxOwo+PiArCQlmb3IgKG1heF9mcmVxID0gc2xwY19tYXhfZnJlcTsgbWF4X2ZyZXEg PiBzbHBjX21pbl9mcmVxOwo+PiArCQkJCQltYXhfZnJlcSAtPSBzdGVwKSB7Cj4+ICsJCQllcnIg PSBzZXRfbWF4X2ZyZXEoc2xwYywgbWF4X2ZyZXEpOwo+PiArCQkJaWYgKGVycikKPj4gKwkJCQli cmVhazsKPj4gKwo+PiArCQkJc3RfZW5naW5lX2hlYXJ0YmVhdF9kaXNhYmxlKGVuZ2luZSk7Cj4+ ICsKPj4gKwkJCXJxID0gaWd0X3NwaW5uZXJfY3JlYXRlX3JlcXVlc3QoJnNwaW4sCj4+ICsJCQkJ CQllbmdpbmUtPmtlcm5lbF9jb250ZXh0LAo+PiArCQkJCQkJTUlfTk9PUCk7Cj4+ICsJCQlpZiAo SVNfRVJSKHJxKSkgewo+PiArCQkJCXN0X2VuZ2luZV9oZWFydGJlYXRfZW5hYmxlKGVuZ2luZSk7 Cj4+ICsJCQkJZXJyID0gUFRSX0VSUihycSk7Cj4+ICsJCQkJYnJlYWs7Cj4+ICsJCQl9Cj4+ICsK Pj4gKwkJCWk5MTVfcmVxdWVzdF9hZGQocnEpOwo+PiArCj4+ICsJCQlpZiAoIWlndF93YWl0X2Zv cl9zcGlubmVyKCZzcGluLCBycSkpIHsKPj4gKwkJCQlwcl9lcnIoIiVzOiBTTFBDIHNwaW5uZXIg ZGlkIG5vdCBzdGFydFxuIiwKPj4gKwkJCQkgICAgICAgZW5naW5lLT5uYW1lKTsKPj4gKwkJCQlp Z3Rfc3Bpbm5lcl9lbmQoJnNwaW4pOwo+PiArCQkJCXN0X2VuZ2luZV9oZWFydGJlYXRfZW5hYmxl KGVuZ2luZSk7Cj4+ICsJCQkJaW50ZWxfZ3Rfc2V0X3dlZGdlZChlbmdpbmUtPmd0KTsKPj4gKwkJ CQllcnIgPSAtRUlPOwo+PiArCQkJCWJyZWFrOwo+PiArCQkJfQo+PiArCj4+ICsJCQlkZWxheV9m b3JfaDJnKCk7Cj4+ICsKPj4gKwkJCS8qIFZlcmlmeSB0aGF0IFNXUkVRIGluZGVlZCB3YXMgc2V0 IHRvIHNwZWNpZmljIHZhbHVlICovCj4+ICsJCQlyZXFfZnJlcSA9IGludGVsX3Jwc19yZWFkX3B1 bml0X3JlcV9mcmVxdWVuY3kocnBzKTsKPj4gKwo+PiArCQkJLyogR3VDIHJlcXVlc3RzIGZyZXEg aW4gbXVsdGlwbGVzIG9mIDUwLzMgTUh6ICovCj4+ICsJCQlpZiAocmVxX2ZyZXEgPiAobWF4X2Zy ZXEgKyA1MC8zKSkgewo+PiArCQkJCXByX2VycigiU1dSZXEgaXMgJWQsIHNob3VsZCBiZSBhdCBt b3N0ICVkXG4iLCByZXFfZnJlcSwKPj4gKwkJCQkJbWF4X2ZyZXEgKyA1MC8zKTsKPj4gKwkJCQlp Z3Rfc3Bpbm5lcl9lbmQoJnNwaW4pOwo+PiArCQkJCXN0X2VuZ2luZV9oZWFydGJlYXRfZW5hYmxl KGVuZ2luZSk7Cj4+ICsJCQkJZXJyID0gLUVJTlZBTDsKPj4gKwkJCQlicmVhazsKPj4gKwkJCX0K Pj4gKwo+PiArCQkJYWN0X2ZyZXEgPSAgaW50ZWxfcnBzX3JlYWRfYWN0dWFsX2ZyZXF1ZW5jeShy cHMpOwo+PiArCQkJaWYgKGFjdF9mcmVxID4gbWF4X2FjdF9mcmVxKQo+PiArCQkJCW1heF9hY3Rf ZnJlcSA9IGFjdF9mcmVxOwo+PiArCj4+ICsJCQlzdF9lbmdpbmVfaGVhcnRiZWF0X2VuYWJsZShl bmdpbmUpOwo+PiArCQkJaWd0X3NwaW5uZXJfZW5kKCZzcGluKTsKPj4gKwo+PiArCQkJaWYgKGVy cikKPj4gKwkJCQlicmVhazsKPj4gKwkJfQo+PiArCj4+ICsJCXByX2luZm8oIk1heCBhY3R1YWwg ZnJlcXVlbmN5IGZvciAlcyB3YXMgJWRcbiIsCj4+ICsJCQkJZW5naW5lLT5uYW1lLCBtYXhfYWN0 X2ZyZXEpOwo+PiArCj4+ICsJCS8qIEFjdHVhbCBmcmVxdWVuY3kgc2hvdWxkIHJpc2UgYWJvdmUg bWluICovCj4+ICsJCWlmIChtYXhfYWN0X2ZyZXEgPT0gc2xwY19taW5fZnJlcSkgewo+PiArCQkJ cHJfZXJyKCJBY3R1YWwgZnJlcSBkaWQgbm90IHJpc2UgYWJvdmUgbWluXG4iKTsKPj4gKwkJCWVy ciA9IC1FSU5WQUw7Cj4+ICsJCX0KPj4gKwo+PiArCQlpZiAoaWd0X2ZsdXNoX3Rlc3QoZ3QtPmk5 MTUpKSB7Cj4+ICsJCQllcnIgPSAtRUlPOwo+PiArCQkJYnJlYWs7Cj4+ICsJCX0KPj4gKwo+PiAr CQlpZiAoZXJyKQo+PiArCQkJYnJlYWs7Cj4+ICsJfQo+PiArCj4+ICsJLyogUmVzdG9yZSBtaW4v bWF4IGZyZXEgKi8KPj4gKwlzZXRfbWF4X2ZyZXEoc2xwYywgc2xwY19tYXhfZnJlcSk7Cj4+ICsJ c2V0X21pbl9mcmVxKHNscGMsIHNscGNfbWluX2ZyZXEpOwo+PiArCj4+ICsJaW50ZWxfZ3RfcG1f cHV0KGd0KTsKPj4gKwlpZ3Rfc3Bpbm5lcl9maW5pKCZzcGluKTsKPj4gKwlpbnRlbF9ndF9wbV93 YWl0X2Zvcl9pZGxlKGd0KTsKPj4gKwo+PiArCXJldHVybiBlcnI7Cj4+ICt9Cj4+ICsKPj4gK2lu dCBpbnRlbF9zbHBjX2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQo+PiArewo+PiArCXN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9zdWJ0ZXN0IHRlc3RzW10gPSB7 Cj4+ICsJCVNVQlRFU1QobGl2ZV9zbHBjX2NsYW1wX21heCksCj4+ICsJCVNVQlRFU1QobGl2ZV9z bHBjX2NsYW1wX21pbiksCj4+ICsJfTsKPj4gKwo+PiArCWlmIChpbnRlbF9ndF9pc193ZWRnZWQo Jmk5MTUtPmd0KSkKPj4gKwkJcmV0dXJuIDA7Cj4+ICsKPj4gKwlyZXR1cm4gaTkxNV9saXZlX3N1 YnRlc3RzKHRlc3RzLCBpOTE1KTsKPj4gK30KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3NlbGZ0ZXN0X3NscGMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0 ZXN0X3NscGMuaAo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IAo+IEkgZG9uJ3QgdGhpbmsgeW91 IG5lZWQgdGhpcyBoZWFkZXIgYXMgc2VsZnRlc3Rfc2xwYy5jIGlzIHRoZSBvbmx5IHVzZXIKPiBh bmQgeW91IG5lZWQgdG8gZm9yd2FyZCBkZWNsIHRoZXNlIGZ1bmN0aW9ucy4gRXZlbiBpZiB5b3Ug ZGlkLCB5b3UgY291bGQKPiBqdXN0IGZvcndhcmQgZGVjbCB0aGVzZSBpbiB0aGUgQyBmaWxlLgoK U3VyZSwgd2lsbCByZW1vdmUuClRoYW5rcywKVmluYXkuCj4gCj4gTWF0dAo+IAo+PiBpbmRleCAw MDAwMDAwMDAwMDAuLjA0ODBlNjJlZDNkNwo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3NscGMuaAo+PiBAQCAtMCwwICsxLDEyIEBACj4+ ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCj4+ICsvKgo+PiArICogQ29weXJp Z2h0IMKpIDIwMjEgSW50ZWwgQ29ycG9yYXRpb24KPj4gKyAqLwo+PiArCj4+ICsjaWZuZGVmIFNF TEZURVNUX1NMUENfSAo+PiArI2RlZmluZSBTRUxGVEVTVF9TTFBDX0gKPj4gKwo+PiAraW50IGxp dmVfc2xwY19jbGFtcF9tYXgodm9pZCAqYXJnKTsKPj4gK2ludCBsaXZlX3NscGNfY2xhbXBfbWlu KHZvaWQgKmFyZyk7Cj4+ICsKPj4gKyNlbmRpZiAvKiBTRUxGVEVTVF9TTFBDX0ggKi8KPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2xpdmVfc2VsZnRl c3RzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0ZXN0 cy5oCj4+IGluZGV4IGUyZmQxYjYxYWY3MS4uMTc0NmE1NmRkYTA2IDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9saXZlX3NlbGZ0ZXN0cy5oCj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2xpdmVfc2VsZnRlc3RzLmgK Pj4gQEAgLTQ3LDUgKzQ3LDYgQEAgc2VsZnRlc3QoaGFuZ2NoZWNrLCBpbnRlbF9oYW5nY2hlY2tf bGl2ZV9zZWxmdGVzdHMpCj4+ICAgc2VsZnRlc3QoZXhlY2xpc3RzLCBpbnRlbF9leGVjbGlzdHNf bGl2ZV9zZWxmdGVzdHMpCj4+ICAgc2VsZnRlc3QocmluZ19zdWJtaXNzaW9uLCBpbnRlbF9yaW5n X3N1Ym1pc3Npb25fbGl2ZV9zZWxmdGVzdHMpCj4+ICAgc2VsZnRlc3QocGVyZiwgaTkxNV9wZXJm X2xpdmVfc2VsZnRlc3RzKQo+PiArc2VsZnRlc3Qoc2xwYywgaW50ZWxfc2xwY19saXZlX3NlbGZ0 ZXN0cykKPj4gICAvKiBIZXJlIGJlIGRyYWdvbnM6IGtlZXAgbGFzdCB0byBydW4gbGFzdCEgKi8K Pj4gICBzZWxmdGVzdChsYXRlX2d0X3BtLCBpbnRlbF9ndF9wbV9sYXRlX3NlbGZ0ZXN0cykKPj4g LS0gCj4+IDIuMjUuMAo+PgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2EE21C4338F for ; Tue, 27 Jul 2021 22:25:37 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BE8F260F51 for ; Tue, 27 Jul 2021 22:25:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org BE8F260F51 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CA9946E0BF; Tue, 27 Jul 2021 22:25:35 +0000 (UTC) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 61E3F6E0BF; Tue, 27 Jul 2021 22:25:34 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10058"; a="298121076" X-IronPort-AV: E=Sophos;i="5.84,275,1620716400"; d="scan'208";a="298121076" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Jul 2021 15:25:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,275,1620716400"; d="scan'208";a="498973339" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga004.fm.intel.com with ESMTP; 27 Jul 2021 15:25:25 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Tue, 27 Jul 2021 15:25:24 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Tue, 27 Jul 2021 15:25:24 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.171) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Tue, 27 Jul 2021 15:25:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EP9HYqdWHEzriSB0ErHhk2cpeOkHz/hB/hBCjZvmwmHAdmG7qJXfO/mcW0a3A8POzaxnk1GeMXrybKLG/3fFTgJz/Pf8xmSK8hHDILPjyjQOoQRfT/DnhCcHntKW0FzqfQgatdyQrsOC/sCpDzXJ7TXUL4RIo3fKrYU8xLH9xtzeI//DkBxyKTkHAwkXYw7aGPr5xn1StwK1OS5biWw7unnn89hQW5jZ1JJI3JkXEuHmnbmMMKoYLdqKSAOWMSMHYJcf1J19UQMDTfuCPsGuK2XQQKBELLHfzK+zrTSJJzoR6SwdE7HobvgEoMW6/33LFlE54pkcsEfW0amhoOXC0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MP+pEffQorasWPqs8PTdWzPuhXWsx+tFFaahS28uwxU=; b=McovBN3KTEEQq+mBkIaL4CyTQWUnRMXfZTwIytY4J13Cmm2+KkU2l/W6E/lqKsibbFSf+pY4dtf9F6ZB34C+J5oyWp8Poe5MrzviRjdXJ2IXWeeGeqyxRQVCDmfLr8faBp/fFFwbW3sBuu8cx8npi51JWHTIQ/W72JCxGBSCAl78EapmR+dVHM47X5UNG/BUQlbVfXH5zG+CM0e6Rs7ORJkivyx8SQFXQy5SMvUnIpvdp7K8h8Eaadbtz0oaYuj+3ZOmkzPbOs9EiStyVjuetpTP6T5qQrcpufZircJfGvK9G2HLqcr1yVSetgG7VYFdFiB7SUnHms6iHK3fSrK3jw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MP+pEffQorasWPqs8PTdWzPuhXWsx+tFFaahS28uwxU=; b=muh50kJk5YYnHoUC0vwFhx5bmhS/ZKPIcw9cr8AQwzV3FXQWWafoz4YFWiEUuTTTG3BddfUxvsvACdCvaUPCh8zzWdSba9kTVkI6ijdc3K4tcKWTR6BAAaXB8dkdU7sYnAGMgs/7HLkhoN77N3xKu6IbjaeDdwLfVJjv0m95Oh8= Authentication-Results: lists.freedesktop.org; dkim=none (message not signed) header.d=none; lists.freedesktop.org; dmarc=none action=none header.from=intel.com; Received: from CO6PR11MB5634.namprd11.prod.outlook.com (2603:10b6:5:35d::20) by CO6PR11MB5652.namprd11.prod.outlook.com (2603:10b6:5:35e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.26; Tue, 27 Jul 2021 22:25:22 +0000 Received: from CO6PR11MB5634.namprd11.prod.outlook.com ([fe80::5d5e:b6bf:aafa:ecd4]) by CO6PR11MB5634.namprd11.prod.outlook.com ([fe80::5d5e:b6bf:aafa:ecd4%9]) with mapi id 15.20.4352.032; Tue, 27 Jul 2021 22:25:22 +0000 Subject: Re: [PATCH 14/15] drm/i915/guc/slpc: Add SLPC selftest To: Matthew Brost References: <20210726190800.26762-1-vinay.belgaumkar@intel.com> <20210726190800.26762-15-vinay.belgaumkar@intel.com> <20210727191656.GA48855@DUT151-ICLU.fm.intel.com> From: "Belgaumkar, Vinay" Message-ID: <905ee3e8-19e2-569d-eac7-321aa9747ae5@intel.com> Date: Tue, 27 Jul 2021 15:25:20 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 Thunderbird/78.12.0 In-Reply-To: <20210727191656.GA48855@DUT151-ICLU.fm.intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-ClientProxiedBy: CO2PR04CA0143.namprd04.prod.outlook.com (2603:10b6:104::21) To CO6PR11MB5634.namprd11.prod.outlook.com (2603:10b6:5:35d::20) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.1.71] (99.88.121.38) by CO2PR04CA0143.namprd04.prod.outlook.com (2603:10b6:104::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.18 via Frontend Transport; Tue, 27 Jul 2021 22:25:21 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 97ef08dd-c3ed-4584-cab6-08d9514d6c53 X-MS-TrafficTypeDiagnostic: CO6PR11MB5652: X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4125; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NBDoyVEzafKs7x9zzDZmrUdVxMhmgTvS5o1IljyHeN9EZon27h6FcUxCGi03KsUlpto5xtZJA16WRNeoqd9mWDdpL4A/btlQ86+jRimpAHTjkV9be+L8JL4/3BSMtGj2jmqBqAROi6Ro1mcaZRrehiq0H9meQKCMdRHk0kzIA6b3bfwgkdSJYVsse4UbIlQKXnjuiBY/ISdurdx4AdGrllX5/nOlGeMabhOFOHM97sLj7Ynq/KO49QiSLPEiy2x3MUtCZ3qvMQNcMhoQHFDAv4lzpDX6yO1iin5O7vS263nFGsGAJ+2FlsBle3yxXkg5maSd0DBrHWI3ypS9hTcfmo6xY0AY2kbEMf9JfmM70XCTYGEYzdR2s3TY9tqrUPWLDbQjlJFElsBqSa4QyZ9B99eRe2AU5UlYZkCSZa2SRPJZhVrd+lHdCjVa2Qt48Mu240lXXjvDAPk0I6i9h+R+EwLvn7Q8WLe+BfVxkpmYK5MV/QbIAUOSd6uLimNAbFvIBK7ePj8kXCmN98glEVByLkv3jYp9MA48/eWrVTVl8DFK4YVB9/PrveXSAhDHmoBS3Y1nFJcbTCQGPaIqn105M0GDbWkfV7cbbUltF0g7C/UMmTD4nWV472RRCmSO6yRqLhWfo+jBhgeqseKO156YfhSOIZl3xnrKyWTqO6tVty7hV4LI6ob/DYlXh8jaEdvFeG2Gu87kWLuYdGPiHSNUAIqODM0p+FLJ+rXPtiba99hfWo3TUOvC1Sd6zzSceHLR X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR11MB5634.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(376002)(366004)(136003)(346002)(396003)(26005)(38100700002)(86362001)(83380400001)(5660300002)(53546011)(2906002)(186003)(6636002)(8676002)(2616005)(4326008)(31696002)(36756003)(316002)(66476007)(66556008)(37006003)(6486002)(6862004)(478600001)(8936002)(450100002)(30864003)(956004)(66946007)(16576012)(31686004)(45980500001)(43740500002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dmRpbk1ZblFleEV5UDhwa0ZiNmg3RFVMbVUwc2lhTXM0d2Y0RG9FcHVOVmho?= =?utf-8?B?UmhFMGZMTElrUlFFaXZoNUtBZEp4KzJmTzF1UGtGWUZ3TUkrS2dxS0xwYkIv?= =?utf-8?B?RUdLN3VKL1lNa042NHBOY0pjdDRuTmsyemdTNUVVZmNjQ25DZ2p6d2MvV1VW?= =?utf-8?B?ekcydmpCWDA2RXN0WFRsME5vMzFOdTJ3WDNnUXh4UDFYUTFPNFYzZ25tdXpn?= =?utf-8?B?UTVTdTdPWG9QRkxna1grMkw3QTJVRGEwelliSCtkS0h3N0R1N21nbGhzdHhs?= =?utf-8?B?VVpsaXdWVWpCSHdORjJsdGErdkNSdWZpTzNHQ3JWWEVJZ1pKR3Z6M0pVOGUv?= =?utf-8?B?TDVvWXBMK3dmYlZ6NVZxMkdBU2FGQTZTWGQ2aVZDOUVKd1BiWWhienljOFJW?= =?utf-8?B?QjR6aVd1WGtsZlU1OEc3eEFDSFZia3FOVmJOSlQ1ODNFb1QxT2FrNjVrV2N1?= =?utf-8?B?LzB0R3QxWmtGNVlSV3hxdnozNllPbTlqekZTMXgwNzZrajlYU3R2b2N3SUxi?= =?utf-8?B?SWJQUlhDZ3R0SVViRDFiZXVWR2pybzBlWW9GS1B0QUxURDRzaHVaNmUwQ3BI?= =?utf-8?B?QUZVUmFLWE1MZERzaHRUcXpjZ09QeEE4d2hXSkVmSVlUWXBwOEVEek1LeEVB?= =?utf-8?B?QTlMa3NJZ2RSUmJ3Tll2U2NXMFgwY0pha0tYQTdnNk5rdU9NTnF4NGlRUFpa?= =?utf-8?B?UVBMMHhha281cmZBVE1iaU9aU0I1Titmc0Z0WVJSeUxHR1oyR1NzbXFEVzBY?= =?utf-8?B?UklvTHRxN3d2RFQ1WE9aSjVvSFJsSVVXYWhKNWU2bm5Fd2pkNVIwcW1oMkZV?= =?utf-8?B?K3FqaXBRTi9CN1NENms3YTU0WmZHeDlZVzJuNkNFREtDbktuVmNLeTg4TDhj?= =?utf-8?B?NkpLS2pVTnh3eU5mOGgxNk1qU3BZcjdjM3NjNHB5NTRva0dydzVjZnNWdytY?= =?utf-8?B?WWRVTytEMEVBckF6Uys1SnVtL29uVUx1ZlVMT21jOElucjl0RytuN1V4aEtM?= =?utf-8?B?QldWWUhWWjNTd3JVc056ZWpTUXNOaWFBcERtVFhDRUt5NGc4cHlsMVMwTjRv?= =?utf-8?B?RGpKdVlzMytIdVFIN1M0WWVZYlA3RFY1YWxTb2hWM0t0bFdVUkVGZy9ra0hZ?= =?utf-8?B?WUdRQ2tDNUhQaXBHNzBLdkpWQ0dsU2NDQWZ6R0Fmc3FUK2xWaTRkNEpJTjRV?= =?utf-8?B?Z0pyUW8zaUJnMjhrZmt1NUdsV2grbC9HdU1oQy9SMXNrTTMzYVhMdXZDdmsz?= =?utf-8?B?ZS81N2RhMzhRNkt4VG9Pblo1cE1GOXVWUng1SkFCU2d0b1NiLzc2R0Q1NVJO?= =?utf-8?B?N2hlSFNOdndBQWZJUlR5ZS9BVm0rYlBKY3F5S2pJTzBWc0RNczhDM1QveXpP?= =?utf-8?B?NGUxNkJETkx1RG9jVzIwVHAxMmVIeTJWaGxJM2xRYVRRMU9Zc3Z5cS9Zei9x?= =?utf-8?B?Zm00bmI2U291K1BVeTk5bVJvcUhMaW5jcGNBYkpTQmtQVHBNWlpkU0o1RHpq?= =?utf-8?B?T01CUWN0Wk9jOXZ4bklQVllQbjlJaHhmQXdUSmNDMHpid1VhMkt5ZHlzbTB5?= =?utf-8?B?b29VZjZwZThHTTZ3ZVBCN0IwSkxRdk1UTWM1TFpkVEMydXlxUmIxZ29ON1ow?= =?utf-8?B?VGJvY2hzYTMyZlRPc3JMYzN1ZXNtZDV5a0QwRmlCZWlrUVV4ZWVjODA3WE9W?= =?utf-8?B?dUVhUXhEbGlpSFVVeFYySG92WUMzUWVUTzVMbHJhbWZYMWFid1NibitNeVhQ?= =?utf-8?Q?ytOPbQHrj+tG6GpfTkb+bchfZoG0CVQa6Ud9kHK?= X-MS-Exchange-CrossTenant-Network-Message-Id: 97ef08dd-c3ed-4584-cab6-08d9514d6c53 X-MS-Exchange-CrossTenant-AuthSource: CO6PR11MB5634.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jul 2021 22:25:22.2722 (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: cFqSZ+cjNmoZ9pQWpkY8nbx2g7hQ4wmtXYmN2HiFtppVDWEdUSUkgFcuak0JkWvYYiYfjmQ9dPI3yhIa5IMQymdeBRMFS4Zmi6+zo31kTZ4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR11MB5652 X-OriginatorOrg: intel.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On 7/27/2021 12:16 PM, Matthew Brost wrote: > On Mon, Jul 26, 2021 at 12:07:59PM -0700, Vinay Belgaumkar wrote: >> Tests that exercise the SLPC get/set frequency interfaces. >> >> Clamp_max will set max frequency to multiple levels and check >> that SLPC requests frequency lower than or equal to it. >> >> Clamp_min will set min frequency to different levels and check >> if SLPC requests are higher or equal to those levels. >> >> v2: Address review comments (Michal W) >> v3: Checkpatch() corrections >> >> Signed-off-by: Vinay Belgaumkar >> --- >> drivers/gpu/drm/i915/gt/intel_rps.c | 1 + >> drivers/gpu/drm/i915/gt/selftest_slpc.c | 311 ++++++++++++++++++ >> drivers/gpu/drm/i915/gt/selftest_slpc.h | 12 + >> .../drm/i915/selftests/i915_live_selftests.h | 1 + >> 4 files changed, 325 insertions(+) >> create mode 100644 drivers/gpu/drm/i915/gt/selftest_slpc.c >> create mode 100644 drivers/gpu/drm/i915/gt/selftest_slpc.h >> >> diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c >> index 48d4147165a9..6237332835fe 100644 >> --- a/drivers/gpu/drm/i915/gt/intel_rps.c >> +++ b/drivers/gpu/drm/i915/gt/intel_rps.c >> @@ -2318,4 +2318,5 @@ EXPORT_SYMBOL_GPL(i915_gpu_turbo_disable); >> >> #if IS_ENABLED(CONFIG_DRM_I915_SELFTEST) >> #include "selftest_rps.c" >> +#include "selftest_slpc.c" >> #endif >> diff --git a/drivers/gpu/drm/i915/gt/selftest_slpc.c b/drivers/gpu/drm/i915/gt/selftest_slpc.c >> new file mode 100644 >> index 000000000000..5018f686686f >> --- /dev/null >> +++ b/drivers/gpu/drm/i915/gt/selftest_slpc.c >> @@ -0,0 +1,311 @@ >> +// SPDX-License-Identifier: MIT >> +/* >> + * Copyright © 2021 Intel Corporation >> + */ >> + >> +#include "selftest_slpc.h" >> + >> +#define NUM_STEPS 5 >> +#define H2G_DELAY 50000 >> +#define delay_for_h2g() usleep_range(H2G_DELAY, H2G_DELAY + 10000) >> + >> +static int set_min_freq(struct intel_guc_slpc *slpc, u32 freq) >> +{ >> + int ret; >> + >> + ret = intel_guc_slpc_set_min_freq(slpc, freq); >> + if (ret) >> + pr_err("Could not set min frequency to [%u]\n", freq); >> + else /* Delay to ensure h2g completes */ >> + delay_for_h2g(); >> + >> + return ret; >> +} >> + >> +static int set_max_freq(struct intel_guc_slpc *slpc, u32 freq) >> +{ >> + int ret; >> + >> + ret = intel_guc_slpc_set_max_freq(slpc, freq); >> + if (ret) >> + pr_err("Could not set maximum frequency [%u]\n", >> + freq); >> + else /* Delay to ensure h2g completes */ >> + delay_for_h2g(); >> + >> + return ret; >> +} >> + >> +int live_slpc_clamp_min(void *arg) >> +{ >> + struct drm_i915_private *i915 = arg; >> + struct intel_gt *gt = &i915->gt; >> + struct intel_guc_slpc *slpc = >->uc.guc.slpc; >> + struct intel_rps *rps = >->rps; >> + struct intel_engine_cs *engine; >> + enum intel_engine_id id; >> + struct igt_spinner spin; >> + u32 slpc_min_freq, slpc_max_freq; >> + int err = 0; >> + >> + if (!intel_uc_uses_guc_slpc(>->uc)) >> + return 0; >> + >> + if (igt_spinner_init(&spin, gt)) >> + return -ENOMEM; >> + >> + if (intel_guc_slpc_get_max_freq(slpc, &slpc_max_freq)) { >> + pr_err("Could not get SLPC max freq\n"); >> + return -EIO; >> + } >> + >> + if (intel_guc_slpc_get_min_freq(slpc, &slpc_min_freq)) { >> + pr_err("Could not get SLPC min freq\n"); >> + return -EIO; >> + } >> + >> + if (slpc_min_freq == slpc_max_freq) { >> + pr_err("Min/Max are fused to the same value\n"); >> + return -EINVAL; >> + } >> + >> + intel_gt_pm_wait_for_idle(gt); >> + intel_gt_pm_get(gt); >> + for_each_engine(engine, gt, id) { >> + struct i915_request *rq; >> + u32 step, min_freq, req_freq; >> + u32 act_freq, max_act_freq; >> + >> + if (!intel_engine_can_store_dword(engine)) >> + continue; >> + >> + /* Go from min to max in 5 steps */ >> + step = (slpc_max_freq - slpc_min_freq) / NUM_STEPS; >> + max_act_freq = slpc_min_freq; >> + for (min_freq = slpc_min_freq; min_freq < slpc_max_freq; >> + min_freq += step) { >> + err = set_min_freq(slpc, min_freq); >> + if (err) >> + break; >> + >> + st_engine_heartbeat_disable(engine); >> + >> + rq = igt_spinner_create_request(&spin, >> + engine->kernel_context, >> + MI_NOOP); >> + if (IS_ERR(rq)) { >> + err = PTR_ERR(rq); >> + st_engine_heartbeat_enable(engine); >> + break; >> + } >> + >> + i915_request_add(rq); >> + >> + if (!igt_wait_for_spinner(&spin, rq)) { >> + pr_err("%s: Spinner did not start\n", >> + engine->name); >> + igt_spinner_end(&spin); >> + st_engine_heartbeat_enable(engine); >> + intel_gt_set_wedged(engine->gt); >> + err = -EIO; >> + break; >> + } >> + >> + /* Wait for GuC to detect business and raise >> + * requested frequency if necessary. >> + */ >> + delay_for_h2g(); >> + >> + req_freq = intel_rps_read_punit_req_frequency(rps); >> + >> + /* GuC requests freq in multiples of 50/3 MHz */ >> + if (req_freq < (min_freq - 50/3)) { >> + pr_err("SWReq is %d, should be at least %d\n", req_freq, >> + min_freq - 50/3); >> + igt_spinner_end(&spin); >> + st_engine_heartbeat_enable(engine); >> + err = -EINVAL; >> + break; >> + } >> + >> + act_freq = intel_rps_read_actual_frequency(rps); >> + if (act_freq > max_act_freq) >> + max_act_freq = act_freq; >> + >> + igt_spinner_end(&spin); >> + st_engine_heartbeat_enable(engine); >> + } >> + >> + pr_info("Max actual frequency for %s was %d\n", >> + engine->name, max_act_freq); >> + >> + /* Actual frequency should rise above min */ >> + if (max_act_freq == slpc_min_freq) { >> + pr_err("Actual freq did not rise above min\n"); >> + err = -EINVAL; >> + } >> + >> + if (err) >> + break; >> + } >> + >> + /* Restore min/max frequencies */ >> + set_max_freq(slpc, slpc_max_freq); >> + set_min_freq(slpc, slpc_min_freq); >> + >> + if (igt_flush_test(gt->i915)) >> + err = -EIO; >> + >> + intel_gt_pm_put(gt); >> + igt_spinner_fini(&spin); >> + intel_gt_pm_wait_for_idle(gt); >> + >> + return err; >> +} >> + >> +int live_slpc_clamp_max(void *arg) >> +{ > > This test is really similar to live_slpc_clamp_min, have you tried to > combine these into a single function with arguments? We could, but the for loop in clamp min goes from min to max whereas clamp_max goes from max to min. It's more intutive and easy to understand if we keep it this way. > >> + struct drm_i915_private *i915 = arg; >> + struct intel_gt *gt = &i915->gt; >> + struct intel_guc_slpc *slpc; >> + struct intel_rps *rps; >> + struct intel_engine_cs *engine; >> + enum intel_engine_id id; >> + struct igt_spinner spin; >> + int err = 0; >> + u32 slpc_min_freq, slpc_max_freq; >> + >> + slpc = >->uc.guc.slpc; >> + rps = >->rps; >> + >> + if (!intel_uc_uses_guc_slpc(>->uc)) >> + return 0; >> + >> + if (igt_spinner_init(&spin, gt)) >> + return -ENOMEM; >> + >> + if (intel_guc_slpc_get_max_freq(slpc, &slpc_max_freq)) { >> + pr_err("Could not get SLPC max freq\n"); >> + return -EIO; >> + } >> + >> + if (intel_guc_slpc_get_min_freq(slpc, &slpc_min_freq)) { >> + pr_err("Could not get SLPC min freq\n"); >> + return -EIO; >> + } >> + >> + if (slpc_min_freq == slpc_max_freq) { >> + pr_err("Min/Max are fused to the same value\n"); >> + return -EINVAL; >> + } >> + >> + intel_gt_pm_wait_for_idle(gt); >> + intel_gt_pm_get(gt); >> + for_each_engine(engine, gt, id) { >> + struct i915_request *rq; >> + u32 max_freq, req_freq; >> + u32 act_freq, max_act_freq; >> + u32 step; >> + >> + if (!intel_engine_can_store_dword(engine)) >> + continue; >> + >> + /* Go from max to min in 5 steps */ >> + step = (slpc_max_freq - slpc_min_freq) / NUM_STEPS; >> + max_act_freq = slpc_min_freq; >> + for (max_freq = slpc_max_freq; max_freq > slpc_min_freq; >> + max_freq -= step) { >> + err = set_max_freq(slpc, max_freq); >> + if (err) >> + break; >> + >> + st_engine_heartbeat_disable(engine); >> + >> + rq = igt_spinner_create_request(&spin, >> + engine->kernel_context, >> + MI_NOOP); >> + if (IS_ERR(rq)) { >> + st_engine_heartbeat_enable(engine); >> + err = PTR_ERR(rq); >> + break; >> + } >> + >> + i915_request_add(rq); >> + >> + if (!igt_wait_for_spinner(&spin, rq)) { >> + pr_err("%s: SLPC spinner did not start\n", >> + engine->name); >> + igt_spinner_end(&spin); >> + st_engine_heartbeat_enable(engine); >> + intel_gt_set_wedged(engine->gt); >> + err = -EIO; >> + break; >> + } >> + >> + delay_for_h2g(); >> + >> + /* Verify that SWREQ indeed was set to specific value */ >> + req_freq = intel_rps_read_punit_req_frequency(rps); >> + >> + /* GuC requests freq in multiples of 50/3 MHz */ >> + if (req_freq > (max_freq + 50/3)) { >> + pr_err("SWReq is %d, should be at most %d\n", req_freq, >> + max_freq + 50/3); >> + igt_spinner_end(&spin); >> + st_engine_heartbeat_enable(engine); >> + err = -EINVAL; >> + break; >> + } >> + >> + act_freq = intel_rps_read_actual_frequency(rps); >> + if (act_freq > max_act_freq) >> + max_act_freq = act_freq; >> + >> + st_engine_heartbeat_enable(engine); >> + igt_spinner_end(&spin); >> + >> + if (err) >> + break; >> + } >> + >> + pr_info("Max actual frequency for %s was %d\n", >> + engine->name, max_act_freq); >> + >> + /* Actual frequency should rise above min */ >> + if (max_act_freq == slpc_min_freq) { >> + pr_err("Actual freq did not rise above min\n"); >> + err = -EINVAL; >> + } >> + >> + if (igt_flush_test(gt->i915)) { >> + err = -EIO; >> + break; >> + } >> + >> + if (err) >> + break; >> + } >> + >> + /* Restore min/max freq */ >> + set_max_freq(slpc, slpc_max_freq); >> + set_min_freq(slpc, slpc_min_freq); >> + >> + intel_gt_pm_put(gt); >> + igt_spinner_fini(&spin); >> + intel_gt_pm_wait_for_idle(gt); >> + >> + return err; >> +} >> + >> +int intel_slpc_live_selftests(struct drm_i915_private *i915) >> +{ >> + static const struct i915_subtest tests[] = { >> + SUBTEST(live_slpc_clamp_max), >> + SUBTEST(live_slpc_clamp_min), >> + }; >> + >> + if (intel_gt_is_wedged(&i915->gt)) >> + return 0; >> + >> + return i915_live_subtests(tests, i915); >> +} >> diff --git a/drivers/gpu/drm/i915/gt/selftest_slpc.h b/drivers/gpu/drm/i915/gt/selftest_slpc.h >> new file mode 100644 > > I don't think you need this header as selftest_slpc.c is the only user > and you need to forward decl these functions. Even if you did, you could > just forward decl these in the C file. Sure, will remove. Thanks, Vinay. > > Matt > >> index 000000000000..0480e62ed3d7 >> --- /dev/null >> +++ b/drivers/gpu/drm/i915/gt/selftest_slpc.h >> @@ -0,0 +1,12 @@ >> +/* SPDX-License-Identifier: MIT */ >> +/* >> + * Copyright © 2021 Intel Corporation >> + */ >> + >> +#ifndef SELFTEST_SLPC_H >> +#define SELFTEST_SLPC_H >> + >> +int live_slpc_clamp_max(void *arg); >> +int live_slpc_clamp_min(void *arg); >> + >> +#endif /* SELFTEST_SLPC_H */ >> diff --git a/drivers/gpu/drm/i915/selftests/i915_live_selftests.h b/drivers/gpu/drm/i915/selftests/i915_live_selftests.h >> index e2fd1b61af71..1746a56dda06 100644 >> --- a/drivers/gpu/drm/i915/selftests/i915_live_selftests.h >> +++ b/drivers/gpu/drm/i915/selftests/i915_live_selftests.h >> @@ -47,5 +47,6 @@ selftest(hangcheck, intel_hangcheck_live_selftests) >> selftest(execlists, intel_execlists_live_selftests) >> selftest(ring_submission, intel_ring_submission_live_selftests) >> selftest(perf, i915_perf_live_selftests) >> +selftest(slpc, intel_slpc_live_selftests) >> /* Here be dragons: keep last to run last! */ >> selftest(late_gt_pm, intel_gt_pm_late_selftests) >> -- >> 2.25.0 >>