From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 239F4A00C5; Mon, 24 Oct 2022 04:11:02 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 10B6641181; Mon, 24 Oct 2022 04:11:02 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id B859E40E5A for ; Mon, 24 Oct 2022 04:10:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1666577459; x=1698113459; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=l/cKjhfffAJ24m7zssU9a3yYP3ayFggYxyszFcS22co=; b=T9mIwNYfNL7/6wYxN8nuZfo4/KP4YDhE63U8UAyK1o6gol4LZnJeq018 ZWXN/e2vQsFa1RhgDETvZs+glFfcUomxiK3Qb0B51Q3tabcJL6vEI7C+/ Syb0UaxwqTii5sj1pjA4dSSf4CRXL60p6Yt+fmWuuUs0BTYB41PmSi+D8 OKn9oDSYGvwHVNpD3kFOHKKVavtI/rYIrSdRJNSeJwbG08AuwXTxqvzJa 7LUYY4PMzCXOVpCYh97zkzZpxpiJrnfFPmXJcvkjx/ThVK9rrgpFUlUmf 1YgyphnBvo0VEKwt7ABd3ZLhaYF/X53W/iYCYdJQuUq2eh2U1ni/eQig3 g==; X-IronPort-AV: E=McAfee;i="6500,9779,10509"; a="309006649" X-IronPort-AV: E=Sophos;i="5.95,207,1661842800"; d="scan'208";a="309006649" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Oct 2022 19:10:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10509"; a="756430686" X-IronPort-AV: E=Sophos;i="5.95,207,1661842800"; d="scan'208";a="756430686" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga004.jf.intel.com with ESMTP; 23 Oct 2022 19:10:59 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Sun, 23 Oct 2022 19:10:58 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Sun, 23 Oct 2022 19:10:58 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Sun, 23 Oct 2022 19:10:58 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.172) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Sun, 23 Oct 2022 19:10:48 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aE8iV83hJOHl0Lctb2tpyNeXenRl3Ce7+tDiqF0zE6b+51UgH3s5SPP2Bm3i5hkZXkrTrTXSw4ZcSn2yuWtuSEA9tBJTVFdeEuXT+fc80FugUp8HT96ptIRJT8Y7KU3omIvDfAs8pQtJaLwtT2QkMK1Em7nV55c9C6SGvyVETHFbZ62mrecuvTcErDZdoEmwrWnzTn3MwDKl4TvMFpcl3QpvtIt63/SWIQymUfHkS+QREmWxPsEcme0seS7SrBE/hi3gjfR4Ue2yKon7UhP49+WgCfl5lEzBck9zz7KWFfPFkIG3l64MVMkb4fVLLAdjwINckBoW9soLUHJurAHvOA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=l/cKjhfffAJ24m7zssU9a3yYP3ayFggYxyszFcS22co=; b=YPs7QXR9mjirWt6g23as0rYvBuVWDwvhKIraGNgnbP+YsVpfq19pq+JHllqFowZSNrY5FpgZFXNcd0Ys/Zfk0esL4iwBqxWfxYOjAEKHl2x5xzNkcAzSMLieoZyCEPA6dV/dY9tG9xbGXbBJ+1Kv0xO7Vivp9aXM/nSDlEVygl0EXQHqmvk5uWxNTkoZYn5Qzj//4D3qe8tUEQmt1eln9hSvZoBZScQICFFan5orDdXdJfkAof/AR+dwgWRpjIaj/sruIEWlBz2e5krFiowkkTGW9CzsaWitOgI9eF2LAUslvnnHjoE3xKWbuRTsNst5072fGpXxaoEXY7CrxFnfEg== 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 Received: from DM6PR11MB3723.namprd11.prod.outlook.com (2603:10b6:5:13f::25) by LV2PR11MB6021.namprd11.prod.outlook.com (2603:10b6:408:17e::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5746.21; Mon, 24 Oct 2022 02:10:46 +0000 Received: from DM6PR11MB3723.namprd11.prod.outlook.com ([fe80::126d:f905:c1d6:dcb9]) by DM6PR11MB3723.namprd11.prod.outlook.com ([fe80::126d:f905:c1d6:dcb9%5]) with mapi id 15.20.5723.033; Mon, 24 Oct 2022 02:10:46 +0000 From: "Guo, Junfeng" To: Ferruh Yigit , "Zhang, Qi Z" , "Wu, Jingjing" , "Xing, Beilei" CC: "dev@dpdk.org" , "Li, Xiaoyun" , "awogbemila@google.com" , "Richardson, Bruce" , "hemant.agrawal@nxp.com" , "stephen@networkplumber.org" , "Xia, Chenbo" , "Zhang, Helin" Subject: RE: [PATCH v6 8/8] net/gve: add support for Rx/Tx Thread-Topic: [PATCH v6 8/8] net/gve: add support for Rx/Tx Thread-Index: AQHY5HAv87/bbYlk50uR9bv2M4sWFa4XXMUAgAEGgjA= Date: Mon, 24 Oct 2022 02:10:46 +0000 Message-ID: References: <20221010101757.878317-2-junfeng.guo@intel.com> <20221020103656.1068036-1-junfeng.guo@intel.com> <20221020103656.1068036-9-junfeng.guo@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR11MB3723:EE_|LV2PR11MB6021:EE_ x-ms-office365-filtering-correlation-id: 691739a3-e705-4349-01a3-08dab564f66a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: twKBWj+RPRpcXnA2eGf/tFvnLfWvyg1t1OYApPTrxXxRjsabWC/FV+I3lnIKj8mJKl4eM2aG6eWEXt2k781+fJEpZJ74dOiu68CzduOW/xgriApbo3HEPdc6zgYObnrTp1wytO3x9G2fus+QXnqiNqqLS7zFl/L2B5YAA8OdnV25Zq2YeBPDahFEyXw34SY2LCJczKIGbUWQQeDFODNHDNPz2nOF0EdX3m65Ble1PkMQsNAmp88H2S22vZ4SSsbepjjPnE3CGGSUPgEUYsA8WBo4hdT6CeklGbXOyUi98vaojRp7g1CzWWk8CMsuIyNlg0DX+BYwxS+r3PHwROVFFPZ1MptjaxznAOQIrAFe/qDjWt/yNnp/tLWknOV0P2h7nnYoKHC24GBtmWPlau0XriMfb5F4rjmiuGb+ICPmC4PFIZbKozVseHz4LWPtDZiTy0D3RVxy5lSz4BrpOBkqenkMTL6df4g11nK6eXq1shaEjV7s04gvuyzjnALRz9XjIl8/a2U3/oc9MfIFqWXsjmpUeFv6DmF3CBxM6weRhKqp6UhYxZKDmq1Lj9JeDnpJqVv0zZtJfUGBi13iqdoQgDE21EPI0vAnRlSYeq9njRWNMGuUiKZORYkTKbAUXESsZpRZVD8HmgLoH+Hicwt1oE5DWCMVCZoZ37IRrb2hAIwOFJObFJqeYllXj25HAzei+yzQXtd39EKB6fIMPRACsUIOspMxsuR6dLJoz/bk6w3V3jRlxpA7RXZ9FH75z09DYh9rjOX8gad9wHbnxCHVFg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB3723.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(39860400002)(366004)(376002)(346002)(136003)(396003)(451199015)(122000001)(5660300002)(52536014)(38100700002)(41300700001)(8936002)(316002)(66556008)(83380400001)(7696005)(6506007)(55016003)(33656002)(53546011)(107886003)(86362001)(66476007)(82960400001)(64756008)(66446008)(4326008)(76116006)(8676002)(110136005)(9686003)(26005)(54906003)(186003)(478600001)(66946007)(2906002)(38070700005)(71200400001)(6636002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WkREbUhJdXZ4d0ROVCtET0VaN010TUlveTQrMXVwbDRzL0VMSlBUQ0FoNnlG?= =?utf-8?B?YjRvczI0SCtkOGhEU0pCNzNKaEdNMkZtVG9oWFlZUkNPY3BaSzF5Slc0Qzk4?= =?utf-8?B?eEFTdjdYMEU3WVBkYk9qSXU0YXVWVUNUKzFoRFpYWVQrOE1SR1Q3cTNkN2I1?= =?utf-8?B?WFJtdXNhVk5CM2NLaHFXQzlzamtRd01WN3FwSlJOWG9wUjhicWFNdmdmRGQr?= =?utf-8?B?QStVU1VJb3RNVjh4WmNJZ3RWOXlxNmQ3bkJBbmFyd05Qa3ErbW5VRnk1eGFx?= =?utf-8?B?ZEdZanRIQU15ZzcwL0R0MmJveEdGZXZKRDB0Ynk2bFJxVHJ3RTZOekJmbUtJ?= =?utf-8?B?VENHZHIva1ZLbXdlMFZHT1B0SkV4RnYwRHlOdW82Y1ZlRFpudlJJUVJFMVFJ?= =?utf-8?B?N25EMnNCSTBvL3hGQ2dYVVVnWXlLRkJ1NVRicnI0M3E1S1lDMEZBdm53Snkv?= =?utf-8?B?WXNYNHlEQkNWK1RVSm43MndNMURVNWxKR1ZNNWFVcmROdDlyU1hhMmpLS2NN?= =?utf-8?B?elRDbUg0K2tITkg5cXdjeUVXeGxWc0VCYWtqV2lsZkFsZFBzMG5QQWZVSFd6?= =?utf-8?B?dm85WDB0WW90d09KQ3VhUUVaL0h5QXZrNjY3dE5ncGFBTXJnK1NrRFlhZ0tL?= =?utf-8?B?K1pzYUNkbVZiZlFMeUxrR1dsU0pwSk82OUN5SGtkVjZyOHpxZmx2eTRISWtl?= =?utf-8?B?RDIxeStxSkxRc011ajhJSzdGZXNOT2lkNjQyRGdXMnltWXBOekRhMldCRkdr?= =?utf-8?B?RTRRcWl1OVN3OGhPNk5QYm5IZGlFclExc3BlYk51ejY5NzZhS0FaWHFmSDdH?= =?utf-8?B?Wm5BeC93TzV2NUhBU0ZMbFhMVy9EV29iaFlGRWF6SmdDVU5MMXlmZmtpZ3Zs?= =?utf-8?B?STRUc0x4cFIxR1l4NSsrT1dZNE1iVUpZejVlM2t0NkV5RGxMM0c4S2o0eFpW?= =?utf-8?B?VlJ0dms2RmpWVG5IcUVIUnUrUGNwVzhJV2h0NC9uNDNWay92S3ZFQnhoTmNV?= =?utf-8?B?YXJWY1RmYWRHc25MUWxmdTJYVzZFOE9OS3FSZzdESzJ3UzFMMXRCVnlCS28x?= =?utf-8?B?TjJ6Y0Q0SCtsRWZkZEdEUitKSnFHbllQaGhqQ0M0MXY1M0FmVWhJOWRydGFY?= =?utf-8?B?TWVXaXNVV2UrZXFGY2pPSFJrb0d2ZDZCYTlJV3lGRkNRaHJHeHoweGJ4QXNj?= =?utf-8?B?TWVuSzNPK3B1c1FmbHY3YXJRT0lwbnRCd2ZObVZuM0J2RDR3WjRwblhkTUUx?= =?utf-8?B?Ylg2TzMyeG5FK2tiNEM2U2dCc2NOU0lQVXZEYUNxUzhaTEw0MDc0d0NJZ2VL?= =?utf-8?B?cy84Z2NhOHhlQmhCN0N0bWozSVRDdGt2cjFjNDQ1eDljY0RHM0Y2bWlndGZI?= =?utf-8?B?U09HbXczdjljVXMrNjJzRXo4VkdKNnRkMkpCWjY3REJRa1p5d1MyY1k1cGpT?= =?utf-8?B?UnlHQklmbUtoeDBRTlJRc0J6RUY4NXlKNEh4cFIyc1lBVnlrc2Yvb0pDOFA0?= =?utf-8?B?Yitsbm5wdms1WFZYazBYMmxudXhEbzByamR6QTVzYmIxSXRWNDI5VDVtZ0x2?= =?utf-8?B?REtGMWxTQ2h3bnkySENDR0tCeUhselJqZWFHd0ordUNoSERyZVJlT0Nmbm9C?= =?utf-8?B?UTVwREVSWEkwMGp6MWRtdDBOTnR6RWZEclJ4WGNvZngyTGNvOW5ydHF3dUdI?= =?utf-8?B?MkZlcXd4L2twS0dGYndOSjRMUUhoTUVIUDhkWTVLQVQzVEd1NHI3ZldwSlYv?= =?utf-8?B?bVJ3THVFQS8rQlhWVnlKNElEODc2UGZpZWNESW01ZVVhNkJobERwWmU2VGFN?= =?utf-8?B?Y0lBbEZxVXJMckxpWllRS1AxMEhnak9ZckdSSkJCVDk4ZytxMEpvM1NlWUIw?= =?utf-8?B?Q2t2RzdibmRTUk85UnFXenFRNjFLT1UrR2xTeDVpSng1M2NnSk1rYUh3ZEFH?= =?utf-8?B?OHQ2ZFlOZUJuSzhocHVYQVBQMDRrUUN6MGh3V0FMVTZhdEMrYkpPZ2lsOXdX?= =?utf-8?B?b2FSZkk5djFzKzNUYTRjbm9Ha3FvaXNITmVOMitDNlJ4ajlHWER2WkNSeUFi?= =?utf-8?B?bG5tRmRRSDBwYVNKZzcvWmZiK0VSWTZ4SytjNGxSazRmUGZvVkNNQzJqTGFi?= =?utf-8?Q?spDH2aZbT2Dq8BCrM5ZoF35Vz?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB3723.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 691739a3-e705-4349-01a3-08dab564f66a X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Oct 2022 02:10:46.1220 (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: gJUd8Q5+qRA1SmEL9ZxlraLSMPsv9YGZm5p4gHbEQ/EKa1oT26ZSMgfA6jRa9o/GjsbG3ucL3v/hMdQu5TTtvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR11MB6021 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAYW1kLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMjAsIDIwMjIg MjI6NDcNCj4gVG86IEd1bywgSnVuZmVuZyA8anVuZmVuZy5ndW9AaW50ZWwuY29tPjsgWmhhbmcs IFFpIFoNCj4gPHFpLnouemhhbmdAaW50ZWwuY29tPjsgV3UsIEppbmdqaW5nIDxqaW5namluZy53 dUBpbnRlbC5jb20+OyBYaW5nLA0KPiBCZWlsZWkgPGJlaWxlaS54aW5nQGludGVsLmNvbT4NCj4g Q2M6IGRldkBkcGRrLm9yZzsgTGksIFhpYW95dW4gPHhpYW95dW4ubGlAaW50ZWwuY29tPjsNCj4g YXdvZ2JlbWlsYUBnb29nbGUuY29tOyBSaWNoYXJkc29uLCBCcnVjZQ0KPiA8YnJ1Y2UucmljaGFy ZHNvbkBpbnRlbC5jb20+OyBoZW1hbnQuYWdyYXdhbEBueHAuY29tOw0KPiBzdGVwaGVuQG5ldHdv cmtwbHVtYmVyLm9yZzsgWGlhLCBDaGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29tPjsNCj4gWmhh bmcsIEhlbGluIDxoZWxpbi56aGFuZ0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0gg djYgOC84XSBuZXQvZ3ZlOiBhZGQgc3VwcG9ydCBmb3IgUngvVHgNCj4gDQo+IE9uIDEwLzIwLzIw MjIgMTE6MzYgQU0sIEp1bmZlbmcgR3VvIHdyb3RlOg0KPiANCj4gPg0KPiA+IEFkZCBSeC9UeCBv ZiBHUUlfUVBMIHF1ZXVlIGZvcm1hdCBhbmQgR1FJX1JEQSBxdWV1ZSBmb3JtYXQuDQo+ID4NCj4g PiBTaWduZWQtb2ZmLWJ5OiBYaWFveXVuIExpIDx4aWFveXVuLmxpQGludGVsLmNvbT4NCj4gPiBT aWduZWQtb2ZmLWJ5OiBKdW5mZW5nIEd1byA8anVuZmVuZy5ndW9AaW50ZWwuY29tPg0KPiANCj4g PC4uLj4NCj4gDQo+ID4gK3VpbnQxNl90DQo+ID4gK2d2ZV9yeF9idXJzdCh2b2lkICpyeF9xdWV1 ZSwgc3RydWN0IHJ0ZV9tYnVmICoqcnhfcGt0cywgdWludDE2X3QNCj4gbmJfcGt0cykNCj4gPiAr ew0KPiA+ICsgICAgICAgdm9sYXRpbGUgc3RydWN0IGd2ZV9yeF9kZXNjICpyeHIsICpyeGQ7DQo+ ID4gKyAgICAgICBzdHJ1Y3QgZ3ZlX3J4X3F1ZXVlICpyeHEgPSByeF9xdWV1ZTsNCj4gPiArICAg ICAgIHVpbnQxNl90IHJ4X2lkID0gcnhxLT5yeF90YWlsOw0KPiA+ICsgICAgICAgc3RydWN0IHJ0 ZV9tYnVmICpyeGU7DQo+ID4gKyAgICAgICB1aW50MTZfdCBuYl9yeCwgbGVuOw0KPiA+ICsgICAg ICAgdWludDY0X3QgYWRkcjsNCj4gPiArICAgICAgIHVpbnQxNl90IGk7DQo+ID4gKw0KPiA+ICsg ICAgICAgcnhyID0gcnhxLT5yeF9kZXNjX3Jpbmc7DQo+ID4gKyAgICAgICBuYl9yeCA9IDA7DQo+ ID4gKw0KPiA+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IG5iX3BrdHM7IGkrKykgew0KPiA+ICsg ICAgICAgICAgICAgICByeGQgPSAmcnhyW3J4X2lkXTsNCj4gPiArICAgICAgICAgICAgICAgaWYg KEdWRV9TRVFOTyhyeGQtPmZsYWdzX3NlcSkgIT0gcnhxLT5leHBlY3RlZF9zZXFubykNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAg IGlmIChyeGQtPmZsYWdzX3NlcSAmIEdWRV9SWEZfRVJSKQ0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgbGVuID0gcnRlX2Jl X3RvX2NwdV8xNihyeGQtPmxlbikgLSBHVkVfUlhfUEFEOw0KPiA+ICsgICAgICAgICAgICAgICBy eGUgPSByeHEtPnN3X3JpbmdbcnhfaWRdOw0KPiA+ICsgICAgICAgICAgICAgICBpZiAocnhxLT5p c19ncWlfcXBsKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYWRkciA9ICh1aW50NjRf dCkocnhxLT5xcGwtPm16LT5hZGRyKSArIHJ4X2lkICogUEFHRV9TSVpFDQo+ICsgR1ZFX1JYX1BB RDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBydGVfbWVtY3B5KCh2b2lkICopKChzaXpl X3QpcnhlLT5idWZfYWRkciArIHJ4ZS0NCj4gPmRhdGFfb2ZmKSwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopKHNpemVfdClhZGRyLCBsZW4pOw0KPiA+ICsg ICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICAgICAgICAgIHJ4ZS0+cGt0X2xlbiA9IGxlbjsN Cj4gPiArICAgICAgICAgICAgICAgcnhlLT5kYXRhX2xlbiA9IGxlbjsNCj4gPiArICAgICAgICAg ICAgICAgcnhlLT5wb3J0ID0gcnhxLT5wb3J0X2lkOw0KPiA+ICsgICAgICAgICAgICAgICByeGUt Pm9sX2ZsYWdzID0gMDsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIGlmIChyeGQtPmZsYWdz X3NlcSAmIEdWRV9SWEZfVENQKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ4ZS0+cGFj a2V0X3R5cGUgfD0gUlRFX1BUWVBFX0w0X1RDUDsNCj4gPiArICAgICAgICAgICAgICAgaWYgKHJ4 ZC0+ZmxhZ3Nfc2VxICYgR1ZFX1JYRl9VRFApDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg cnhlLT5wYWNrZXRfdHlwZSB8PSBSVEVfUFRZUEVfTDRfVURQOw0KPiA+ICsgICAgICAgICAgICAg ICBpZiAocnhkLT5mbGFnc19zZXEgJiBHVkVfUlhGX0lQVjQpDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgcnhlLT5wYWNrZXRfdHlwZSB8PSBSVEVfUFRZUEVfTDNfSVBWNDsNCj4gPiArICAg ICAgICAgICAgICAgaWYgKHJ4ZC0+ZmxhZ3Nfc2VxICYgR1ZFX1JYRl9JUFY2KQ0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIHJ4ZS0+cGFja2V0X3R5cGUgfD0gUlRFX1BUWVBFX0wzX0lQVjY7 DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBpZiAoZ3ZlX25lZWRzX3JzcyhyeGQtPmZsYWdz X3NlcSkpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICByeGUtPm9sX2ZsYWdzIHw9IFJU RV9NQlVGX0ZfUlhfUlNTX0hBU0g7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcnhlLT5o YXNoLnJzcyA9IHJ0ZV9iZV90b19jcHVfMzIocnhkLT5yc3NfaGFzaCk7DQo+IA0KPiBZb3UgYXJl IHVwZGF0aW5nICJtLT5oYXNoLnJzcyIgYW55d2F5LCBhbmQgaWYgdGhpcyBpcyB3aXRob3V0IGFu ZCBjb3N0DQo+IHlvdSBjYW4gZm9yY2UgZW5hYmxlIGFzIGRvbmUgaW4gcHJldmlvdXMgdmVyc2lv bjoNCj4gJ2Rldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLm9mZmxvYWRzIHw9DQo+IFJURV9FVEhf UlhfT0ZGTE9BRF9SU1NfSEFTSDsnDQoNClllcywgaXQgc2VlbXMgdGhlIFJTUyBpcyBlbmFibGVk IGJ5IGRlZmF1bHQgd2l0aCBubyBvYnZpb3VzIHBlcmYgbG9zcy4NClRoZXJlIGlzIG5vIFJTUyBp bml0IHN0YWdlLiBXZSB3aWxsIGFsc28gZm9yY2UgZW5hYmxlIHRoaXMgaW4gdGhlIGRldiBjb25m aWcNCnN0YWdlLiBUaGFua3MhDQoNCj4gDQo+IDwuLi4+DQo+IA0KPiA+ICtzdGF0aWMgaW5saW5l IHZvaWQNCj4gPiArZ3ZlX2ZyZWVfYnVsa19tYnVmKHN0cnVjdCBydGVfbWJ1ZiAqKnR4ZXAsIGlu dCBudW0pDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBydGVfbWJ1ZiAqbSwgKmZyZWVbR1ZF X1RYX01BWF9GUkVFX1NaXTsNCj4gPiArICAgICAgIGludCBuYl9mcmVlID0gMDsNCj4gPiArICAg ICAgIGludCBpLCBzOw0KPiA+ICsNCj4gPiArICAgICAgIGlmICh1bmxpa2VseShudW0gPT0gMCkp DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiArDQo+ID4gKyAgICAgICAvKiBGaW5k IHRoZSAxc3QgbWJ1ZiB3aGljaCBuZWVkcyB0byBiZSBmcmVlICovDQo+ID4gKyAgICAgICBmb3Ig KHMgPSAwOyBzIDwgbnVtOyBzKyspIHsNCj4gPiArICAgICAgICAgICAgICAgaWYgKHR4ZXBbc10g IT0gTlVMTCkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIG0gPSBydGVfcGt0bWJ1Zl9w cmVmcmVlX3NlZyh0eGVwW3NdKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAobSAh PSBOVUxMKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiANCj4gJ30nIGluZGVudGF0aW9uIGlzIHdyb25n Lg0KDQpUaGFua3MgZm9yIHRoZSBjYXRjaCEgV2lsbCB1cGRhdGUgaW4gdGhlIGNvbWluZyB2ZXJz aW9uLg0KDQo+IA0KPiA8Li4uPg0KPiANCj4gPiArc3RhdGljIGlubGluZSB2b2lkDQo+ID4gK2d2 ZV90eF9jbGVhbl9zd3JfcXBsKHN0cnVjdCBndmVfdHhfcXVldWUgKnR4cSkNCj4gPiArew0KPiA+ ICsgICAgICAgdWludDMyX3Qgc3RhcnQgPSB0eHEtPnN3X250YzsNCj4gPiArICAgICAgIHVpbnQz Ml90IG50YywgbmJfY2xlYW47DQo+ID4gKw0KPiA+ICsgICAgICAgbnRjID0gdHhxLT5zd190YWls Ow0KPiA+ICsNCj4gPiArICAgICAgIGlmIChudGMgPT0gc3RhcnQpDQo+ID4gKyAgICAgICAgICAg ICAgIHJldHVybjsNCj4gPiArDQo+ID4gKyAgICAgICAvKiBpZiB3cmFwIGFyb3VuZCwgZnJlZSB0 d2ljZS4gKi8NCj4gPiArICAgICAgIGlmIChudGMgPCBzdGFydCkgew0KPiA+ICsgICAgICAgICAg ICAgICBuYl9jbGVhbiA9IHR4cS0+bmJfdHhfZGVzYyAtIHN0YXJ0Ow0KPiA+ICsgICAgICAgICAg ICAgICBpZiAobmJfY2xlYW4gPiBHVkVfVFhfTUFYX0ZSRUVfU1opDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgbmJfY2xlYW4gPSBHVkVfVFhfTUFYX0ZSRUVfU1o7DQo+ID4gKyAgICAgICAg ICAgICAgIGd2ZV9mcmVlX2J1bGtfbWJ1ZigmdHhxLT5zd19yaW5nW3N0YXJ0XSwgbmJfY2xlYW4p Ow0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgdHhxLT5zd19uYl9mcmVlICs9IG5iX2NsZWFu Ow0KPiA+ICsgICAgICAgICAgICAgICBzdGFydCArPSBuYl9jbGVhbjsNCj4gPiArICAgICAgICAg ICAgICAgaWYgKHN0YXJ0ID09IHR4cS0+bmJfdHhfZGVzYykNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICBzdGFydCA9IDA7DQo+ID4gKyAgICAgICAgICAgICAgIHR4cS0+c3dfbnRjID0gc3Rh cnQ7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKG50YyA+IHN0YXJ0KSB7 DQo+IA0KPiBtYXkgYmUgY2FuIGRyb3AgdGhlICdpZicgYmxvY2ssIHNpbmNlICJudGMgPT0gc3Rh cnQiIGFuZCAibnRjIDwgc3RhcnQiDQo+IGNhc2VzIGFscmVhZHkgY292ZXJlZC4NCg0KU3VyZSwg d2lsbCBkcm9wIHRoaXMgJ2lmJyBpbiB0aGUgY29taW5nIHZlcnNpb24uIFRoYW5rcyENCg0KPiAN Cj4gPC4uLj4NCj4gDQo+ID4gK3VpbnQxNl90DQo+ID4gK2d2ZV90eF9idXJzdCh2b2lkICp0eF9x dWV1ZSwgc3RydWN0IHJ0ZV9tYnVmICoqdHhfcGt0cywgdWludDE2X3QNCj4gbmJfcGt0cykNCj4g PiArew0KPiA+ICsgICAgICAgc3RydWN0IGd2ZV90eF9xdWV1ZSAqdHhxID0gdHhfcXVldWU7DQo+ ID4gKw0KPiA+ICsgICAgICAgaWYgKHR4cS0+aXNfZ3FpX3FwbCkNCj4gPiArICAgICAgICAgICAg ICAgcmV0dXJuIGd2ZV90eF9idXJzdF9xcGwodHhfcXVldWUsIHR4X3BrdHMsIG5iX3BrdHMpOw0K PiA+ICsNCj4gPiArICAgICAgIHJldHVybiBndmVfdHhfYnVyc3RfcmEodHhfcXVldWUsIHR4X3Br dHMsIG5iX3BrdHMpOw0KPiA+ICt9DQo+ID4gKw0KPiANCj4gQ2FuIHRoZXJlIGJlIG1peCBvZiBx dWV1ZSB0eXBlcz8NCj4gSWYgb25seSBvbmUgcXVldWUgdHlwZSBpcyBzdXBwb3J0ZWQgaW4gc3Bl Y2lmaWMgY29uZmlnLCBwZXJoYXBzIGJ1cnN0DQo+IGZ1bmN0aW9uIGNhbiBiZSBzZXQgZHVyaW5n IGNvbmZpZ3VyYXRpb24sIHRvIHByZXZlbnQgaWYgY2hlY2sgb24gZGF0YXBhdGguDQo+IA0KPiBU aGlzIGlzIG9wdGltaXphdGlvbiBhbmQgY2FuIGJlIGRvbmUgbGF0ZXIsIGl0IGRvZXNuJ3QgaGF2 ZSB0byBiZSBpbiB0aGUNCj4gc2V0Lg0KDQpNYXliZSBub3QuIFRoZXJlIGFyZSB0aHJlZSBxdWV1 ZSBmb3JtYXQgdHlwZXMsIGFuZCB3ZSBjYW4gZ2V0IHRoZSByZWFsIA0KdXNlZCBvbmUgdmlhIGFk bWlucSB3aXRoICdwcml2LT5xdWV1ZV9mb3JtYXQnLiBTbyB0aGVyZSBtYXkgbm90IGhhdmUgDQpt aXggb2YgdGhlIHF1ZXVlIHR5cGVzLiBBbmQgY3VycmVudGx5IG9ubHkgR1FJX1FQTCBhbmQgR1FJ X1JEQSBxdWV1ZSANCmZvcm1hdCBhcmUgc3VwcG9ydGVkIGluIFBNRC4gQWxzbywgb25seSBHUUlf UVBMIHF1ZXVlIGZvcm1hdCBpcyBpbiB1c2UgDQpvbiBHQ1Agc2luY2UgR1FJX1JEQSBoYXNuJ3Qg YmVlbiByZWxlYXNlZCBpbiBwcm9kdWN0aW9uLg0KDQpXaWxsIGRvIHNvbWUgcmVmYWN0b3JzIGZv ciB0aGUgcXVldWUgdHlwZXMgbGF0ZXIuIFRoYW5rcyBmb3IgdGhlIGFkdmljZSENCg==