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 B3B94A0C45; Mon, 19 Jul 2021 05:29:06 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 777104069D; Mon, 19 Jul 2021 05:29:06 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 433594067A for ; Mon, 19 Jul 2021 05:29:04 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10049"; a="296549029" X-IronPort-AV: E=Sophos;i="5.84,251,1620716400"; d="scan'208";a="296549029" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jul 2021 20:29:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,251,1620716400"; d="scan'208";a="509205830" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga002.fm.intel.com with ESMTP; 18 Jul 2021 20:29:02 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) 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.2242.10; Sun, 18 Jul 2021 20:29:01 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Sun, 18 Jul 2021 20:29:01 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Sun, 18 Jul 2021 20:29:01 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.43) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Sun, 18 Jul 2021 20:28:50 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jQIjI+isAeIHtkhC20olqmwA5vliWuVGI+XCAybFthkQzrVSHakBaUc8B953om1o36/H/09L07ncCpZ9mEuJuJfWU6WD6DH3BjiuYkwx93AUrMV7LLRmFyOePueCLzzXej3OxdyrpQl7LNrxF/C7/qiRlSoyJ4+P35hCtv4AhWSz2BhDBhlJzwfjnfB+Y4lKR9+a42XFjt1oOLA12uRS/gmoflO4psq6Tl+k4BJDi0Gf3p2tga/iyRrzgdbc1MZR8mE1K51JhTbOEJHpVobRTO/ncVR2JCvU/CeKqI8LqZWypsYpqlx5kGqPtJIzmE0XYVCU9tmpA/s9WJOxeHwvig== 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=zGztWc334C4lHB8QmrP//DMThuVUHh63MSmCXPlQRVw=; b=QdmOIglxiW92GiPDipxagdV3OtuW17WgiJYbVTbIU7M1UVEggdcic08GTXHReVND1Eibg3eJdIb9JiBRzC15se41SrMrZI1QLcZXUl0ed6SlE3MOvquV+8vniug5WmwxHFdkRm1HK5mZRpgRjN1nIqEv1L/JE6ppfsF8FH5hPivAkD+1TG54avQLGE6ONr9ZYFB3XuiIDEKLlx2KdioRs7ktIOjlMKCIuZV3Sg/nNqJYLrF041P/rHNFT+CLwmP/NgEP6RvJw6wRKOvkdCsDSkIMcHEuFLH2JybxymrKoMY+BxGhpV3AOP6Nhavd8XQ5PJixE1wFaTxb0jMI8TU8Eg== 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=zGztWc334C4lHB8QmrP//DMThuVUHh63MSmCXPlQRVw=; b=lWIGOa0NmG1f8aFx0RmRoRfgf8lKNvBSWDncwQgeqnFgMS3zZC7Wch5kIKPpn4f3pPvVhxp901wpZpABazxRy2xetVJiSjPzRuMnl4bIRs5/dVf2Rc6Z2H7yU6wQ2JMAxHJeeXcS7Cmz9p+pUAk5mXwlBvPbaH4ERsWQ2UxHoQY= Received: from SJ0PR11MB5006.namprd11.prod.outlook.com (2603:10b6:a03:2db::22) by BYAPR11MB3815.namprd11.prod.outlook.com (2603:10b6:a03:fa::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.26; Mon, 19 Jul 2021 03:28:45 +0000 Received: from SJ0PR11MB5006.namprd11.prod.outlook.com ([fe80::2005:352e:369a:e5f9]) by SJ0PR11MB5006.namprd11.prod.outlook.com ([fe80::2005:352e:369a:e5f9%9]) with mapi id 15.20.4331.032; Mon, 19 Jul 2021 03:28:45 +0000 From: "Jiang, Cheng1" To: "Xia, Chenbo" , "maxime.coquelin@redhat.com" CC: "dev@dpdk.org" , "Hu, Jiayu" , "Yang, YvonneX" Thread-Topic: [PATCH v4 2/5] vhost: add unsafe API to drain pkts in async vhost Thread-Index: AQHXefD6QRIL31x9kUOOxVytH3UgDKtFTO2AgARa2TA= Date: Mon, 19 Jul 2021 03:28:45 +0000 Message-ID: References: <20210602042802.31943-1-cheng1.jiang@intel.com> <20210716025923.27164-1-cheng1.jiang@intel.com> <20210716025923.27164-3-cheng1.jiang@intel.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6c8523a7-6f29-4b63-3d12-08d94a6550bb x-ms-traffictypediagnostic: BYAPR11MB3815: 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:1227; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9UapRQFr8c8Ushd5WDRwGj9wwYr/b4pDqCkdRiLfkpo6N5535b45C5LLPcB+ZdDEl1trACNufE6GwjrrNM7HUzBbzVMNpWH5l5EFB5xMLN7iO1nufHYnGofWJjdETmc2h2HK0qUf42aNgk/MQpWKrzt4enJ8UF3DxFq8j24J9NPLyLtDBmcysImHbrO/pdZaWBCcs9hffB4TS5BSTqK5u1zzY3EZs+L3HxB5KDyKBhvPEFrm0YuOyP133/Cs4pxEvTY56T2UxEDax0KViHknMvHnsCpU+8O4pivZAJUUk5XhE2VwMM+YjB16hhm0wA5eyGxrc7CWb+1PGWq3VAGSed3tKJUd/6xUfZsRUBOrJ3/lAMF0trodIy6+Iw7++pAmsEjEst2yci5DWZ+briLG8iJzbv9XPYaFVd/V22x96Ifp59s4vPrKL/PI725EfwXzjUCFfjL20ptKxFfZDcaUyFXYv/3xlrra41o2AoRJ6XQIWW0QeyM3EJMHRxhQDHIOZVOYbHoI9iONb4pd6BjIBZlhCwWYZOMLQ1rj3Bc05BGFhZS40IYO+h3W+R282O4kM+f4iPUTgrPvxY4Ngn47Sr2kQqLUNG85BdEmBFH+CN0W+2XXaechue1GSE8U4KgAebS2sgKQYtL5qrqhc5oKOuPD1SjkSTG5P4MQgBIMCEjdwdOSvTLRvAIE4TBIkQn7IDVwimvM4+QfZIzg6HU3Vtemypf6oRwbRx1KY827f1m8om17IjYo/eMhU5YapRKvgctWBi+Gc6rx9hwu9+NAeEDV9QD99yG/NkUg2K0/POA= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR11MB5006.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(366004)(39860400002)(396003)(376002)(346002)(4326008)(26005)(71200400001)(316002)(110136005)(38100700002)(83380400001)(5660300002)(54906003)(9686003)(122000001)(33656002)(966005)(55016002)(86362001)(8936002)(478600001)(7696005)(52536014)(8676002)(53546011)(6506007)(107886003)(64756008)(66556008)(66476007)(66446008)(186003)(76116006)(2906002)(66946007)(38070700004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bU5uVnRtTkUySmJaOXlrOEtsTGdWT2ozUy8ySnVYaTI0QitYcldzV0xINVgv?= =?utf-8?B?bkF5bWV6ZnJ6TUZJdGVjN3NnL2o2L2xRRjhjY3IzajloY2o4aWdJS1lPaHh4?= =?utf-8?B?bytXQWtXdnUyc3NuZ01zVWFoZ3NPSTN6TEtzRldqWW1hWFRNVVVrK1VNdGFI?= =?utf-8?B?ckFMYVRFZWZiMTB3ak5oZE9DS1FDRHYvMVlxSm83Q2s5WDZEMkMxK3pud3I1?= =?utf-8?B?UmtjZmZ1OUwzMlRWR05zS1psak80WHk3Qkk3bzUzeG5DaERZUFpTNlA0V3RF?= =?utf-8?B?UWNhT3dldWxUekJTTVRhS0lQbkl4TE1kVlVvTisxYkJBczRDeEFTL0ZVUU16?= =?utf-8?B?c0QyVG1LK1Q3MWxKcnlvTUNnRGRQR2FDclRnbnRFQUlQUldxR0h3VTU1MS9j?= =?utf-8?B?V0Q0YjZZUGErR3ZCUVBxeFJSc1NkV1N0R3hxcFBQYzYvc2Z5MVExem1oS2Jw?= =?utf-8?B?QlRvSGRHdjc3d0tTWjlZaUxWeTlrOHU1c3lhb0xNc0c1SS83TzNHdlV6bm1m?= =?utf-8?B?NkdRSXdOUGRHbTlVZnhZd05PbUd1VlkvcHN1KzRBUEhvaGV0cnBCUnBMWkFj?= =?utf-8?B?MllKZTBFMFlFeGJaY1FEanc5WFV3ZHNHVjcrMC93QUZ5RVVibktQM0R1TThm?= =?utf-8?B?Z21MOGZ0SXJRUWk4Z3l6NEl5TmwyRDd0MzZGVGlnS25UT3FBSkxFeDN3aGlG?= =?utf-8?B?aXNEN1dESWxyemlmZkpQd0R4N21pd095WXYxalRNc05TUEN1SkNhTjZXcVVW?= =?utf-8?B?Si9DVTBIVHdPODJJUmFSWWlERHpFK1luSnJQR3R5a1lsblZ6UGViY2doSjJX?= =?utf-8?B?bzZUWmlZSC8ySHZCNnpzUUZaa2twelVsa2owb2Q0a3Bsak92SXVQTnc4eHE3?= =?utf-8?B?Z2sycisxK0VzN2ovTTNRUVcvRTEwSFYvYmE0MDVlRk5TSTNOOFpqT0pFN0FQ?= =?utf-8?B?d2Uva1dEbVRtU2g0dzRwOTRYMEpleVgyTW9NbW5OdDZGcFY5YVFDZFNWUG5N?= =?utf-8?B?a2c5NDFEcVZtMHd0aStOUmNZdEpJNldnaUZ0L3pjUlNDeGhVblZibTN0U3BY?= =?utf-8?B?ZkYvUTlURENzT1RLdnpKWE5XUGY1Y2N4a1ZsZmNEZERKRnkrUWsxeUQzRGRw?= =?utf-8?B?cTQ3SldPSDNWTlhGdDdxaURBZTcwbnFGL1BjVkdJYnNxRUhmeVBEYlZONkpy?= =?utf-8?B?LzZqRVlkZTNOMGx1Rmc4QmVpbVRqUTlhQkMrek9ZdE56VWNyek1lRkRmRjNX?= =?utf-8?B?dGVSQWl1UjJJL2lPWmlYWFdwWldydmw5VTU0Q3FyMld3Z0hUN09ValI0Y3o2?= =?utf-8?B?ekVKRjNSb2pCQ1hsWGtOdVdxb3JFdTkzNTVFRFg0SFduUmNRVk9Oc3IzeUhx?= =?utf-8?B?cE5GMmVxMENQTDB1a2VyNHFUN25qYjZoQmpOS08yRkpGaDdRL3FwQkNMKzNB?= =?utf-8?B?MzMyL2dkVkUyUUxPU0NoQ1JwY2hKQlRRWGQ3MlJDeXhBZ1c1OWFXc1p5Rlpw?= =?utf-8?B?K0pSM0pwblA5MXBCakN2dTlWblhtOHdZTkpaM2tEaTloUThYaFgxZ3hwdTNH?= =?utf-8?B?Y3dnbmZhNjdraEhhVG9oblJpeE5xTWkxbld2cVFNYUVCNExIelh1MU1FbXFn?= =?utf-8?B?M2dKb3NkMVFqaU5tSUtqTkRUZjhTYTAwT2NpdHEvTW1adXQydktheUlqazBR?= =?utf-8?B?VTRseGh0S2NEdlhZck1rWE5hRk5XLzY5ZWNLY0U3L3AzMEhRLzhZcFV6TUNu?= =?utf-8?Q?TaCIRunvnm+vr4WSqkLUskH5NJv8Cyx34gXM+zo?= 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: SJ0PR11MB5006.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6c8523a7-6f29-4b63-3d12-08d94a6550bb X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jul 2021 03:28:45.5499 (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: Ig3n8DtoJowiR84P2T28tsYcC/jdPWPwggEzXjxY9JbZXTMPUVb0JAUro6ua0AJBZuQWdFfKGXCJexW8U71T9g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3815 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v4 2/5] vhost: add unsafe API to drain pkts in async vhost 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 Sender: "dev" SGkgQ2hlbmJvLA0KDQpJJ2xsIGZpeCB0aGVzZSBpc3N1ZXMgaW4gbmV4dCB2ZXJzaW9uLg0KRm9y IHRoZSBuYW1lLCBJIHRoaW5rIG1heWJlIHdlIGNhbiB1c2UgJ3J0ZV92aG9zdF9jbGVhcl9xdWV1 ZV90aHJlYWRfdW5zYWZlJy4NCg0KVGhhbmtzLA0KQ2hlbmcNCg0KPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiBGcm9tOiBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+DQo+ IFNlbnQ6IEZyaWRheSwgSnVseSAxNiwgMjAyMSA0OjU2IFBNDQo+IFRvOiBKaWFuZywgQ2hlbmcx IDxjaGVuZzEuamlhbmdAaW50ZWwuY29tPjsgbWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20NCj4g Q2M6IGRldkBkcGRrLm9yZzsgSHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+OyBZYW5nLCBZ dm9ubmVYDQo+IDx5dm9ubmV4LnlhbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW1BBVENI IHY0IDIvNV0gdmhvc3Q6IGFkZCB1bnNhZmUgQVBJIHRvIGRyYWluIHBrdHMgaW4gYXN5bmMgdmhv c3QNCj4gDQo+IEhpIENoZW5nLA0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+IEZyb206IEppYW5nLCBDaGVuZzEgPGNoZW5nMS5qaWFuZ0BpbnRlbC5jb20+DQo+ID4gU2Vu dDogRnJpZGF5LCBKdWx5IDE2LCAyMDIxIDEwOjU5IEFNDQo+ID4gVG86IG1heGltZS5jb3F1ZWxp bkByZWRoYXQuY29tOyBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+DQo+ID4gQ2M6 IGRldkBkcGRrLm9yZzsgSHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+OyBZYW5nLCBZdm9u bmVYDQo+ID4gPHl2b25uZXgueWFuZ0BpbnRlbC5jb20+OyBKaWFuZywgQ2hlbmcxIDxjaGVuZzEu amlhbmdAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFtQQVRDSCB2NCAyLzVdIHZob3N0OiBhZGQg dW5zYWZlIEFQSSB0byBkcmFpbiBwa3RzIGluIGFzeW5jDQo+ID4gdmhvc3QNCj4gPg0KPiA+IEFw cGxpY2F0aW9ucyBuZWVkIHRvIHN0b3AgRE1BIHRyYW5zZmVycyBhbmQgZmluaXNoIGFsbCB0aGUg aW4tZmxpZ2h0DQo+ID4gcGt0cyB3aGVuIGluIFZNIG1lbW9yeSBob3QtcGx1ZyBjYXNlIGFuZCBh c3luYyB2aG9zdCBpcyB1c2VkLiBUaGlzDQo+IA0KPiBQa3RzIC0+IHBhY2tldHMNCj4gDQo+ID4g cGF0Y2ggaXMgdG8gcHJvdmlkZSBhbiB1bnNhZmUgQVBJIHRvIGRyYWluIGluLWZsaWdodCBwa3Rz IHdoaWNoIGFyZQ0KPiANCj4gRGl0dG8NCj4gDQo+ID4gc3VibWl0dGVkIHRvIERNQSBlbmdpbmUg aW4gdmhvc3QgYXN5bmMgZGF0YSBwYXRoLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogQ2hlbmcg SmlhbmcgPGNoZW5nMS5qaWFuZ0BpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIGxpYi92aG9zdC9y dGVfdmhvc3RfYXN5bmMuaCB8IDI0ICsrKysrKysrKysNCj4gPiAgbGliL3Zob3N0L3ZlcnNpb24u bWFwICAgICAgIHwgIDMgKysNCj4gPiAgbGliL3Zob3N0L3ZpcnRpb19uZXQuYyAgICAgIHwgOTAg KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQ0KPiA+ICAzIGZpbGVzIGNoYW5n ZWQsIDk0IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdp dCBhL2xpYi92aG9zdC9ydGVfdmhvc3RfYXN5bmMuaCBiL2xpYi92aG9zdC9ydGVfdmhvc3RfYXN5 bmMuaA0KPiA+IGluZGV4IGJjODFjZDBjYWEuLmZkNjIyNjMxYjIgMTAwNjQ0DQo+ID4gLS0tIGEv bGliL3Zob3N0L3J0ZV92aG9zdF9hc3luYy5oDQo+ID4gKysrIGIvbGliL3Zob3N0L3J0ZV92aG9z dF9hc3luYy5oDQo+ID4gQEAgLTE5Myw0ICsxOTMsMjggQEAgX19ydGVfZXhwZXJpbWVudGFsICB1 aW50MTZfdA0KPiA+IHJ0ZV92aG9zdF9wb2xsX2VucXVldWVfY29tcGxldGVkKGludCB2aWQsIHVp bnQxNl90IHF1ZXVlX2lkLA0KPiA+ICAJCXN0cnVjdCBydGVfbWJ1ZiAqKnBrdHMsIHVpbnQxNl90 IGNvdW50KTsNCj4gPg0KPiA+ICsvKioNCj4gPiArICogVGhpcyBmdW5jdGlvbiBjaGVja3MgYXN5 bmMgY29tcGxldGlvbiBzdGF0dXMgYW5kIGVtcHR5IGFsbCBwYWtjZXRzDQo+IA0KPiBQYWtjZXRz IC0+IHBhY2tldHMNCj4gDQo+ID4gKyAqIGZvciBhIHNwZWNpZmljIHZob3N0IGRldmljZSBxdWV1 ZS4gUGFja2V0cyB3aGljaCBhcmUgaW5mbGlnaHQgd2lsbA0KPiA+ICsgKiBiZSByZXR1cm5lZCBp biBhbiBhcnJheS4NCj4gPiArICoNCj4gPiArICogQG5vdGUgVGhpcyBmdW5jdGlvbiBkb2VzIG5v dCBwZXJmb3JtIGFueSBsb2NraW5nDQo+ID4gKyAqDQo+ID4gKyAqIEBwYXJhbSB2aWQNCj4gPiAr ICogIGlkIG9mIHZob3N0IGRldmljZSB0byBlbnF1ZXVlIGRhdGENCj4gDQo+IGlkIC0+IElEDQo+ IA0KPiB0byBkcmFpbiBkYXRhPw0KPiANCj4gPiArICogQHBhcmFtIHF1ZXVlX2lkDQo+ID4gKyAq ICBxdWV1ZSBpZCB0byBlbnF1ZXVlIGRhdGENCj4gDQo+IERpdHRvDQo+IA0KPiA+ICsgKiBAcGFy YW0gcGt0cw0KPiA+ICsgKiAgYmxhbmsgYXJyYXkgdG8gZ2V0IHJldHVybiBwYWNrZXQgcG9pbnRl cg0KPiANCj4gUmV0dXJuIC0+IHJldHVybmVkDQo+IA0KPiA+ICsgKiBAcGFyYW0gY291bnQNCj4g PiArICogIHNpemUgb2YgdGhlIHBhY2tldCBhcnJheQ0KPiA+ICsgKiBAcGFyYW0gdGltZXMNCj4g PiArICogIG1heCBudW1iZXIgb2YgcG9sbCBhdHRlbXB0cw0KPiA+ICsgKiBAcmV0dXJuDQo+ID4g KyAqICBudW0gb2YgcGFja2V0cyByZXR1cm5lZA0KPiANCj4gbnVtIC0+IE51bWJlcg0KPiANCj4g QW5kIHBsZWFzZSB1c2UgY2FwaXRhbCBmb3IgZmlyc3QgY2hhcmFjdGVyIGluIGVhY2ggbGluZSBv ZiBwYXJhbSBkZXNjcmlwdGlvbi4NCj4gDQo+ID4gKyAqLw0KPiA+ICtfX3J0ZV9leHBlcmltZW50 YWwNCj4gPiArdWludDE2X3QgcnRlX3Zob3N0X3RyeV9kcmFpbl9xdWV1ZV90aHJlYWRfdW5zYWZl KGludCB2aWQsIHVpbnQxNl90DQo+ID4gK3F1ZXVlX2lkLA0KPiANCj4gSSB0aGluayAncnRlX3Zo b3N0X2RyYWluX3F1ZXVlX3RocmVhZF91bnNhZmUnIGlzIGJldHRlcj8NCj4gDQo+ID4gKwkJc3Ry dWN0IHJ0ZV9tYnVmICoqcGt0cywgdWludDE2X3QgY291bnQsIHVpbnQxNl90IHRpbWVzKTsNCj4g PiArDQo+ID4gICNlbmRpZiAvKiBfUlRFX1ZIT1NUX0FTWU5DX0hfICovDQo+ID4gZGlmZiAtLWdp dCBhL2xpYi92aG9zdC92ZXJzaW9uLm1hcCBiL2xpYi92aG9zdC92ZXJzaW9uLm1hcCBpbmRleA0K PiA+IDkxMDNhMjNjZDQuLmI4ZmM4NzcwZGQgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL3Zob3N0L3Zl cnNpb24ubWFwDQo+ID4gKysrIGIvbGliL3Zob3N0L3ZlcnNpb24ubWFwDQo+ID4gQEAgLTc5LDQg Kzc5LDcgQEAgRVhQRVJJTUVOVEFMIHsNCj4gPg0KPiA+ICAJIyBhZGRlZCBpbiAyMS4wNQ0KPiA+ ICAJcnRlX3Zob3N0X2dldF9uZWdvdGlhdGVkX3Byb3RvY29sX2ZlYXR1cmVzOw0KPiA+ICsNCj4g PiArCSMgYWRkZWQgaW4gMjEuMDgNCj4gPiArCXJ0ZV92aG9zdF90cnlfZHJhaW5fcXVldWVfdGhy ZWFkX3Vuc2FmZTsNCj4gPiAgfTsNCj4gPiBkaWZmIC0tZ2l0IGEvbGliL3Zob3N0L3ZpcnRpb19u ZXQuYyBiL2xpYi92aG9zdC92aXJ0aW9fbmV0LmMgaW5kZXgNCj4gPiA4MTU2Nzk2YTQ2Li45ZjU0 MTY3OWI5IDEwMDY0NA0KPiA+IC0tLSBhL2xpYi92aG9zdC92aXJ0aW9fbmV0LmMNCj4gPiArKysg Yi9saWIvdmhvc3QvdmlydGlvX25ldC5jDQo+ID4gQEAgLTIxMTUsMTAgKzIxMTUsMTAgQEAgd3Jp dGVfYmFja19jb21wbGV0ZWRfZGVzY3NfcGFja2VkKHN0cnVjdA0KPiA+IHZob3N0X3ZpcnRxdWV1 ZSAqdnEsDQo+ID4gIAl9IHdoaWxlIChucl9sZWZ0ID4gMCk7DQo+ID4gIH0NCj4gPg0KPiA+IC11 aW50MTZfdCBydGVfdmhvc3RfcG9sbF9lbnF1ZXVlX2NvbXBsZXRlZChpbnQgdmlkLCB1aW50MTZf dCBxdWV1ZV9pZCwNCj4gPiArc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdWludDE2X3QNCj4g PiArdmhvc3RfcG9sbF9lbnF1ZXVlX2NvbXBsZXRlZChzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LCB1 aW50MTZfdA0KPiA+ICtxdWV1ZV9pZCwNCj4gPiAgCQlzdHJ1Y3QgcnRlX21idWYgKipwa3RzLCB1 aW50MTZfdCBjb3VudCkgIHsNCj4gPiAtCXN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYgPSBnZXRfZGV2 aWNlKHZpZCk7DQo+ID4gIAlzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cTsNCj4gPiAgCXVpbnQx Nl90IG5fcGt0c19jcGwgPSAwLCBuX3BrdHNfcHV0ID0gMCwgbl9kZXNjcyA9IDAsIG5fYnVmZmVy cyA9IDA7DQo+ID4gIAl1aW50MTZfdCBzdGFydF9pZHgsIHBrdHNfaWR4LCB2cV9zaXplOyBAQCAt MjEyNiwyNiArMjEyNiw4IEBADQo+ID4gdWludDE2X3QgcnRlX3Zob3N0X3BvbGxfZW5xdWV1ZV9j b21wbGV0ZWQoaW50IHZpZCwgdWludDE2X3QgcXVldWVfaWQsDQo+ID4gIAl1aW50MTZfdCBmcm9t LCBpOw0KPiA+ICAJaW50MzJfdCBuX3BvbGw7DQo+ID4NCj4gPiAtCWlmICghZGV2KQ0KPiA+IC0J CXJldHVybiAwOw0KPiA+IC0NCj4gPiAtCVZIT1NUX0xPR19EQVRBKERFQlVHLCAiKCVkKSAlc1xu IiwgZGV2LT52aWQsIF9fZnVuY19fKTsNCj4gPiAtCWlmICh1bmxpa2VseSghaXNfdmFsaWRfdmly dF9xdWV1ZV9pZHgocXVldWVfaWQsIDAsIGRldi0+bnJfdnJpbmcpKSkgew0KPiA+IC0JCVZIT1NU X0xPR19EQVRBKEVSUiwgIiglZCkgJXM6IGludmFsaWQgdmlydHF1ZXVlDQo+IGlkeCAlZC5cbiIs DQo+ID4gLQkJCWRldi0+dmlkLCBfX2Z1bmNfXywgcXVldWVfaWQpOw0KPiA+IC0JCXJldHVybiAw Ow0KPiA+IC0JfQ0KPiA+IC0NCj4gPiAgCXZxID0gZGV2LT52aXJ0cXVldWVbcXVldWVfaWRdOw0K PiA+DQo+ID4gLQlpZiAodW5saWtlbHkoIXZxLT5hc3luY19yZWdpc3RlcmVkKSkgew0KPiA+IC0J CVZIT1NUX0xPR19EQVRBKEVSUiwgIiglZCkgJXM6IGFzeW5jIG5vdCByZWdpc3RlcmVkIGZvcg0K PiBxdWV1ZQ0KPiA+IGlkICVkLlxuIiwNCj4gPiAtCQkJZGV2LT52aWQsIF9fZnVuY19fLCBxdWV1 ZV9pZCk7DQo+ID4gLQkJcmV0dXJuIDA7DQo+ID4gLQl9DQo+ID4gLQ0KPiA+IC0JcnRlX3NwaW5s b2NrX2xvY2soJnZxLT5hY2Nlc3NfbG9jayk7DQo+ID4gLQ0KPiA+ICAJcGt0c19pZHggPSB2cS0+ YXN5bmNfcGt0c19pZHggJSB2cS0+c2l6ZTsNCj4gPiAgCXBrdHNfaW5mbyA9IHZxLT5hc3luY19w a3RzX2luZm87DQo+ID4gIAl2cV9zaXplID0gdnEtPnNpemU7DQo+ID4gQEAgLTIxNTMsNyArMjEz NSw3IEBAIHVpbnQxNl90IHJ0ZV92aG9zdF9wb2xsX2VucXVldWVfY29tcGxldGVkKGludA0KPiA+ IHZpZCwgdWludDE2X3QgcXVldWVfaWQsDQo+ID4gIAkJdnFfc2l6ZSwgdnEtPmFzeW5jX3BrdHNf aW5mbGlnaHRfbik7DQo+ID4NCj4gPiAgCWlmIChjb3VudCA+IHZxLT5hc3luY19sYXN0X3BrdHNf bikgew0KPiA+IC0JCW5fcG9sbCA9IHZxLT5hc3luY19vcHMuY2hlY2tfY29tcGxldGVkX2NvcGll cyh2aWQsDQo+ID4gKwkJbl9wb2xsID0gdnEtPmFzeW5jX29wcy5jaGVja19jb21wbGV0ZWRfY29w aWVzKGRldi0+dmlkLA0KPiA+ICAJCQlxdWV1ZV9pZCwgMCwgY291bnQgLSB2cS0+YXN5bmNfbGFz dF9wa3RzX24pOw0KPiA+ICAJCWlmIChuX3BvbGwgPj0gMCkgew0KPiA+ICAJCQluX3BrdHNfY3Bs ID0gbl9wb2xsOw0KPiA+IEBAIC0yMTY4LDcgKzIxNTAsNyBAQCB1aW50MTZfdCBydGVfdmhvc3Rf cG9sbF9lbnF1ZXVlX2NvbXBsZXRlZChpbnQNCj4gPiB2aWQsIHVpbnQxNl90IHF1ZXVlX2lkLA0K PiA+ICAJbl9wa3RzX3B1dCA9IFJURV9NSU4oY291bnQsIG5fcGt0c19jcGwpOw0KPiA+ICAJaWYg KHVubGlrZWx5KG5fcGt0c19wdXQgPT0gMCkpIHsNCj4gPiAgCQl2cS0+YXN5bmNfbGFzdF9wa3Rz X24gPSBuX3BrdHNfY3BsOw0KPiA+IC0JCWdvdG8gZG9uZTsNCj4gPiArCQlyZXR1cm4gMDsNCj4g PiAgCX0NCj4gPg0KPiA+ICAJaWYgKHZxX2lzX3BhY2tlZChkZXYpKSB7DQo+ID4gQEAgLTIyMDcs MTIgKzIxODksNzQgQEAgdWludDE2X3QNCj4gcnRlX3Zob3N0X3BvbGxfZW5xdWV1ZV9jb21wbGV0 ZWQoaW50DQo+ID4gdmlkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gPiAgCQkJdnEtPmxhc3RfYXN5 bmNfZGVzY19pZHhfc3BsaXQgKz0gbl9kZXNjczsNCj4gPiAgCX0NCj4gPg0KPiA+IC1kb25lOg0K PiA+ICsJcmV0dXJuIG5fcGt0c19wdXQ7DQo+ID4gK30NCj4gPiArDQo+ID4gK3VpbnQxNl90IHJ0 ZV92aG9zdF9wb2xsX2VucXVldWVfY29tcGxldGVkKGludCB2aWQsIHVpbnQxNl90IHF1ZXVlX2lk LA0KPiA+ICsJCXN0cnVjdCBydGVfbWJ1ZiAqKnBrdHMsIHVpbnQxNl90IGNvdW50KQ0KPiANCj4g QmFzZWQgb24gRFBESyBjb2Rpbmcgc3R5bGUsIHRoaW5ncyBsaWtlIHJldHVybiB2YWx1ZSBzaG91 bGQgYmUgaW4gYW5vdGhlcg0KPiBuZXcgbGluZS4NCj4gDQo+IGh0dHBzOi8vZG9jLmRwZGsub3Jn L2d1aWRlcy9jb250cmlidXRpbmcvY29kaW5nX3N0eWxlLmh0bWwjZGVmaW5pdGlvbnMNCj4gDQo+ IEZvciBzaW1pbGFyIGNoYW5nZXMsIHBsZWFzZSBjaGVjay4NCj4gDQo+ID4gK3sNCj4gPiArCXN0 cnVjdCB2aXJ0aW9fbmV0ICpkZXYgPSBnZXRfZGV2aWNlKHZpZCk7DQo+ID4gKwlzdHJ1Y3Qgdmhv c3RfdmlydHF1ZXVlICp2cTsNCj4gPiArCXVpbnQxNl90IG5fcGt0c19wdXQgPSAwOw0KPiANCj4g U2luY2UgdGhpcyB2YWwgaXMgZm9yIHJlY29yZGluZyBwa3RzIGNvbXBsZXRlZCwgbWF5YmUgbl9w a3RzX2NwbD8NCj4gDQo+ID4gKw0KPiA+ICsJaWYgKCFkZXYpDQo+ID4gKwkJcmV0dXJuIDA7DQo+ ID4gKw0KPiA+ICsJVkhPU1RfTE9HX0RBVEEoREVCVUcsICIoJWQpICVzXG4iLCBkZXYtPnZpZCwg X19mdW5jX18pOw0KPiA+ICsJaWYgKHVubGlrZWx5KCFpc192YWxpZF92aXJ0X3F1ZXVlX2lkeChx dWV1ZV9pZCwgMCwgZGV2LT5ucl92cmluZykpKSB7DQo+ID4gKwkJVkhPU1RfTE9HX0RBVEEoRVJS LCAiKCVkKSAlczogaW52YWxpZCB2aXJ0cXVldWUNCj4gaWR4ICVkLlxuIiwNCj4gPiArCQkJZGV2 LT52aWQsIF9fZnVuY19fLCBxdWV1ZV9pZCk7DQo+ID4gKwkJcmV0dXJuIDA7DQo+ID4gKwl9DQo+ ID4gKw0KPiA+ICsJdnEgPSBkZXYtPnZpcnRxdWV1ZVtxdWV1ZV9pZF07DQo+ID4gKw0KPiA+ICsJ aWYgKHVubGlrZWx5KCF2cS0+YXN5bmNfcmVnaXN0ZXJlZCkpIHsNCj4gPiArCQlWSE9TVF9MT0df REFUQShFUlIsICIoJWQpICVzOiBhc3luYyBub3QgcmVnaXN0ZXJlZCBmb3INCj4gcXVldWUNCj4g PiBpZCAlZC5cbiIsDQo+ID4gKwkJCWRldi0+dmlkLCBfX2Z1bmNfXywgcXVldWVfaWQpOw0KPiA+ ICsJCXJldHVybiAwOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJ0ZV9zcGlubG9ja19sb2NrKCZ2 cS0+YWNjZXNzX2xvY2spOw0KPiA+ICsNCj4gPiArCW5fcGt0c19wdXQgPSB2aG9zdF9wb2xsX2Vu cXVldWVfY29tcGxldGVkKGRldiwgcXVldWVfaWQsIHBrdHMsDQo+ID4gK2NvdW50KTsNCj4gPiAr DQo+ID4gIAlydGVfc3BpbmxvY2tfdW5sb2NrKCZ2cS0+YWNjZXNzX2xvY2spOw0KPiA+DQo+ID4g IAlyZXR1cm4gbl9wa3RzX3B1dDsNCj4gPiAgfQ0KPiA+DQo+ID4gK3VpbnQxNl90IHJ0ZV92aG9z dF90cnlfZHJhaW5fcXVldWVfdGhyZWFkX3Vuc2FmZShpbnQgdmlkLCB1aW50MTZfdA0KPiBxdWV1 ZV9pZCwNCj4gPiArCQlzdHJ1Y3QgcnRlX21idWYgKipwa3RzLCB1aW50MTZfdCBjb3VudCwgdWlu dDE2X3QgdGltZXMpIHsNCj4gPiArCXN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYgPSBnZXRfZGV2aWNl KHZpZCk7DQo+ID4gKwlzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cTsNCj4gPiArCXVpbnQxNl90 IG5fY3BsID0gMDsNCj4gDQo+IE1ha2UgdGhlIG5hbWUgc2FtZSBhcyBhYm92ZQ0KPiANCj4gPiAr DQo+ID4gKwlpZiAoIWRldikNCj4gPiArCQlyZXR1cm4gMDsNCj4gPiArDQo+ID4gKwlWSE9TVF9M T0dfREFUQShERUJVRywgIiglZCkgJXNcbiIsIGRldi0+dmlkLCBfX2Z1bmNfXyk7DQo+ID4gKwlp ZiAodW5saWtlbHkoIWlzX3ZhbGlkX3ZpcnRfcXVldWVfaWR4KHF1ZXVlX2lkLCAwLCBkZXYtPm5y X3ZyaW5nKSkpIHsNCj4gPiArCQlWSE9TVF9MT0dfREFUQShFUlIsICIoJWQpICVzOiBpbnZhbGlk IHZpcnRxdWV1ZQ0KPiBpZHggJWQuXG4iLA0KPiA+ICsJCQlkZXYtPnZpZCwgX19mdW5jX18sIHF1 ZXVlX2lkKTsNCj4gPiArCQlyZXR1cm4gMDsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwl2cSA9IGRl di0+dmlydHF1ZXVlW3F1ZXVlX2lkXTsNCj4gPiArDQo+ID4gKwlpZiAodW5saWtlbHkoIXZxLT5h c3luY19yZWdpc3RlcmVkKSkgew0KPiA+ICsJCVZIT1NUX0xPR19EQVRBKEVSUiwgIiglZCkgJXM6 IGFzeW5jIG5vdCByZWdpc3RlcmVkIGZvcg0KPiBxdWV1ZQ0KPiA+IGlkICVkLlxuIiwNCj4gPiAr CQkJZGV2LT52aWQsIF9fZnVuY19fLCBxdWV1ZV9pZCk7DQo+ID4gKwkJcmV0dXJuIDA7DQo+ID4g Kwl9DQo+ID4gKw0KPiA+ICsJd2hpbGUgKChuX2NwbCA8IGNvdW50KSAmJiB0aW1lcy0tKQ0KPiAN Cj4gJ3doaWxlIChuX2NwbCA8IGNvdW50ICYmIHRpbWVzLS0pJyBpcyBlbm91Z2gNCj4gDQo+IFRo YW5rcywNCj4gQ2hlbmJvDQo+IA0KPiA+ICsJCW5fY3BsICs9IHZob3N0X3BvbGxfZW5xdWV1ZV9j b21wbGV0ZWQoZGV2LCBxdWV1ZV9pZCwNCj4gcGt0cyArIG5fY3BsLA0KPiA+IGNvdW50KTsNCj4g PiArDQo+ID4gKwlyZXR1cm4gbl9jcGw7DQo+ID4gK30NCj4gPiArDQo+ID4gIHN0YXRpYyBfX3J0 ZV9hbHdheXNfaW5saW5lIHVpbnQzMl90DQo+ID4gIHZpcnRpb19kZXZfcnhfYXN5bmNfc3VibWl0 KHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiA+ICAJc3RydWN0 IHJ0ZV9tYnVmICoqcGt0cywgdWludDMyX3QgY291bnQsDQo+ID4gLS0NCj4gPiAyLjI5LjINCg0K