Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3997011pxj; Mon, 21 Jun 2021 11:04:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwmzMPwDxAj/dNpismCvAmm3ixVXUt5BVm24hqs6Ywk9EnDOPexq+kK7ELnJ+ukxRox0+Oj X-Received: by 2002:a05:6638:349f:: with SMTP id t31mr18916710jal.95.1624298667478; Mon, 21 Jun 2021 11:04:27 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1624298667; cv=pass; d=google.com; s=arc-20160816; b=cGnM3Jbdw0Mi4KLCddGDeWW42hGqAYqbWLRsndFlxJfbL5F3AUfDOP6aK58Ox5HRyo HBfANTvqnOoH6PnGIBp0LQU2BmFCsOheo1R18mTUBUSZ7wfEddhQ5088HStFdoytawPo WQZVA1t/CUgpVUqVHSyJOV0fdOkndV0Xlzlf/AT6AiLtNi0IO74wUs8drG+0W6QKTw0u V5WWgEYP+ydPXYTXTCEcOSnlk2P94SrZYFhlTd1EZ98meP3ScRzS0p4gowbNWweC/pjq Uh3sYL2Vf9F3XQxsubDyE1hpKHtRUY/HGsTA/se8zxmnLqaff0d0uZF8BTlI5XD3DZ1T r6Iw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature; bh=Txsiuk0GoNhicXlCSThozF4E7cdjOzphJfzi3WvAmgQ=; b=kcZ7e1puTo/18xkRSY4vuFiq+fXSn/9lLZJGy+c83DW/fcrcB2NV/AiEOjiU5SVc/j GzaQk4kgV+/QgsCkakG4nvLCjJ5QHeVXmh1j5rxT25G5Z8TWcdt6RlhF+AtC5irREplX 95xh8lD7LrCp/GLaAdmYp9FBTn62gQEWYaE+60kymTpTMnx3OKoKJH3oh7GSO9ewImUQ v8grgUN8wsgf4nr69RfYoq0Xen7e3dbqwDW44Ln6pJSe0EMtyVcS97S/zwTCexxDItCe Td7wR8yY3CC+ECbZtwXJwAIVLcBAfhCPNMx2ENBXutgYdNv7HlXtDlc+CicZvcK+OtEZ SDiA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=Xm6qW1QG; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hammerspace.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c15si12250284ilo.97.2021.06.21.11.04.09; Mon, 21 Jun 2021 11:04:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=Xm6qW1QG; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hammerspace.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233486AbhFUSGK (ORCPT + 99 others); Mon, 21 Jun 2021 14:06:10 -0400 Received: from mail-mw2nam10on2133.outbound.protection.outlook.com ([40.107.94.133]:41697 "EHLO NAM10-MW2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S232027AbhFUSCY (ORCPT ); Mon, 21 Jun 2021 14:02:24 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NQVJ3jUh9fcJM5YPVaWMakOlec4hR6Oj3JxVuG/LwYcuD/f0QVx5d+yEX4W9H6GRfbLzu/ncpyjrk9j3/p1gwyOG9uNgMn6krK/fxR5Xo3BFuYswMNBUMUU2H5wj31sHPCtQ+0WdkgYFKEfdp9aHtbHW6huE33lDvQPc/3YkerTyUGsG/l91/EsLsJESJmLPC1p+d6G3diXqgGARA8Bf+WkASM8vQf+xGo86A2fdSciFMwUaZpgNdi8doVDiJ6DNb2B2vNCerF71QZSVN/hKSaSc5qaKnMkczrYlISyAmqX5OMJEPngYoRBHA87YPkB/Q9MIEF8zSRKvMK1J6Y00kw== 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=Txsiuk0GoNhicXlCSThozF4E7cdjOzphJfzi3WvAmgQ=; b=d/su9IzlZhsBrM8MK5EWHyQHicStD7bdYzONkt9FIn6cjm48wTZJAm8nyz5ACy/ZfqilixTsTqqp+NEJmAEvs3etylcDBzs1zFB5gwxTXv3CK9CFuIfqPzbBm6ki1u9M4dUaIGZe+cKZJnGtw+D91szvuFDsjaRoZjFRLpTVjrZmNsfm1TFZoeBTOsUkqJ37yDmgVSTZZOPQyFEdX6XE8Ortjh00/CdN6K0MI3ikTSE03i3C6uuN4FrsLallVFpkqyZuvv/IB1l/hCpBbKBhEHmClq5GUlnqJ55WAeS+ZeXpvejuWGxkcBRXut+WgLGj9kMHwv6KIfIUYCKvqZqlyA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hammerspace.com; dmarc=pass action=none header.from=hammerspace.com; dkim=pass header.d=hammerspace.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Txsiuk0GoNhicXlCSThozF4E7cdjOzphJfzi3WvAmgQ=; b=Xm6qW1QGHdP7hpPls+NXCkrKNtTJMEa1lOm3P8TnIesPU96drfNkf3mBBCmjnPFN+q/TA4Bn/BxkaUgKynAODmZ261n18HqugSe2fb1+nvCHEFQArtoaGBmR6wxIcCOImD42vEbz88Tq4Amii+KRmjWD2jVF3saqOImpLBlV3lM= Received: from CH0PR13MB5084.namprd13.prod.outlook.com (2603:10b6:610:111::7) by CH2PR13MB3383.namprd13.prod.outlook.com (2603:10b6:610:14::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.7; Mon, 21 Jun 2021 18:00:06 +0000 Received: from CH0PR13MB5084.namprd13.prod.outlook.com ([fe80::cc40:f406:86f9:3e05]) by CH0PR13MB5084.namprd13.prod.outlook.com ([fe80::cc40:f406:86f9:3e05%4]) with mapi id 15.20.4264.017; Mon, 21 Jun 2021 18:00:06 +0000 From: Trond Myklebust To: "chuck.lever@oracle.com" , "trondmy@kernel.org" CC: "linux-nfs@vger.kernel.org" , "bfields@redhat.com" Subject: Re: [PATCH] nfsd: Reduce contention for the nfsd_file nf_rwsem Thread-Topic: [PATCH] nfsd: Reduce contention for the nfsd_file nf_rwsem Thread-Index: AQHXY9BFOPrj5d3Km06dLrDzFdiFU6sesysAgAATu4A= Date: Mon, 21 Jun 2021 18:00:06 +0000 Message-ID: References: <20210617232652.264884-1-trondmy@kernel.org> <1669C849-D7DC-46C1-B6B6-F2C79C819710@oracle.com> In-Reply-To: <1669C849-D7DC-46C1-B6B6-F2C79C819710@oracle.com> Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: oracle.com; dkim=none (message not signed) header.d=none;oracle.com; dmarc=none action=none header.from=hammerspace.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 94f1496e-608f-4b14-a6cb-08d934de6718 x-ms-traffictypediagnostic: CH2PR13MB3383: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5797; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: oKw26h6VaJ5teVqptWwRKt+80C/JqlD+OKPg/fkrtFTq+OQuDYsETDzKMoA5EnvYbl7ITJ9QGrjnVS0zDseuaZmDiP0kTFEbbfAbaS8YRR4UN0/qoBtSEewbYVyKz+AjpqV/BaoJgQGyE2u+ABeQ+ifznpFc25UvHLcSq5bAdHdjtv8MkYiYCvQdz6nJ7RfPBQdxXFpZalfyHv2fBpp1c/5/zZvGSISYJsJr9wuhks2BfeRl7U2Eq5iSQkR/9h/nJ9qd7t+do+QqV6Wzlb5ZdF6l+dBIkJHvDQeF1qY6rtOujTz+JvuWHjtykQWQBrAQ+bs1nUgcz/2sbCgzWJdIBwN9Hpnpr/Z6qt/jBXoumLmYgUkYRkhIBGeo6ulet2cnjE3z/e+wD6inJtvtTdg8ykp+KHHa4on8RnKSSaPYszL/oCzqPv2mxzGV2Yr+EA593VzG+/69/99Qt2qZdBwgejAkcIuYbhwlpgDyYcxgT92u2ydo6c6yn5Rc1siXlXz0EnUNaVy/NxJbnogjco6viAMl5qxZ6uO6JQ1YBKgOJfaGOzuizM7wd+JAmGiR+xhWZbfy+p50bvspVcBxvJBVCnh6apoHMgNOp+N7B++8vf4WlOUhyMkvaVzkFeOQKxfCtjx5gbtB5oEsEi3LPoXRLA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH0PR13MB5084.namprd13.prod.outlook.com;PTR:;CAT:NONE;SFS:(39830400003)(396003)(366004)(376002)(346002)(136003)(26005)(71200400001)(8676002)(38100700002)(122000001)(316002)(83380400001)(5660300002)(4326008)(2906002)(54906003)(76116006)(36756003)(66946007)(110136005)(6486002)(66476007)(8936002)(2616005)(53546011)(186003)(66556008)(6512007)(6506007)(86362001)(64756008)(66446008)(478600001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bTBGOEJtZ2ZCMFpkRUtDOEZaZTM2TE9CZ0hmcE4wc2l3Z1hnbnllMkIzU1Er?= =?utf-8?B?blhSYyt4RHljSkRRbHM1R045QjJ0NkI1TUZRbHVoaUdPcyt1cTlyZHV5ZnNa?= =?utf-8?B?KytEYTdZRlBUbHByUkdwNFBwekhoWGhJYVcyMTYrQndSTUYwUEJJVEtpVkp6?= =?utf-8?B?RUcrRFB5UThHdlAxSzkzN3B1c3lrcnFJdkR3citnTytKU0VvSVVOcXZxMTZN?= =?utf-8?B?aEhwbGpXNmZKaUtiSjM5ZmEyNk42Vkp2ZDZ6V2lyOStWeVRUZi81Uitzazly?= =?utf-8?B?OVFCbDZQVHUzVWVEQ0tOQlg1RGJONVFYdkg4ODZTbVhZQTJybnJoVXoweEpP?= =?utf-8?B?K0FDd2ZKK21wbjQ3UXh3MzBFZzY5NURMTWRhL1dUdDY4b0VBN3dFQ3U5TGtI?= =?utf-8?B?bkhGcE9acG9jc2pGbkpzREJUdzVwSnpGcVkyMFdDQ0dFT2ZJZTE0blFqamtI?= =?utf-8?B?VDhTeFp2SHRkY0IwVU43amVXRmxieUlBNS9najZvZi9aZVkwbWEvVWxMcjdh?= =?utf-8?B?NEt6bWlyUHBKWmRFVkZvRjVVVWw3RUFLbkkyVFR1RUJRVGg5ME5FZmppVTNV?= =?utf-8?B?Qlhxekp6dFArZld4eWpQYzB1VTJ3NUJaa0tuMjkyMjl4VXVDbThnV2hiQjBD?= =?utf-8?B?dGZGOEp6OFNvQk1tdERQNjJmZFNOTFVLSEJRYXZZcmVSTUEyNEtuRFAvUnBk?= =?utf-8?B?RXpHZ0ErRk9JS040QVZsaWwyQUs1RHEvTWJZSzJHWHBWTmZpQk5McVRhK1Fa?= =?utf-8?B?dkxTVEtEci9lWXR5UWpOZXNySHViVVk4TTdDMVVXTmZkak00MzM2SWZNNzJw?= =?utf-8?B?dEx6TytldjVTSE9lWXhIQ0Z5R2thUkRhS1pGall4Q3lKMVZGY2ZDK25ZVXAy?= =?utf-8?B?ckhtQ3hwcTNVclpVVUdSOEVBcmo1cUdoZnExVkF1djU2YVh4QTJCeC9SWDRP?= =?utf-8?B?d2R3UFE1bzVSSTNwdEJ4eHZVaWtrREtvVkVqN0hsZ29kdk83NWpRaVEzUDI3?= =?utf-8?B?aFozT1lqRFl4UWdIK21CSFE4anR4OGxZZ1hmekxmZk53NWRoRkhueXpGcHhq?= =?utf-8?B?Ukc0SXZaTUpwZkcyTytvbUhZeWp0RXg5T2MyVmZBVTF6czBVbUl0S0VKUlJw?= =?utf-8?B?TVN2eEdReFZrYWR2elQwaWxLMXdzdG51UVkycnk2MnFqZ1J0RTdBdkI0Zk5P?= =?utf-8?B?dWk1K2Y3QlBQQzlhbDRzT0x2YlRocThIVnBzejRGem1GaWxrTFFMbHV2STdX?= =?utf-8?B?VC8xeHNJMWFNbndXWFBrU1YxSFNHYks4NVF3V0M3SW9lRk9vT0VTWkRUcDVL?= =?utf-8?B?a3dGY1R6bml6Y2MwM2FCd2hudkN2dDNtWmQ3eXMzVFEyWXJ0eFdpdnVXWjRV?= =?utf-8?B?WFo0Vml3S2Z5aE1hajE0VE84djE0Q1dDOWtFZUdsaXlVOUQ5RnpmQjJocDd3?= =?utf-8?B?L01ETnNWOGFQZ3VNaE5SaVBDRkV2N2NabzhtM3FzNkFuTG9UYlc0ZHY0bDBQ?= =?utf-8?B?cC9ZQVpBSGZQZjR6TmJGUkRBQWRUZWd6TWttYmp1eGd2V09KbjhXRWFTdVoy?= =?utf-8?B?ZDBwY2RSL0ZqUHg1K2RTK2lmTk1pMmp2KzhJVXhhcDArb0ppQ0dPWmJEQnlr?= =?utf-8?B?VjlNSk1admNUWXBBQWlZSmgrRDJZekVqcEV5S25OTTAyUVpqcVZHSDlqbHg5?= =?utf-8?B?TjE5VStlbFhlQmlpblh6RWpsYmdPU2QrbHdDSmx2SnduL2lsUytwaXVRZ01m?= =?utf-8?Q?cc6K4Kih9ESfJLfmqp74hmqpxHTQ8qcE30nr7TN?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH0PR13MB5084.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 94f1496e-608f-4b14-a6cb-08d934de6718 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jun 2021 18:00:06.5384 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0d4fed5c-3a70-46fe-9430-ece41741f59e X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0KPX7cpDgDPOkhPUzjdnQR1Rm8OUG8ZNtIdo7nP/Ocun8Aw4TyF9tRkD7P32TBwlqLH/U/46B6DbWreamw1YPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR13MB3383 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gTW9uLCAyMDIxLTA2LTIxIGF0IDE2OjQ5ICswMDAwLCBDaHVjayBMZXZlciBJSUkgd3JvdGU6 DQo+IEhpLQ0KPiANCj4gPiBPbiBKdW4gMTcsIDIwMjEsIGF0IDc6MjYgUE0sIHRyb25kbXlAa2Vy bmVsLm9yZ8Kgd3JvdGU6DQo+ID4gDQo+ID4gRnJvbTogVHJvbmQgTXlrbGVidXN0IDx0cm9uZC5t eWtsZWJ1c3RAaGFtbWVyc3BhY2UuY29tPg0KPiA+IA0KPiA+IFdoZW4gZmx1c2hpbmcgb3V0IHRo ZSB1bnN0YWJsZSBmaWxlIHdyaXRlcyBhcyBwYXJ0IG9mIGEgQ09NTUlUDQo+ID4gY2FsbCwgdHJ5 DQo+ID4gdG8gcGVyZm9ybSBtb3N0IG9mIG9mIHRoZSBkYXRhIHdyaXRlcyBhbmQgd2FpdHMgb3V0 c2lkZSB0aGUNCj4gPiBzZW1hcGhvcmUuDQo+ID4gDQo+ID4gVGhpcyBtZWFucyB0aGF0IGlmIHRo ZSBjbGllbnQgaXMgc2VuZGluZyB0aGUgQ09NTUlUIGFzIHBhcnQgb2YgYQ0KPiA+IG1lbW9yeQ0K PiA+IHJlY2xhaW0gb3BlcmF0aW9uLCB0aGVuIGl0IGNhbiBjb250aW51ZSBwZXJmb3JtaW5nIEkv Tywgd2l0aA0KPiA+IGNvbnRlbnRpb24NCj4gPiBmb3IgdGhlIGxvY2sgb2NjdXJyaW5nIG9ubHkg b25jZSB0aGUgZGF0YSBzeW5jIGlzIGZpbmlzaGVkLg0KPiA+IA0KPiA+IEZpeGVzOiA1MDExYWY0 YzY5OGEgKCJuZnNkOiBGaXggc3RhYmxlIHdyaXRlcyIpDQo+ID4gU2lnbmVkLW9mZi1ieTogVHJv bmQgTXlrbGVidXN0IDx0cm9uZC5teWtsZWJ1c3RAaGFtbWVyc3BhY2UuY29tPg0KPiANCj4gVGhl IGdvb2QgbmV3cyBpcyBJJ3ZlIGZvdW5kIG5vIGZ1bmN0aW9uYWwgcmVncmVzc2lvbnMuIFRoZSBi YWQNCj4gbmV3cyBpcyBJIGhhdmVuJ3Qgc2VlbiBhbnkgZGlmZmVyZW5jZSBpbiBwZXJmb3JtYW5j ZS4gSXMgdGhlcmUNCj4gYSBwYXJ0aWN1bGFyIHRlc3QgdGhhdCBJIGNhbiBydW4gdG8gb2JzZXJ2 ZSBpbXByb3ZlbWVudD8NCg0KSSdkIGV4cGVjdCB0aGF0IHJlLWV4cG9ydGVkIE5GUyB3b3VsZCBi ZSB0aGUgYmVzdCB0ZXN0IHNpbmNlIGZzeW5jKCkgaXMNCmEgaGlnaCBsYXRlbmN5IG9wZXJhdGlv biB3aGVuIHRoZSBwYWdlIGNhY2hlIGlzIGxvYWRlZC4gWW91IGFsc28gd2FudA0KdG8gdXNlIGEg Y2xpZW50IHdpdGggcmVsYXRpdmVseSBsaW1pdGVkIG1lbW9yeSBzbyB0aGF0IGl0IHdpbGwgdHJ5 IHRvDQpyZWNsYWltIG1lbW9yeSBieSBwdXNoaW5nIG91dCBkaXJ0eSBwYWdlcyBhbmQgZG9pbmcg Q09NTUlULg0KDQo+IA0KPiBJIHdvbmRlciBhYm91dCBhZGRpbmcgYSBGaXhlczogdGFnIGZvciBh IGNoYW5nZSB0aGF0IHRoZSBwYXRjaA0KPiBkZXNjcmlwdGlvbiBkZXNjcmliZXMgYXMgYW4gb3B0 aW1pemF0aW9uLg0KDQpJJ3ZlIG9jY2FzaW9uYWxseSBoaXQgT09NIHNpdHVhdGlvbnMgaW4gdGhl IHJlLWV4cG9ydCBjYXNlIHdoZW4gdGhlIHIvdw0KbG9jayBjb250ZW50aW9uIGNhdXNlcyBzb2Z0 ZXJyIGZhaWx1cmUgdG8gYmUgc2VyaWFsaXNlZC4NCmkuZS4gaWYgdGhlIHNlcnZlciBpcyBkb3du LCBhbmQgeW91J3JlIGVzc2VudGlhbGx5IGhvcGluZyB0aGF0IHRoZSBuZnNkDQp0aHJlYWRzIHdp bGwgZ2l2ZSB1cCBhbmQgcmV0dXJuIEVKVUtFQk9YL05GUzRFUlJfREVMQVkgdG8gdGhlIGNsaWVu dCwNCnRoZW4gdGhhdCBsb2NrIGVuc3VyZXMgdGhhdCB0aHJlYWRzIGZhaWwgb25lLWJ5LW9uZSAo Z3JhYiBsb2NrLCB3cml0ZSwNCnRpbWVvdXQsIHJlbGVhc2UgbG9jaykgaW5zdGVhZCBvZiBiZWlu ZyBhYmxlIHRvIGFsbCBmYWlsIGF0IG9uY2UNCih3cml0ZSwgdGltZW91dCkuDQoNCj4gDQo+IA0K PiA+IC0tLQ0KPiA+IGZzL25mc2QvdmZzLmMgfCAxOCArKysrKysrKysrKysrKysrLS0NCj4gPiAx IGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4gPiANCj4g PiBkaWZmIC0tZ2l0IGEvZnMvbmZzZC92ZnMuYyBiL2ZzL25mc2QvdmZzLmMNCj4gPiBpbmRleCAx NWFkZjFmNmFiMjEuLjQ2NDg1YzA0NzQwZCAxMDA2NDQNCj4gPiAtLS0gYS9mcy9uZnNkL3Zmcy5j DQo+ID4gKysrIGIvZnMvbmZzZC92ZnMuYw0KPiA+IEBAIC0xMTIzLDYgKzExMjMsMTkgQEAgbmZz ZF93cml0ZShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3QNCj4gPiBzdmNfZmggKmZocCwg bG9mZl90IG9mZnNldCwNCj4gPiB9DQo+ID4gDQo+ID4gI2lmZGVmIENPTkZJR19ORlNEX1YzDQo+ ID4gK3N0YXRpYyBpbnQNCj4gPiArbmZzZF9maWxlbWFwX3dyaXRlX2FuZF93YWl0X3JhbmdlKHN0 cnVjdCBuZnNkX2ZpbGUgKm5mLCBsb2ZmX3QNCj4gPiBvZmZzZXQsDQo+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbG9m Zl90IGVuZCkNCj4gPiArew0KPiA+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nID0gbmYtPm5mX2ZpbGUtPmZfbWFwcGluZzsNCj4gPiArwqDCoMKgwqDCoMKgwqBp bnQgcmV0ID0gZmlsZW1hcF9mZGF0YXdyaXRlX3JhbmdlKG1hcHBpbmcsIG9mZnNldCwgZW5kKTsN Cj4gPiArDQo+ID4gK8KgwqDCoMKgwqDCoMKgaWYgKHJldCkNCj4gPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgcmV0dXJuIHJldDsNCj4gPiArwqDCoMKgwqDCoMKgwqBmaWxlbWFwX2Zk YXRhd2FpdF9yYW5nZV9rZWVwX2Vycm9ycyhtYXBwaW5nLCBvZmZzZXQsIGVuZCk7DQo+ID4gK8Kg wqDCoMKgwqDCoMKgcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gLyoNCj4gPiDCoCogQ29t bWl0IGFsbCBwZW5kaW5nIHdyaXRlcyB0byBzdGFibGUgc3RvcmFnZS4NCj4gPiDCoCoNCj4gPiBA QCAtMTE1MywxMCArMTE2NiwxMSBAQCBuZnNkX2NvbW1pdChzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3Rw LCBzdHJ1Y3QNCj4gPiBzdmNfZmggKmZocCwNCj4gPiDCoMKgwqDCoMKgwqDCoMKgaWYgKGVycikN Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gb3V0Ow0KPiA+IMKgwqDC oMKgwqDCoMKgwqBpZiAoRVhfSVNTWU5DKGZocC0+ZmhfZXhwb3J0KSkgew0KPiA+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbnQgZXJyMjsNCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgaW50IGVycjIgPSBuZnNkX2ZpbGVtYXBfd3JpdGVfYW5kX3dhaXRfcmFuZ2Uo bmYsDQo+ID4gb2Zmc2V0LCBlbmQpOw0KPiA+IA0KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgZG93bl93cml0ZSgmbmYtPm5mX3J3c2VtKTsNCj4gPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZXJyMiA9IHZmc19mc3luY19yYW5nZShuZi0+bmZfZmlsZSwgb2Zmc2V0 LCBlbmQsDQo+ID4gMCk7DQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICgh ZXJyMikNCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGVycjIgPSB2ZnNfZnN5bmNfcmFuZ2UobmYtPm5mX2ZpbGUsIG9mZnNldCwNCj4gPiBlbmQsIDAp Ow0KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3dpdGNoIChlcnIyKSB7DQo+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjYXNlIDA6DQo+ID4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbmZzZF9jb3B5X2Jvb3RfdmVy aWZpZXIodmVyZiwNCj4gPiBuZXRfZ2VuZXJpYyhuZi0+bmZfbmV0LA0KPiA+IC0tIA0KPiA+IDIu MzEuMQ0KPiA+IA0KPiANCj4gLS0NCj4gQ2h1Y2sgTGV2ZXINCj4gDQo+IA0KPiANCg0KLS0gDQpU cm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lciwgSGFtbWVyc3BhY2UN CnRyb25kLm15a2xlYnVzdEBoYW1tZXJzcGFjZS5jb20NCg0KDQo=