Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp4380686pxb; Sun, 14 Feb 2021 08:24:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJyNoR9hVGunvjs2W9USCmboex/b+nEg3kvfd2bTCTbbZR44WMuzSp23TQ1a4yEc67eFhQgc X-Received: by 2002:aa7:c9cf:: with SMTP id i15mr11896946edt.296.1613319898730; Sun, 14 Feb 2021 08:24:58 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1613319898; cv=pass; d=google.com; s=arc-20160816; b=vkYweW7pbbu+zJiO46WWYkD/bSd1iQwoxx2646KKNHfMXQeT98v6vOssrkypngY+Av zAKaMup9ykQySCBifh9sLrT0uADRuAgxeMut+0i3tN6jw4SFhLhftu8mb84W186M+/ZF 6klZEYPhfN3QCVCLORJqpvJRKeXClvLEVDHXXyvSzrOlOG/7LxboJ0ifxMdPsg4bMMkG 0fFkVzOrMlTzVVwfT2C1lGfCgFhfey7LNmAtRWowveCEUZRZ3GYTODf+qg2RIeO24WYB ejxzqd+KBvgkYAheagjBdwNohfls8avp5zh9xEihn+1fiJE88eiVH2DUfdhrEBS4YO9u jHWQ== 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=6OI2hS5L6jFc0xzYc8Bx93vlPV8J/0m00FXxE8M/DzY=; b=CTUvmQOb0U54w2Fotyeh6muiq1r3/K4UGIEBV/wtayVASkWBWVRTKMfhQTNGkl9+dX Sc1YO2LqH8SoqhEaxaBjENmOrxJd5jVWZtVwNlg4KjzWsfUXtx7b92z+1K1Fzf46L8Js ZbUYttm17ZCAXZjGtxGPFYoS8cfhg9DaMuYj62Dk3wKMPesJ7rL05GzUX9sEbpZdTP2I VfbVixmo/4pAs3ixMIFwSLtmIi8PHTHThTcU9KkjYC1E2ULC+uJbfQMXZPTojuK6DrOj FED37/DJHQtRVkUpiPy9FyIUCdlKgHtmLeUvMZWUIU5aWvlFBF12hOMDQT/g8fGzUlWn cqeQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=WXZbSp94; 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 fl21si5554433ejc.264.2021.02.14.08.24.21; Sun, 14 Feb 2021 08:24:58 -0800 (PST) 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=WXZbSp94; 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 S229637AbhBNQW3 (ORCPT + 99 others); Sun, 14 Feb 2021 11:22:29 -0500 Received: from mail-bn8nam11on2132.outbound.protection.outlook.com ([40.107.236.132]:4864 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S229783AbhBNQW1 (ORCPT ); Sun, 14 Feb 2021 11:22:27 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jXhDNkHzEnQT7Sm6WcAQRyPG4u7DSqKhhStyQ4Wu+UrCygnejaTROYgsxUCV0LADyTj6zSWMpWfre2U4NexQOEcFRcv8pADW/i7qUcoCH2IhrukYOvItrHcvawEYvYf8ZiSQyQin4TfQQ6wJDL/t1c5zWqrptTrKCXE3KoZO+KufIPZ98yg7+BQE2SGW785aii9lvLZT/z4r5o978jSyaEUC8tIfzl0mbMakCjanWeVO7/y8FOY6xF5MiC99dPpjYbiF9N4TCkQQ9gFH08IOMtr82puFaQvK8BGWKL9TiKPazt//NeFSnI98spN/3bYw4mN8cdvbxgQkISJTDzh3uQ== 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=6OI2hS5L6jFc0xzYc8Bx93vlPV8J/0m00FXxE8M/DzY=; b=AUJBEy68MLzU0F5ixsZ1A2uYoFLALXNAnpfn46rkiqGQhYsB7Y11sZed32GiOXXbKLsdoQQ5fiJRt2vXVtcNAoJZ8fToMHnpvzKPtLEJkWLaIIzx/vK53axb3Xj6L/8gNmmP4Z18d04C/gmrhQw6PkBE/wz366h/3G/xp2vutwAzHSEPgPX9AayHdVtR2dAk3L9TlMHeRIPfJKLXCA5aGnAV83ll0uY7cvLsY4MdHhuSjJl7oK1aGOCRzBW+cjRf48fV5yrshgRl1Wff+yySyjAYcOIaZETLzEWCKUunYi73RRSgbyTmnCRgJTU59rdvEsBLqn5M2k+OMhKCDLDndg== 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=6OI2hS5L6jFc0xzYc8Bx93vlPV8J/0m00FXxE8M/DzY=; b=WXZbSp940ZQ/ygv4nuFr5OXtAjvmc3/w7DDpR9ZNc70lO5YOweJlJW4+iTRifyTR4lrhlgEep7GfsDMdHuCiSC+luDLwErshREI7ukvY4L8J9Bbxuht+lPwgXQd1jJA+mgq2TZyTq9dB0YmZRsP9lX490BhM+XagVSjH5oM9/X4= Received: from CH2PR13MB3525.namprd13.prod.outlook.com (2603:10b6:610:21::29) by CH2PR13MB3846.namprd13.prod.outlook.com (2603:10b6:610:a2::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3868.11; Sun, 14 Feb 2021 16:21:32 +0000 Received: from CH2PR13MB3525.namprd13.prod.outlook.com ([fe80::f453:2dd2:675:d063]) by CH2PR13MB3525.namprd13.prod.outlook.com ([fe80::f453:2dd2:675:d063%3]) with mapi id 15.20.3868.019; Sun, 14 Feb 2021 16:21:31 +0000 From: Trond Myklebust To: "chuck.lever@oracle.com" CC: "linux-nfs@vger.kernel.org" , "bfields@redhat.com" Subject: Re: [PATCH] SUNRPC: Use TCP_CORK to optimise send performance on the server Thread-Topic: [PATCH] SUNRPC: Use TCP_CORK to optimise send performance on the server Thread-Index: AQHXAkaKHQ4x2Pj5G0O0h0qlFPlIMKpWoMuAgAAErYCAABZIAIABGpiA Date: Sun, 14 Feb 2021 16:21:31 +0000 Message-ID: <8ce015080f2f4eb57a81e10041947ad7e6f31499.camel@hammerspace.com> References: <20210213202532.23146-1-trondmy@kernel.org> <952C605B-C072-4C6B-B9C0-88C25A3B891E@oracle.com> <4CD2739A-D39B-48C9-BCCF-A9DF1047D507@oracle.com> In-Reply-To: <4CD2739A-D39B-48C9-BCCF-A9DF1047D507@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-originating-ip: [68.36.133.222] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a08a1055-377a-4036-76e6-08d8d1049713 x-ms-traffictypediagnostic: CH2PR13MB3846: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mdugIBZeKtGHtDZs3bGwxV8btdOd2sBrSkhQA/OxVUvDPuQChkxXnXa6fBEazgYut3WARYJGi1oxiUdr0g1ATiBBI51/6omcuOWn7gvBy7/wfeQ8bfai8GIuD3uAEsaL3Tw4podY2Z8INNgitlE8UfJdhg8cMW8LsG+RAxuHyVxRFxM81v0DusRlgl1A7kJViK9+nHrsY+UrSEflnmDXVK6wsoWizJF8QGWMPGR5nzhjN6kBpZRN+0D8xUWADtBYIPOZYKqzH1hHfRVGNxvZT+Uop7UEPamlzqQH1HYLWSbTNY5LBd+JYyQxEivBMqEtidICV5uh5tOHGbzUyVT2R/ureFGsuRgAFct0SQBiKHjvQX+SbpLRXxRFDAZ+eDINDwpH0j+D275Vm5+JB6KSyaJCPXiIyxRkLUux3wooE1fmGo99sUC5qBZjOqPEOv8TcpGDMfRvR0doc5NU2MWTlcscOzxT5I02Rzw+zcF/D8Ka8mEJIkW0MMWF+nBx2TDfeWk5s7OUUGrPL5Jlt98SIrEVb7TgZeDZRV3Gk3ed4z9KAQxedkAEsN8eDkjqqZ3eBdHtqCjxYnyRom/GDsPRjFdqQ1VWo1XvyT7T2+OJZX4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR13MB3525.namprd13.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(376002)(346002)(136003)(76116006)(66476007)(83380400001)(86362001)(5660300002)(8676002)(36756003)(66446008)(15974865002)(6512007)(4326008)(8936002)(6506007)(6916009)(186003)(2616005)(26005)(2906002)(66556008)(53546011)(66946007)(71200400001)(6486002)(54906003)(64756008)(508600001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?TmJPcU9iU0VaVHVmOGVWdTVkcWYxTkg3R2tkNllzN1JaN3RFdUtQZGJ2OVNU?= =?utf-8?B?N2dGbWZvUlhUK2M0bUhyY0FPREczenRZTHlhd1RBeEdmcExMczVMRjVBdUxP?= =?utf-8?B?VzhVQ2E4eDZZdSswMDI4RnVuRjdKSnZ1aTJtSUZzVXkrdEU4ekxqSjhvVlFm?= =?utf-8?B?M3VicHZRdnJkYnRKMlI4ejRsS2xDQjNhYkJNUXBtSDZOVm92MWFTcDhSbGVR?= =?utf-8?B?TFJHQktzbjBvb0hJa2VsR09oOWdTb1VQWlZGSURtOS83K29KZk1mV2FjV0Mx?= =?utf-8?B?NU9IZ2dncU5vYlhSL2lJcTN1eTkxd0kwQ3BTMU1qMlVlZ0Z0K05YV2xQOExF?= =?utf-8?B?YVVMSldMRU1HVmljbjJVTHRycmQxQWJNSyswOGVKbGE0WDlEMVdOSDl4aFBD?= =?utf-8?B?Qngvc00vZm5LNEhYWDNLTXZGckQ3OU5KZ2ZqcndGV0lyd1J6NHVmbExIQ2px?= =?utf-8?B?VG1qK0FZVXhEMXgyeTJpS1phd3RWU240dmduKzVxd29peUUzK2ZZT2xFOUZF?= =?utf-8?B?MHFzUm84dWdxQzVoYUV2WlNBZ01JQW9TZlhTVlN2d0F6NElJK3k1ek9MRWNt?= =?utf-8?B?SGtGSFprZHFWUlNsL3VVQVRwVDQzUkNGQUhGWHdOU0lqK1E4dkpJb0ZVU295?= =?utf-8?B?RlpEcmtHcGU0RnN1RWxVVjZmN2t0MmhldVBQN25FSWMvVWpXUEl0RlVsSnBP?= =?utf-8?B?Mzg5aWw0Q0VZV01DWjZ5c0FTbXBpaFVqUkdVSFdQUjRlKzNXSm5wNy9xMXF4?= =?utf-8?B?U1VETzk3V0t2a3BVcG4yQm11VHNySUg0TmdKdFhhSDNqeWRhVXlkZldqQy9G?= =?utf-8?B?ZFJrZEJWUTBtdXhjRVpNQ3RYeVVueW1lRW81Wk1RNlJPTUZ3WGJRK1Q3Y25r?= =?utf-8?B?K2pFOG9kVGtDTnBZN3lBZlNvVlJqYzlGa3VxMS9hYTNsWUllcmVPNHdGMHJL?= =?utf-8?B?RTluYnZxc1NJVVZmb0MxUFNrNnFVWjVYMVduZ1AwWVNWQW0zSG9Ndk9iNWNG?= =?utf-8?B?c1FqbEtDclZVeVRQdDNIVU95KzNBMHlsYmhTWmI0bVJKQ2ErYVRVZ00zczdY?= =?utf-8?B?VHJGdGpJbWNESGRxMHF6RDQ4RE01WVFhQzVHZlJ6a0JhL1AvdEZWUi9ZTmFk?= =?utf-8?B?UzJ2Y2NXWEtoYnZtTnE2UE9wZGV0VFZ4aUE0VUt1cndRQmFBYlVRRnoxYXlI?= =?utf-8?B?YnEzZjVucnRjNWhxeitsb0xJaU93RjBlNmJIVzhub3BLMEZuT01vdzd3bzRn?= =?utf-8?B?STJ6NkhTUUY1VXYzWFpHVjR2SEtFa2NlbmoxSHF3SW9lSHJWQ3VaOUdlaDNh?= =?utf-8?B?aURRZ00rUWJycXpNUzZmdWpWT21ZT0x1aE9PMWxuQTVZcyt1K0ltd1pzaDhM?= =?utf-8?B?aFBKU3VYM0lkWWhOMm0zbVBnR3YzUGt5WVZ4bmRaejNDTld4Sk04UWxielNt?= =?utf-8?B?di96WUo2VmczUXlEaTVOQ0RualE0ZXRESHAwcE9ITVFMSlJVOVRUd054bUdv?= =?utf-8?B?cG5hN1l4bjR5My9pMmxPamFTYmhoSUdhb0F3czFudzE0TWpOZzFqeUhRc2sz?= =?utf-8?B?eXpscFVSK1NuMTEweHV1Q2JOaC9FSHFuNlU0NlNlU2NhL1N1dlBvUWZsVVNi?= =?utf-8?B?OUJsUXMxN3dIV2xFZUwyMkNzU015RzJmUVBKMlllRzNwOUpzQkJPVnRZNUdS?= =?utf-8?B?S0xzbWpneEcvTnYvdUJ2ajNlMW9mM1k1WFE1TzRxMnY3K1hEOW84dGNuWGZw?= =?utf-8?Q?nBeglqd1VzuSSceNeoEkCw+E9N9kdLQWd3NC6Ia?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <2D20C6A106BC0040AC1AAB39058401F9@namprd13.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR13MB3525.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a08a1055-377a-4036-76e6-08d8d1049713 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Feb 2021 16:21:31.5985 (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: 1fxyodZCLzg4FTORKXTzI1WlgbNLicgCEGfq5DwQsobZj+QmVEGL2BjIDIWaBQ3Q57FbaAajDShPMCq/cIAELg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR13MB3846 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gU2F0LCAyMDIxLTAyLTEzIGF0IDIzOjMwICswMDAwLCBDaHVjayBMZXZlciB3cm90ZToNCj4g DQo+IA0KPiA+IE9uIEZlYiAxMywgMjAyMSwgYXQgNToxMCBQTSwgVHJvbmQgTXlrbGVidXN0IDwN Cj4gPiB0cm9uZG15QGhhbW1lcnNwYWNlLmNvbT4gd3JvdGU6DQo+ID4gDQo+ID4gT24gU2F0LCAy MDIxLTAyLTEzIGF0IDIxOjUzICswMDAwLCBDaHVjayBMZXZlciB3cm90ZToNCj4gPiA+IEhpIFRy b25kLQ0KPiA+ID4gDQo+ID4gPiA+IE9uIEZlYiAxMywgMjAyMSwgYXQgMzoyNSBQTSwgdHJvbmRt eUBrZXJuZWwub3JnwqB3cm90ZToNCj4gPiA+ID4gDQo+ID4gPiA+IEZyb206IFRyb25kIE15a2xl YnVzdCA8dHJvbmQubXlrbGVidXN0QGhhbW1lcnNwYWNlLmNvbT4NCj4gPiA+ID4gDQo+ID4gPiA+ IFVzZSBhIGNvdW50ZXIgdG8ga2VlcCB0cmFjayBvZiBob3cgbWFueSByZXF1ZXN0cyBhcmUgcXVl dWVkDQo+ID4gPiA+IGJlaGluZA0KPiA+ID4gPiB0aGUNCj4gPiA+ID4geHBydC0+eHB0X211dGV4 LCBhbmQga2VlcCBUQ1BfQ09SSyBzZXQgdW50aWwgdGhlIHF1ZXVlIGlzDQo+ID4gPiA+IGVtcHR5 Lg0KPiA+ID4gDQo+ID4gPiBJJ20gaW50cmlndWVkLCBidXQgSU1PLCB0aGUgcGF0Y2ggZGVzY3Jp cHRpb24gbmVlZHMgdG8gZXhwbGFpbg0KPiA+ID4gd2h5IHRoaXMgY2hhbmdlIHNob3VsZCBiZSBt YWRlLiBXaHkgYWJhbmRvbiBOYWdsZT8NCj4gPiA+IA0KPiA+IA0KPiA+IFRoaXMgZG9lc24ndCBj aGFuZ2UgdGhlIE5hZ2xlL1RDUF9OT0RFTEFZIHNldHRpbmdzLiBJdCBqdXN0DQo+ID4gc3dpdGNo ZXMgdG8NCj4gPiB1c2luZyB0aGUgbmV3IGRvY3VtZW50ZWQga2VybmVsIGludGVyZmFjZS4NCj4g PiANCj4gPiBUaGUgb25seSBjaGFuZ2UgaXMgdG8gdXNlIFRDUF9DT1JLIHNvIHRoYXQgd2UgZG9u J3Qgc2VuZCBvdXQNCj4gPiBwYXJ0aWFsbHkNCj4gPiBmaWxsZWQgVENQIGZyYW1lcywgd2hlbiB3 ZSBjYW4gc2VlIHRoYXQgdGhlcmUgYXJlIG90aGVyIFJQQyByZXBsaWVzDQo+ID4gdGhhdCBhcmUg cXVldWVkIHVwIGZvciB0cmFuc21pc3Npb24uDQo+ID4gDQo+ID4gTm90ZSB0aGUgY29tYmluYXRp b24gVENQX0NPUksrVENQX05PREVMQVkgaXMgY29tbW9uLCBhbmQgdGhlIG1haW4NCj4gPiBlZmZl Y3Qgb2YgdGhlIGxhdHRlciBpcyB0aGF0IHdoZW4gd2UgdHVybiBvZmYgdGhlIFRDUF9DT1JLLCB0 aGVuDQo+ID4gdGhlcmUNCj4gPiBpcyBhbiBpbW1lZGlhdGUgZm9yY2VkIHB1c2ggb2YgdGhlIFRD UCBxdWV1ZS4NCj4gDQo+IFRoZSBkZXNjcmlwdGlvbiBhYm92ZSBzdWdnZXN0cyB0aGUgcGF0Y2gg aXMganVzdCBhDQo+IGNsZWFuLXVwLCBidXQgYSBmb3JjZWQgcHVzaCBoYXMgcG90ZW50aWFsIHRv IGNoYW5nZQ0KPiB0aGUgc2VydmVyJ3MgYmVoYXZpb3IuDQoNCldlbGwsIHllcy4gVGhhdCdzIHZl cnkgbXVjaCB0aGUgcG9pbnQuDQoNClJpZ2h0IG5vdywgdGhlIFRDUF9OT0RFTEFZL05hZ2xlIHNl dHRpbmcgbWVhbnMgdGhhdCB3ZSdyZSBkb2luZyB0aGF0DQpmb3JjZWQgcHVzaCBhdCB0aGUgZW5k IG9mIF9ldmVyeV8gUlBDIHJlcGx5LCB3aGV0aGVyIG9yIG5vdCB0aGVyZSBpcw0KbW9yZSBzdHVm ZiB0aGF0IGNhbiBiZSBxdWV1ZWQgdXAgaW4gdGhlIHNvY2tldC4gVGhlIE1TR19NT1JFIGlzIHRo ZQ0Kb25seSB0aGluZyB0aGF0IGtlZXBzIHVzIGZyb20gZG9pbmcgdGhlIGZvcmNlZCBwdXNoIG9u IGV2ZXJ5IHNlbmRwYWdlKCkNCmNhbGwuDQpTbyB0aGUgVENQX0NPUksgaXMgdGhlcmUgdG8gX2Z1 cnRoZXIgZGVsYXlfIHRoYXQgZm9yY2VkIHB1c2ggdW50aWwgd2UNCnRoaW5rIHRoZSBxdWV1ZSBp cyBlbXB0eS4NCg0KSU9XOiBpdCBhdHRlbXB0cyB0byBvcHRpbWlzZSB0aGUgc2NoZWR1bGluZyBv ZiB0aGF0IHB1c2ggdW50aWwgd2UncmUNCmFjdHVhbGx5IGRvbmUgcHVzaGluZyBtb3JlIHN0dWZm IGludG8gdGhlIHNvY2tldC4NCg0KPiBJJ20gdHJ5aW5nIHRvIGFzc2VzcyB3aGF0IGtpbmQgb2Yg YWRkaXRpb25hbCB0ZXN0aW5nDQo+IHdvdWxkIGJlIHZhbHVhYmxlLg0KPiANCj4gDQo+ID4gPiBJ ZiB5b3UgZXhwZWN0IGEgcGVyZm9ybWFuY2UgaW1wYWN0LCB0aGUgZGVzY3JpcHRpb24gc2hvdWxk DQo+ID4gPiBwcm92aWRlIG1ldHJpY3MgdG8gc2hvdyBpdC4NCj4gPiANCj4gPiBJIGRvbid0IGhh dmUgYSBwZXJmb3JtYW5jZSBzeXN0ZW0gdG8gbWVhc3VyZSB0aGUgaW1wcm92ZW1lbnQNCj4gPiBh Y2N1cmF0ZWx5Lg0KPiANCj4gVGhlbiBsZXQncyBoYXZlIERhaXJlIHRyeSBpdCBvdXQsIGlmIHBv c3NpYmxlLg0KPiANCj4gDQo+ID4gSG93ZXZlciBJIGFtIHNlZWluZyBhbiBub3RhYmxlIGltcHJv dmVtZW50IHdpdGggdGhlDQo+ID4gZXF1aXZhbGVudCBjbGllbnQgY2hhbmdlLiBTcGVjaWZpY2Fs bHksIHhmc3Rlc3RzIGdlbmVyaWMvMTI3IHNob3dzDQo+ID4gYQ0KPiA+IH4yMCUgaW1wcm92ZW1l bnQgb24gbXkgVk0gYmFzZWQgdGVzdCByaWcuDQo+IA0KPiA+ID4gKFdlIHNob3VsZCBoYXZlIERh aXJlIHRyeSB0aGlzIGNoYW5nZSB3aXRoIGhpcyBtdWx0aS1jbGllbnQNCj4gPiA+IHNldHVwKS4N Cj4gPiA+IA0KPiA+ID4gDQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFRyb25kIE15a2xlYnVzdA0K PiA+ID4gPiA8dHJvbmQubXlrbGVidXN0QGhhbW1lcnNwYWNlLmNvbT4NCj4gPiA+ID4gLS0tDQo+ ID4gPiA+IGluY2x1ZGUvbGludXgvc3VucnBjL3N2Y3NvY2suaCB8IDIgKysNCj4gPiA+ID4gbmV0 L3N1bnJwYy9zdmNzb2NrLmPCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDggKysrKysrKy0NCj4gPiA+ ID4gMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPiA+ ID4gDQo+ID4gPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy9zdmNzb2NrLmgN Cj4gPiA+ID4gYi9pbmNsdWRlL2xpbnV4L3N1bnJwYy9zdmNzb2NrLmgNCj4gPiA+ID4gaW5kZXgg YjdhYzdmZTY4MzA2Li5iY2M1NTVjN2FlOWMgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2luY2x1ZGUv bGludXgvc3VucnBjL3N2Y3NvY2suaA0KPiA+ID4gPiArKysgYi9pbmNsdWRlL2xpbnV4L3N1bnJw Yy9zdmNzb2NrLmgNCj4gPiA+ID4gQEAgLTM1LDYgKzM1LDggQEAgc3RydWN0IHN2Y19zb2NrIHsN Cj4gPiA+ID4gwqDCoMKgwqDCoMKgwqAgLyogVG90YWwgbGVuZ3RoIG9mIHRoZSBkYXRhIChub3Qg aW5jbHVkaW5nIGZyYWdtZW50DQo+ID4gPiA+IGhlYWRlcnMpDQo+ID4gPiA+IMKgwqDCoMKgwqDC oMKgwqAgKiByZWNlaXZlZCBzbyBmYXIgaW4gdGhlIGZyYWdtZW50cyBtYWtpbmcgdXAgdGhpcyBy cGM6DQo+ID4gPiA+ICovDQo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgIHUzMsKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2tfZGF0YWxlbjsNCj4gPiA+ID4gK8KgwqDCoMKg wqDCoCAvKiBOdW1iZXIgb2YgcXVldWVkIHNlbmQgcmVxdWVzdHMgKi8NCj4gPiA+ID4gK8KgwqDC oMKgwqDCoCBhdG9taWNfdMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBza19zZW5kcWxl bjsNCj4gPiA+IA0KPiA+ID4gQ2FuIHlvdSB0YWtlIGFkdmFudGFnZSBvZiB4cHRfbXV0ZXg6IHVw ZGF0ZSB0aGlzIGZpZWxkDQo+ID4gPiBvbmx5IGluIHRoZSBjcml0aWNhbCBzZWN0aW9uLCBhbmQg bWFrZSBpdCBhIHNpbXBsZQ0KPiA+ID4gaW50ZWdlciB0eXBlPw0KPiANCj4gSSBzZWUgd2h5IGF0 b21pY19pbmMoJnNrX3NlbmRxbGVuKTsgaGFzIHRvIGhhcHBlbiBvdXRzaWRlDQo+IHRoZSBtdXRl eC4gSG93ZXZlciwgaXQgc2VlbXMgYSBsaXR0bGUgY3JhenkvY29zdGx5IHRvIGhhdmUNCj4gYm90 aCBvZiB0aGVzZSBzZXJpYWxpemF0aW9uIHByaW1pdGl2ZXMuDQo+IA0KPiBJIGhhdmVuJ3QgZm91 bmQgYSBtdXRleF91bmxvY2soKSB0aGF0IHdpbGwgcmVwb3J0IHRoYXQgdGhlcmUNCj4gYXJlIG5v IHdhaXRlcnMgdG8gd2FrZSB1cCwgdGhvdWdoLg0KPiANCj4gDQo+ID4gPiA+IMKgwqDCoMKgwqDC oMKgIHN0cnVjdCBwYWdlICrCoMKgwqDCoMKgwqDCoMKgwqDCoCBza19wYWdlc1tSUENTVkNfTUFY UEFHRVNdO8KgwqDCoMKgwqANCj4gPiA+ID4gLyoNCj4gPiA+ID4gcmVjZWl2ZWQgZGF0YSAqLw0K PiA+ID4gPiB9Ow0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9zdmNzb2NrLmMgYi9u ZXQvc3VucnBjL3N2Y3NvY2suYw0KPiA+ID4gPiBpbmRleCA1YTgwOWM2NGRjN2IuLjIzMWY1MTBh NDgzMCAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvbmV0L3N1bnJwYy9zdmNzb2NrLmMNCj4gPiA+ID4g KysrIGIvbmV0L3N1bnJwYy9zdmNzb2NrLmMNCj4gPiA+ID4gQEAgLTExNzEsMTggKzExNzEsMjMg QEAgc3RhdGljIGludCBzdmNfdGNwX3NlbmR0byhzdHJ1Y3QNCj4gPiA+ID4gc3ZjX3Jxc3QNCj4g PiA+ID4gKnJxc3RwKQ0KPiA+ID4gPiANCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqAgc3ZjX3RjcF9y ZWxlYXNlX3Jxc3QocnFzdHApOw0KPiA+ID4gPiANCj4gPiA+ID4gK8KgwqDCoMKgwqDCoCBhdG9t aWNfaW5jKCZzdnNrLT5za19zZW5kcWxlbik7DQo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgIG11dGV4 X2xvY2soJnhwcnQtPnhwdF9tdXRleCk7DQo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgIGlmIChzdmNf eHBydF9pc19kZWFkKHhwcnQpKQ0KPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgZ290byBvdXRfbm90Y29ubjsNCj4gPiA+ID4gK8KgwqDCoMKgwqDCoCB0Y3Bfc29ja19zZXRf Y29yayhzdnNrLT5za19zaywgdHJ1ZSk7DQo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgIGVyciA9IHN2 Y190Y3Bfc2VuZG1zZyhzdnNrLT5za19zb2NrLCAmbXNnLCB4ZHIsIG1hcmtlciwNCj4gPiA+ID4g JnNlbnQpOw0KPiA+ID4gPiDCoMKgwqDCoMKgwqDCoCB4ZHJfZnJlZV9idmVjKHhkcik7DQo+ID4g PiA+IMKgwqDCoMKgwqDCoMKgIHRyYWNlX3N2Y3NvY2tfdGNwX3NlbmQoeHBydCwgZXJyIDwgMCA/ IGVyciA6IHNlbnQpOw0KPiA+ID4gPiDCoMKgwqDCoMKgwqDCoCBpZiAoZXJyIDwgMCB8fCBzZW50 ICE9ICh4ZHItPmxlbiArIHNpemVvZihtYXJrZXIpKSkNCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGdvdG8gb3V0X2Nsb3NlOw0KPiA+ID4gPiArwqDCoMKgwqDCoMKgIGlm IChhdG9taWNfZGVjX2FuZF90ZXN0KCZzdnNrLT5za19zZW5kcWxlbikpDQo+ID4gPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRjcF9zb2NrX3NldF9jb3JrKHN2c2stPnNrX3NrLCBm YWxzZSk7DQo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgIG11dGV4X3VubG9jaygmeHBydC0+eHB0X211 dGV4KTsNCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHNlbnQ7DQo+ID4gPiA+IA0KPiA+ ID4gPiBvdXRfbm90Y29ubjoNCj4gPiA+ID4gK8KgwqDCoMKgwqDCoCBhdG9taWNfZGVjKCZzdnNr LT5za19zZW5kcWxlbik7DQo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgIG11dGV4X3VubG9jaygmeHBy dC0+eHB0X211dGV4KTsNCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9UQ09OTjsN Cj4gPiA+ID4gb3V0X2Nsb3NlOg0KPiA+ID4gPiBAQCAtMTE5Miw2ICsxMTk3LDcgQEAgc3RhdGlj IGludCBzdmNfdGNwX3NlbmR0byhzdHJ1Y3Qgc3ZjX3Jxc3QNCj4gPiA+ID4gKnJxc3RwKQ0KPiA+ ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChlcnIgPCAwKSA/IGVyciA6 IHNlbnQsIHhkci0+bGVuKTsNCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqAgc2V0X2JpdChYUFRfQ0xP U0UsICZ4cHJ0LT54cHRfZmxhZ3MpOw0KPiA+ID4gPiDCoMKgwqDCoMKgwqDCoCBzdmNfeHBydF9l bnF1ZXVlKHhwcnQpOw0KPiA+ID4gPiArwqDCoMKgwqDCoMKgIGF0b21pY19kZWMoJnN2c2stPnNr X3NlbmRxbGVuKTsNCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqAgbXV0ZXhfdW5sb2NrKCZ4cHJ0LT54 cHRfbXV0ZXgpOw0KPiA+ID4gPiDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVBR0FJTjsNCj4gPiA+ ID4gfQ0KPiA+ID4gPiBAQCAtMTI2MSw3ICsxMjY3LDcgQEAgc3RhdGljIHZvaWQgc3ZjX3RjcF9p bml0KHN0cnVjdCBzdmNfc29jaw0KPiA+ID4gPiAqc3Zzaywgc3RydWN0IHN2Y19zZXJ2ICpzZXJ2 KQ0KPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3Zzay0+c2tfZGF0YWxl biA9IDA7DQo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtZW1zZXQoJnN2 c2stPnNrX3BhZ2VzWzBdLCAwLCBzaXplb2Yoc3Zzay0NCj4gPiA+ID4gPiBza19wYWdlcykpOw0K PiA+ID4gPiANCj4gPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdGNwX3NrKHNr KS0+bm9uYWdsZSB8PSBUQ1BfTkFHTEVfT0ZGOw0KPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB0Y3Bfc29ja19zZXRfbm9kZWxheShzayk7DQo+ID4gPiA+IA0KPiA+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2V0X2JpdChYUFRfREFUQSwgJnN2c2stPnNr X3hwcnQueHB0X2ZsYWdzKTsNCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHN3aXRjaCAoc2stPnNrX3N0YXRlKSB7DQo+ID4gPiA+IC0tIA0KPiA+ID4gPiAyLjI5LjINCj4g PiA+ID4gDQo+ID4gPiANCj4gPiA+IC0tDQo+ID4gPiBDaHVjayBMZXZlcg0KPiA+ID4gDQo+ID4g PiANCj4gPiA+IA0KPiA+IA0KPiA+IC0tIA0KPiA+IFRyb25kIE15a2xlYnVzdA0KPiA+IExpbnV4 IE5GUyBjbGllbnQgbWFpbnRhaW5lciwgSGFtbWVyc3BhY2UNCj4gPiB0cm9uZC5teWtsZWJ1c3RA aGFtbWVyc3BhY2UuY29tDQo+IA0KPiAtLQ0KPiBDaHVjayBMZXZlcg0KPiANCj4gDQo+IA0KDQot LSANClRyb25kIE15a2xlYnVzdA0KQ1RPLCBIYW1tZXJzcGFjZSBJbmMNCjQ5ODQgRWwgQ2FtaW5v IFJlYWwsIFN1aXRlIDIwOA0KTG9zIEFsdG9zLCBDQSA5NDAyMg0K4oCLDQp3d3cuaGFtbWVyLnNw YWNlDQoNCg==