From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id B92AB42E44;
	Tue, 11 Jul 2023 11:25:31 +0200 (CEST)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 3471A40A7D;
	Tue, 11 Jul 2023 11:25:31 +0200 (CEST)
Received: from APC01-TYZ-obe.outbound.protection.outlook.com
 (mail-tyzapc01on2088.outbound.protection.outlook.com [40.107.117.88])
 by mails.dpdk.org (Postfix) with ESMTP id C42BF4003C
 for <dev@dpdk.org>; Tue, 11 Jul 2023 11:25:28 +0200 (CEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UNbzLoUsvPrAqf3IarkgeFacK6Zpd1qFy0kJ3v1cZdJm4kGFDR7qdTeOT6QlzmZzxvx1mxNf1p2YGnk6Zr8Ty2dbt3WnolHVG9QUjWwINP/PLiYYF9dGlS2M/MnVitkkfL8ET/qt2QbCOOwiCCLHBDcQlzLSr1WKUZRdr6ydjDjsvikQamLhQ3gApq9FnCvCiqa6rCg88CGCKhTdhiuDjiG10IdwcQ6WnQ2nwWUTFOCoZEOXLBpLODMtZMFfRQ0mOSKJsqeQWSPNqbF/ION1cqcwA/XsfCQ62gc+PKjQMEYrJ4hubjQnS/AWQ+eXUumUIAxSnQoni3/+khNQkWltpw==
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=YMCbX7hBQIh9rpNOQpOh+ovd1CA9QKnw6k7VnkP7rrQ=;
 b=NkrFffZpCybnAJTk8aePTgH5OYFwr6xpmDfrBLV90FKOcX+c1THB1wbooz9NQ5bDBWYV66xhZWpNqK5+0G3x1Qq+uWEFz6GWoDpi2QT4edJKTymwAVroMaTgzjv7XmPFIjHZPC1cIbWBBgKhgIrrvHidgnVISaAWp6Jwf5/rjQo7pJ0JUeCx9a8yGOMFVF2tMo6hnjcXYogH4PmqZ871Yo341kI1MTXkzTVZwzKUPb2lyauDYQ6lFZjs3BMVyQV+J18v+u4QJNH36egkk1pQVb0EVyp6v8swDKxdBB2+wA7Rjp/XrT2nN2osxotzVnTZJWFxCg/Po7n59ugKe3Uatw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=jaguarmicro.com; dmarc=pass action=none
 header.from=jaguarmicro.com; dkim=pass header.d=jaguarmicro.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jaguarmicro.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YMCbX7hBQIh9rpNOQpOh+ovd1CA9QKnw6k7VnkP7rrQ=;
 b=m0CTeaQj/ScYQX3Ki83QOsraPx8j+SyKihUPbYvUPp187ZMZvN8IKtElgL5d9VEtvZgAWcn33Jvj7/30EMPrjPTMrVNvRUJw4eKmfmKtJb9ygmP++7cpz1ONa0ss12E6BjxeWcVPZq6zjShpPsciQCVG2QsSxU5W6y8ID/Q/4nh0O1P/JEtN9Wp0w1HyqNoeRZUB5Y7VXKdyJOxf3Ta2j3JBfeli1D7hBjDw9axrA3BOgpAbDWgZxMBLZQ0PLkvGO4fxKUnYrAT0jYkfYNL3yolSHKwyIC/bKNpLZ0f7PcyZRNVnyFuXoG+TIHY27ET12ZlpYYZILiA7k0TL8C9ZXQ==
Received: from PUZPR06MB4742.apcprd06.prod.outlook.com (2603:1096:301:b5::13)
 by TYZPR06MB5949.apcprd06.prod.outlook.com (2603:1096:400:337::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6565.17; Tue, 11 Jul
 2023 09:25:25 +0000
Received: from PUZPR06MB4742.apcprd06.prod.outlook.com
 ([fe80::936c:12e8:b8ef:7d51]) by PUZPR06MB4742.apcprd06.prod.outlook.com
 ([fe80::936c:12e8:b8ef:7d51%7]) with mapi id 15.20.6565.028; Tue, 11 Jul 2023
 09:25:25 +0000
From: Rma Ma <rma.ma@jaguarmicro.com>
To: dpdk-dev <dev@dpdk.org>
CC: Maxime Coquelin <maxime.coquelin@redhat.com>, Chenbo Xia
 <chenbo.xia@intel.com>
Subject: =?gb2312?B?u9i4tDogW1BBVENIIHYzXSB2aG9zdDogYWRkIG5vdGlmeSByZXBseSBvcHMg?=
 =?gb2312?Q?to_fix_message_deadlock?=
Thread-Topic: [PATCH v3] vhost: add notify reply ops to fix message deadlock
Thread-Index: AQHZriKIUaeiph0Px0C7vwJ57C7k96+0VosO
Date: Tue, 11 Jul 2023 09:25:25 +0000
Message-ID: <PUZPR06MB47423251E6A4BBCA6B9FEDA39931A@PUZPR06MB4742.apcprd06.prod.outlook.com>
References: <20230704023228.24879-1-rma.ma@jaguarmicro.com>
 <20230704025157.26024-1-rma.ma@jaguarmicro.com>
In-Reply-To: <20230704025157.26024-1-rma.ma@jaguarmicro.com>
Accept-Language: zh-CN, en-AS, en-US
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
msip_labels: 
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=jaguarmicro.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PUZPR06MB4742:EE_|TYZPR06MB5949:EE_
x-ms-office365-filtering-correlation-id: a47b2848-c1d4-4efc-9ea2-08db81f0c258
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: dDTbe0hoolfHkolwechGULphh+6KQ2xMLW3QZgixkAhbuf2cgOOgay2o4nL7UzSkVfL38yu8OeoqS6Vb1kzGmCDBql0oBbNVdMmJe9G1E9WehHhraCH7I5w5xrTk6gVUF+CppAjO3gt+UeOkIBzEdUEo8HKOptbEwW7Q7ij+uTDPC4m4XkA6XHE2go1lfejbhhCWAj3fWZNPxg157uRGM8QjtvB5bNpiMywNl53+whZQCM+FAutzB0b0dSc1T3epw3735y7GrRtFluP/n82iSGo6UPev4jr1RPKghdWrRtQ3RUfsCQ56+f1VM2PW5kdQM3OYFTnMx2V69g5IbfLksmFIcTSE54Q7Lz3nEtjhtPDRtuOiI6KYQHIEh2ryJFA69jxnOSVwYRb4XTVSqKnSwe4Og4ymHhT4JVzsLO5HSG0u5X2FTTDUAYyvOs5BxaxWqhsBqrtiKtQk6dL4xwJb1Deh4VAG982dTUPLd7EHLOZFPJMculM7tiY0SBKXVJTt5YdxB87zLaRhYrmWTCDVj9sZA4LnPQtmXD7v9/JNboB3oHZjb4qZ50p+JE8p+dpG/gTa5H6EyB7VgPBCozbDEUx7N5AjX7cw5gjSAoKBy6HxISqbJm2F4zoX8NzkcVQX
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:PUZPR06MB4742.apcprd06.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230028)(346002)(376002)(39830400003)(136003)(396003)(366004)(451199021)(55016003)(54906003)(122000001)(66476007)(71200400001)(66946007)(91956017)(478600001)(6916009)(7696005)(8936002)(4326008)(76116006)(38100700002)(41300700001)(66556008)(186003)(66446008)(9686003)(83380400001)(6506007)(26005)(316002)(5660300002)(33656002)(15650500001)(2906002)(86362001)(52536014)(38070700005)(44832011)(64756008)(224303003)(19627405001);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?gb2312?B?S1Z0eGVKMXgvSTBpb0g2T3IyNDBaNEh4VkUzU3F3ZlBrd3FPVU9VVXZReUJv?=
 =?gb2312?B?eDZPREVaUmN4ZEVPRU1STE1WZEZqYXRHNXRpRXNQRmtnRkY0elpRUVEwb05W?=
 =?gb2312?B?eXkydWRoT21nbTloNmZZTmZ2ZHFBTTlBbVRZYlRXeVRtTmUxNDVpek5UK3pw?=
 =?gb2312?B?NVczTEJoS1g4dFlxWkROa1Q5SEFRUTE1WEpKMXVyVENJUGJ1Z3ZZSks4RFJE?=
 =?gb2312?B?OXJhZ2NIZ2V1OFdhSGZyZ2QvZzBGVjJGZGM3WlhvTUQ1N3RpR1NNZmdIMCtP?=
 =?gb2312?B?ZDloMFZSYytTdm8yeHc0c1FaWGNnRDRpM3pKOG5NRU9CeVl2dU1ETE5aQS84?=
 =?gb2312?B?K29WM2l6dmhMeXFkMzdpblN6QkdzTWdZbHlEWThzbWZuMTVhZDFEbGh6MUc1?=
 =?gb2312?B?Yjk1aEpTWU1uYitpTVB3NWg3SGEzSDRLUkhWdXppZkltd1JONlRoTG1wN3NH?=
 =?gb2312?B?K2dCQnNxQWx5bUMxMnRETTU3L0l5VUNjaE1rRzlsRENqREowMVRtcUJ4TklG?=
 =?gb2312?B?Q1E1UU1zTVdlaDZQd0tMUTZJSDRFcy91MXJGVG43YjJqYlpMSWYvcFFFN2Fv?=
 =?gb2312?B?UUgxMllZTHlHcFI1SWw3Z2FWZUVuTTUrcUQvaGwySklCMmdvZmJiQmRNY3Vj?=
 =?gb2312?B?NnE0emlSdFBqWjJsY2hZVHVOK2YvK1p3MXpOTC9GUENJN2crOVNUSXA0TlMy?=
 =?gb2312?B?RHNoUlhNSWVhR2l0MVQ3N1lRVEhHQU9HeHZWR1dLZEp6Mzhma2h4Mk00cUhq?=
 =?gb2312?B?b0ZtWjRLdHNKMFBRa0RlZlE2dlc2MVFUWkxucHNHNTBkbFhMaEhyMG1OdGcr?=
 =?gb2312?B?bVR3NG9rWThENy82NktsMlI1UTUvRUVxbXRqQkhaRDN0TTZ1Rnpjd1AzWFpF?=
 =?gb2312?B?RmhjaVk4ZnBkdXB2UXVpbnNoWjNCNnhjSTJvUlg3MGJKNEQyYmdhbXJodjFq?=
 =?gb2312?B?UWJyam9qczcwY0I3QThFRmtHM21JU0tlRU56Yldiam5XNXFOT3d3N0JDZVVN?=
 =?gb2312?B?S2dxOWJsVFlNZm4xQ2IrNjlyUTJuUzRmTk5NcEJJOUdUYndnZHlkUlFjUi9t?=
 =?gb2312?B?THlRZytyUWpIU0VlNEk3Mk1pTnVhTkJGb1FNV0lSbkx3MTBqRGcxVWsycVZj?=
 =?gb2312?B?VnU2Qi9LZGtJWGVPT0dRaEE2KzRDU2FSRlliR2tFK0hpV2ljbXRQbWMxdlJn?=
 =?gb2312?B?UlFjTTVTYkdzckVBWTFnd283SEtmTElQTlUvdmtBcWNiN1lwRHppczRCL282?=
 =?gb2312?B?cmhXM2t3d3pXbjM3UVF1NXlSc3RHaktYYk84V1FBSkZiQzRIaEpZMFZHbHpE?=
 =?gb2312?B?VHlNbityVVB6SUZjQzZyRFNwYmhkNDFxSzFGR1NiNzZaYWFVbm51cnBHYWdx?=
 =?gb2312?B?N1o2YVVBblZ4UVRUeVBoa1NwU1N3RFF4bTM0SjFIZDkvVk5Wc0pkcWprcHdu?=
 =?gb2312?B?MFRXWWRnSEdROWxQUTdpaTEwWkRCeTc3ekl5S2VTSC9jWnQrblplNms1WUNU?=
 =?gb2312?B?dnBXelYvS3IrYUI0Q25JY0hBblFmei9pZEdPaEs0VDY4S1A3blBMVjFuV1Vm?=
 =?gb2312?B?ZWpRTHNTbUtweTg3S2NESVZ1eVpjdHgzYXBPVWxEUTlBalJBaFJWZTBRaWIx?=
 =?gb2312?B?UitWR2dHK2Fyd09La2lKdHdiKzQ5cmJJTjhXbklMUmsyRC9OSWZha0pOSGpo?=
 =?gb2312?B?UmRGNStjVVUxd3Fud3lRU3ROVmFDMTFFLyt3a0RRak9BTE12UjVtYkJnbVBp?=
 =?gb2312?B?YW1zWDFMZE4wNGdFbUEySXY4T1Vya2k1Y1FzSmhQbk1KbmVHSUZKZlp4aGhQ?=
 =?gb2312?B?elRsN0dka0h2b3prNWtESFNyVVFwVjR2d0NEZ08wUmh3NGZtOWZYaWtCQXlT?=
 =?gb2312?B?RzFoRXNHNkVUNWxpRGE2UnA0OVRhRnV0Y0RSSFZ1QTJnRmRsSVY3NDhTQU1s?=
 =?gb2312?B?ekRuSll4K2lSbDB2RTc2QUc0eW9aeTZxWjNscXI4TEtXbUVmKzIzYXpzay9T?=
 =?gb2312?B?dEtGeFJ1dWpZd2xUOThWYkpsaWR1d0tZZllOeW43ZTFqdGlhS20zNnp4Q2ht?=
 =?gb2312?B?OGtrUEx1MGs0NUxMZ1YwckpJalp2M2FrNlEyZXFmY0tmTEcwQmNGbE9DZzZP?=
 =?gb2312?Q?/A9M=3D?=
Content-Type: multipart/alternative;
 boundary="_000_PUZPR06MB47423251E6A4BBCA6B9FEDA39931APUZPR06MB4742apcp_"
MIME-Version: 1.0
X-OriginatorOrg: jaguarmicro.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PUZPR06MB4742.apcprd06.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a47b2848-c1d4-4efc-9ea2-08db81f0c258
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jul 2023 09:25:25.5252 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 1e45a5c2-d3e1-46b3-a0e6-c5ebf6d8ba7b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: j/FkDYxtNm8bFceesXyPdagnf1M0NJYlzgQZI8kP81LFj0BDHRWNERapONVbOM5uepRKHauKytNYSTvDckDxZA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR06MB5949
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

--_000_PUZPR06MB47423251E6A4BBCA6B9FEDA39931APUZPR06MB4742apcp_
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64

PiBTaW5jZSBiYWNrZW5kIGFuZCBmcm9udGVuZCBtZXNzYWdlIGFyZSBzeW5jaHJvbm91cyBpbiB0
aGUgc2FtZSB0aHJlYWQsDQo+IHRoZXJlIHdpbGwgYmUgYSBwcm9iYWJpbGl0eSBvZiBtZXNzYWdl
IGRlYWRsb2NrLg0KPiBDb25zaWRlciBlYWNoIGRyaXZlciB0byBkZXRlcm1pbmUgd2hldGhlciB0
byB3YWl0IGZvciByZXNwb25zZS4NCj4NCj4gRml4ZXM6IGQ5MGNmN2QxMTFhYyAoInZob3N0OiBz
dXBwb3J0IGhvc3Qgbm90aWZpZXIiKQ0KPiBDYzogbWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20N
Cj4gU2lnbmVkLW9mZi1ieTogUm1hIE1hIDxybWEubWFAamFndWFybWljcm8uY29tPg0KPiAtLS0N
Cj4gdjIgLSBmaXggZm9ybWF0IGVycm9yIGluIGNvbW1pdCBtZXNzYWdlDQo+IHYzIC0gYWRkIC0t
aW4tcmVwbHktdG8NCj4gLS0tDQoNCkhpIE1heGltZSwNCg0KVGhpcyBwYXRjaCBoZWxwcyB0byBm
aXggdmhvc3QtdXNlciBtZXNzYWdlIGRlYWRsb2NrLCBjb3VsZCB5b3UgaGVscCByZXZpZXcgaXQ/
DQoNClRoYW5rcy4NCg0KDQpCZXN0IHdpc2hlcywNCg0KUm1hDQoNCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fDQq3orz+yMs6IFJtYSBNYQ0Kt6LLzcqxvOQ6IDIwMjPE6jfUwjTI1SAx
MDo1Mg0KytW8/sjLOiBkcGRrLWRldiA8ZGV2QGRwZGsub3JnPg0Ks63LzTogTWF4aW1lIENvcXVl
bGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT47IENoZW5ibyBYaWEgPGNoZW5iby54aWFA
aW50ZWwuY29tPjsgUm1hIE1hIDxybWEubWFAamFndWFybWljcm8uY29tPg0K1vfM4jogW1BBVENI
IHYzXSB2aG9zdDogYWRkIG5vdGlmeSByZXBseSBvcHMgdG8gZml4IG1lc3NhZ2UgZGVhZGxvY2sN
Cg0KU2luY2UgYmFja2VuZCBhbmQgZnJvbnRlbmQgbWVzc2FnZSBhcmUgc3luY2hyb25vdXMgaW4g
dGhlIHNhbWUgdGhyZWFkLA0KdGhlcmUgd2lsbCBiZSBhIHByb2JhYmlsaXR5IG9mIG1lc3NhZ2Ug
ZGVhZGxvY2suDQpDb25zaWRlciBlYWNoIGRyaXZlciB0byBkZXRlcm1pbmUgd2hldGhlciB0byB3
YWl0IGZvciByZXNwb25zZS4NCg0KRml4ZXM6IGQ5MGNmN2QxMTFhYyAoInZob3N0OiBzdXBwb3J0
IGhvc3Qgbm90aWZpZXIiKQ0KQ2M6IG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tDQpTaWduZWQt
b2ZmLWJ5OiBSbWEgTWEgPHJtYS5tYUBqYWd1YXJtaWNyby5jb20+DQotLS0NCnYyIC0gZml4IGZv
cm1hdCBlcnJvciBpbiBjb21taXQgbWVzc2FnZQ0KdjMgLSBhZGQgLS1pbi1yZXBseS10bw0KLS0t
DQogbGliL3Zob3N0L3ZkcGFfZHJpdmVyLmggfCAgMyArKysNCiBsaWIvdmhvc3Qvdmhvc3RfdXNl
ci5jICB8IDIzICsrKysrKysrKysrKysrKysrKy0tLS0tDQogMiBmaWxlcyBjaGFuZ2VkLCAyMSBp
bnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvbGliL3Zob3N0L3Zk
cGFfZHJpdmVyLmggYi9saWIvdmhvc3QvdmRwYV9kcml2ZXIuaA0KaW5kZXggOGRiNGFiOWY0ZC4u
M2QyZWEzYzkwZSAxMDA2NDQNCi0tLSBhL2xpYi92aG9zdC92ZHBhX2RyaXZlci5oDQorKysgYi9s
aWIvdmhvc3QvdmRwYV9kcml2ZXIuaA0KQEAgLTgxLDYgKzgxLDkgQEAgc3RydWN0IHJ0ZV92ZHBh
X2Rldl9vcHMgew0KDQogICAgICAgICAvKiogZ2V0IGRldmljZSB0eXBlOiBuZXQgZGV2aWNlLCBi
bGsgZGV2aWNlLi4uICovDQogICAgICAgICBpbnQgKCpnZXRfZGV2X3R5cGUpKHN0cnVjdCBydGVf
dmRwYV9kZXZpY2UgKmRldiwgdWludDMyX3QgKnR5cGUpOw0KKw0KKyAgICAgICAvKiogR2V0IHRo
ZSBub3RpZnkgcmVwbHkgZmxhZyAqLw0KKyAgICAgICBpbnQgKCpnZXRfbm90aWZ5X3JlcGx5X2Zs
YWcpKGludCB2aWQsIGJvb2wgKm5lZWRfcmVwbHkpOw0KIH07DQoNCiAvKioNCmRpZmYgLS1naXQg
YS9saWIvdmhvc3Qvdmhvc3RfdXNlci5jIGIvbGliL3Zob3N0L3Zob3N0X3VzZXIuYw0KaW5kZXgg
OTAxYTgwYmJhYS4uYWE2MTk5MjkzOSAxMDA2NDQNCi0tLSBhL2xpYi92aG9zdC92aG9zdF91c2Vy
LmMNCisrKyBiL2xpYi92aG9zdC92aG9zdF91c2VyLmMNCkBAIC0zMzY1LDEzICszMzY1LDE0IEBA
IHJ0ZV92aG9zdF9iYWNrZW5kX2NvbmZpZ19jaGFuZ2UoaW50IHZpZCwgYm9vbCBuZWVkX3JlcGx5
KQ0KIHN0YXRpYyBpbnQgdmhvc3RfdXNlcl9iYWNrZW5kX3NldF92cmluZ19ob3N0X25vdGlmaWVy
KHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCBpbmRleCwgaW50IGZkLA0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBvZmZzZXQsDQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0
X3Qgc2l6ZSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1aW50NjRfdCBzaXplLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sIG5lZWRfcmVwbHkpDQogew0KICAgICAgICAgaW50IHJl
dDsNCiAgICAgICAgIHN0cnVjdCB2aHVfbXNnX2NvbnRleHQgY3R4ID0gew0KICAgICAgICAgICAg
ICAgICAubXNnID0gew0KICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXF1ZXN0LmJhY2tlbmQg
PSBWSE9TVF9VU0VSX0JBQ0tFTkRfVlJJTkdfSE9TVF9OT1RJRklFUl9NU0csDQotICAgICAgICAg
ICAgICAgICAgICAgICAuZmxhZ3MgPSBWSE9TVF9VU0VSX1ZFUlNJT04gfCBWSE9TVF9VU0VSX05F
RURfUkVQTFksDQorICAgICAgICAgICAgICAgICAgICAgICAuZmxhZ3MgPSBWSE9TVF9VU0VSX1ZF
UlNJT04sDQogICAgICAgICAgICAgICAgICAgICAgICAgLnNpemUgPSBzaXplb2YoY3R4Lm1zZy5w
YXlsb2FkLmFyZWEpLA0KICAgICAgICAgICAgICAgICAgICAgICAgIC5wYXlsb2FkLmFyZWEgPSB7
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudTY0ID0gaW5kZXggJiBWSE9TVF9V
U0VSX1ZSSU5HX0lEWF9NQVNLLA0KQEAgLTMzODgsNyArMzM4OSwxMyBAQCBzdGF0aWMgaW50IHZo
b3N0X3VzZXJfYmFja2VuZF9zZXRfdnJpbmdfaG9zdF9ub3RpZmllcihzdHJ1Y3QgdmlydGlvX25l
dCAqZGV2LA0KICAgICAgICAgICAgICAgICBjdHguZmRfbnVtID0gMTsNCiAgICAgICAgIH0NCg0K
LSAgICAgICByZXQgPSBzZW5kX3Zob3N0X2JhY2tlbmRfbWVzc2FnZV9wcm9jZXNzX3JlcGx5KGRl
diwgJmN0eCk7DQorICAgICAgIGlmICghbmVlZF9yZXBseSkNCisgICAgICAgICAgICAgICByZXQg
PSBzZW5kX3Zob3N0X2JhY2tlbmRfbWVzc2FnZShkZXYsICZjdHgpOw0KKyAgICAgICBlbHNlIHsN
CisgICAgICAgICAgICAgICBjdHgubXNnLmZsYWdzIHw9IFZIT1NUX1VTRVJfTkVFRF9SRVBMWTsN
CisgICAgICAgICAgICAgICByZXQgPSBzZW5kX3Zob3N0X2JhY2tlbmRfbWVzc2FnZV9wcm9jZXNz
X3JlcGx5KGRldiwgJmN0eCk7DQorICAgICAgIH0NCisNCiAgICAgICAgIGlmIChyZXQgPCAwKQ0K
ICAgICAgICAgICAgICAgICBWSE9TVF9MT0dfQ09ORklHKGRldi0+aWZuYW1lLCBFUlIsICJmYWls
ZWQgdG8gc2V0IGhvc3Qgbm90aWZpZXIgKCVkKVxuIiwgcmV0KTsNCg0KQEAgLTM0MDIsNiArMzQw
OSw3IEBAIGludCBydGVfdmhvc3RfaG9zdF9ub3RpZmllcl9jdHJsKGludCB2aWQsIHVpbnQxNl90
IHFpZCwgYm9vbCBlbmFibGUpDQogICAgICAgICBpbnQgdmZpb19kZXZpY2VfZmQsIHJldCA9IDA7
DQogICAgICAgICB1aW50NjRfdCBvZmZzZXQsIHNpemU7DQogICAgICAgICB1bnNpZ25lZCBpbnQg
aSwgcV9zdGFydCwgcV9sYXN0Ow0KKyAgICAgICBib29sIG5lZWRfcmVwbHk7DQoNCiAgICAgICAg
IGRldiA9IGdldF9kZXZpY2UodmlkKTsNCiAgICAgICAgIGlmICghZGV2KQ0KQEAgLTM0NDAsNiAr
MzQ0OCwxMSBAQCBpbnQgcnRlX3Zob3N0X2hvc3Rfbm90aWZpZXJfY3RybChpbnQgdmlkLCB1aW50
MTZfdCBxaWQsIGJvb2wgZW5hYmxlKQ0KICAgICAgICAgaWYgKHZmaW9fZGV2aWNlX2ZkIDwgMCkN
CiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9UU1VQOw0KDQorICAgICAgIGlmICh2ZHBhX2Rl
di0+b3BzLT5nZXRfbm90aWZ5X3JlcGx5X2ZsYWcgPT0gTlVMTCkNCisgICAgICAgICAgICAgICBu
ZWVkX3JlcGx5ID0gdHJ1ZTsNCisgICAgICAgZWxzZQ0KKyAgICAgICAgICAgICAgIHZkcGFfZGV2
LT5vcHMtPmdldF9ub3RpZnlfcmVwbHlfZmxhZyh2aWQsICZuZWVkX3JlcGx5KTsNCisNCiAgICAg
ICAgIGlmIChlbmFibGUpIHsNCiAgICAgICAgICAgICAgICAgZm9yIChpID0gcV9zdGFydDsgaSA8
PSBxX2xhc3Q7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZHBhX2Rldi0+
b3BzLT5nZXRfbm90aWZ5X2FyZWEodmlkLCBpLCAmb2Zmc2V0LA0KQEAgLTM0NDksNyArMzQ2Miw3
IEBAIGludCBydGVfdmhvc3RfaG9zdF9ub3RpZmllcl9jdHJsKGludCB2aWQsIHVpbnQxNl90IHFp
ZCwgYm9vbCBlbmFibGUpDQogICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHZob3N0X3VzZXJfYmFja2VuZF9zZXRfdnJpbmdfaG9zdF9ub3Rp
ZmllcihkZXYsIGksDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmZp
b19kZXZpY2VfZmQsIG9mZnNldCwgc2l6ZSkgPCAwKSB7DQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmZpb19kZXZpY2VfZmQsIG9mZnNldCwgc2l6ZSwgbmVlZF9yZXBs
eSkgPCAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAtRUZBVUxU
Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBkaXNhYmxlOw0KICAgICAg
ICAgICAgICAgICAgICAgICAgIH0NCkBAIC0zNDU4LDcgKzM0NzEsNyBAQCBpbnQgcnRlX3Zob3N0
X2hvc3Rfbm90aWZpZXJfY3RybChpbnQgdmlkLCB1aW50MTZfdCBxaWQsIGJvb2wgZW5hYmxlKQ0K
IGRpc2FibGU6DQogICAgICAgICAgICAgICAgIGZvciAoaSA9IHFfc3RhcnQ7IGkgPD0gcV9sYXN0
OyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICB2aG9zdF91c2VyX2JhY2tlbmRfc2V0
X3ZyaW5nX2hvc3Rfbm90aWZpZXIoZGV2LCBpLCAtMSwNCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAwLCAwKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAwLCAwLCBuZWVkX3JlcGx5KTsNCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg
fQ0KDQotLQ0KMi4xNy4xDQoNCg==

--_000_PUZPR06MB47423251E6A4BBCA6B9FEDA39931APUZPR06MB4742apcp_
Content-Type: text/html; charset="gb2312"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dgb2312">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof ContentPasted1">
&gt; Since backend and frontend message are synchronous in the same thread,
<div class=3D"ContentPasted1">&gt; there will be a probability of message d=
eadlock.</div>
<div class=3D"ContentPasted1">&gt; Consider each driver to determine whethe=
r to wait for response.</div>
<div class=3D"ContentPasted1">&gt; </div>
<div class=3D"ContentPasted1">&gt; Fixes: d90cf7d111ac (&quot;vhost: suppor=
t host notifier&quot;)</div>
<div class=3D"ContentPasted1">&gt; Cc: maxime.coquelin@redhat.com</div>
<div class=3D"ContentPasted1">&gt; Signed-off-by: Rma Ma &lt;rma.ma@jaguarm=
icro.com&gt;</div>
<div class=3D"ContentPasted1">&gt; ---</div>
<div class=3D"ContentPasted1">&gt; v2 - fix format error in commit message<=
/div>
<div class=3D"ContentPasted1">&gt; v3 - add --in-reply-to</div>
&gt; ---<br>
</div>
<div class=3D"elementToProof">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"ContentPasted2">
Hi Maxime,
<div><br class=3D"ContentPasted2">
</div>
<div class=3D"ContentPasted2">This patch helps to fix vhost-user message de=
adlock, could you help review it?</div>
<div><br class=3D"ContentPasted2">
</div>
Thanks.<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id=3D"Signature">
<div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<p style=3D"font-size: 10.5pt; font-family: =B5=C8=CF=DF; text-align: justi=
fy; margin: 0px; color: rgb(36, 36, 36); background-color: rgb(255, 255, 25=
5);">
<span lang=3D"en-US" style=3D"margin:0px" class=3D"ContentPasted0">Best wis=
hes,</span></p>
<p style=3D"font-size: 10.5pt; font-family: =B5=C8=CF=DF; text-align: justi=
fy; margin: 0px; color: rgb(36, 36, 36); background-color: rgb(255, 255, 25=
5);">
Rma</p>
</div>
</div>
</div>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>=B7=A2=BC=FE=C8=CB:</b> Rma Ma<=
br>
<b>=B7=A2=CB=CD=CA=B1=BC=E4:</b> 2023=C4=EA7=D4=C24=C8=D5 10:52<br>
<b>=CA=D5=BC=FE=C8=CB:</b> dpdk-dev &lt;dev@dpdk.org&gt;<br>
<b>=B3=AD=CB=CD:</b> Maxime Coquelin &lt;maxime.coquelin@redhat.com&gt;; Ch=
enbo Xia &lt;chenbo.xia@intel.com&gt;; Rma Ma &lt;rma.ma@jaguarmicro.com&gt=
;<br>
<b>=D6=F7=CC=E2:</b> [PATCH v3] vhost: add notify reply ops to fix message =
deadlock</font>
<div>&nbsp;</div>
</div>
<div class=3D"BodyFragment"><font size=3D"2"><span style=3D"font-size:11pt;=
">
<div class=3D"PlainText">Since backend and frontend message are synchronous=
 in the same thread,<br>
there will be a probability of message deadlock.<br>
Consider each driver to determine whether to wait for response.<br>
<br>
Fixes: d90cf7d111ac (&quot;vhost: support host notifier&quot;)<br>
Cc: maxime.coquelin@redhat.com<br>
Signed-off-by: Rma Ma &lt;rma.ma@jaguarmicro.com&gt;<br>
---<br>
v2 - fix format error in commit message<br>
v3 - add --in-reply-to<br>
---<br>
&nbsp;lib/vhost/vdpa_driver.h |&nbsp; 3 +++<br>
&nbsp;lib/vhost/vhost_user.c&nbsp; | 23 ++++++++++++++++++-----<br>
&nbsp;2 files changed, 21 insertions(+), 5 deletions(-)<br>
<br>
diff --git a/lib/vhost/vdpa_driver.h b/lib/vhost/vdpa_driver.h<br>
index 8db4ab9f4d..3d2ea3c90e 100644<br>
--- a/lib/vhost/vdpa_driver.h<br>
+++ b/lib/vhost/vdpa_driver.h<br>
@@ -81,6 +81,9 @@ struct rte_vdpa_dev_ops {<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** get device type: net d=
evice, blk device... */<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int (*get_dev_type)(struct=
 rte_vdpa_device *dev, uint32_t *type);<br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** Get the notify reply flag */<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int (*get_notify_reply_flag)(int vid,=
 bool *need_reply);<br>
&nbsp;};<br>
&nbsp;<br>
&nbsp;/**<br>
diff --git a/lib/vhost/vhost_user.c b/lib/vhost/vhost_user.c<br>
index 901a80bbaa..aa61992939 100644<br>
--- a/lib/vhost/vhost_user.c<br>
+++ b/lib/vhost/vhost_user.c<br>
@@ -3365,13 +3365,14 @@ rte_vhost_backend_config_change(int vid, bool need_=
reply)<br>
&nbsp;static int vhost_user_backend_set_vring_host_notifier(struct virtio_n=
et *dev,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp; int index, int fd,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp; uint64_t offset,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
; uint64_t size)<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
; uint64_t size,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp; bool need_reply)<br>
&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ret;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct vhu_msg_context ctx=
 =3D {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; .msg =3D {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .requ=
est.backend =3D VHOST_USER_BACKEND_VRING_HOST_NOTIFIER_MSG,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .flags =3D VHOST=
_USER_VERSION | VHOST_USER_NEED_REPLY,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .flags =3D VHOST=
_USER_VERSION,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .size=
 =3D sizeof(ctx.msg.payload.area),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .payl=
oad.area =3D {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .u64 =3D index &amp; VHOST_USER_=
VRING_IDX_MASK,<br>
@@ -3388,7 +3389,13 @@ static int vhost_user_backend_set_vring_host_notifie=
r(struct virtio_net *dev,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; ctx.fd_num =3D 1;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret =3D send_vhost_backend_message_pr=
ocess_reply(dev, &amp;ctx);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!need_reply)<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; ret =3D send_vhost_backend_message(dev, &amp;ctx);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else {<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; ctx.msg.flags |=3D VHOST_USER_NEED_REPLY;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; ret =3D send_vhost_backend_message_process_reply(dev, &amp;ctx);=
<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
+<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ret &lt; 0)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; VHOST_LOG_CONFIG(dev-&gt;ifname, ERR, &quot;failed to=
 set host notifier (%d)\n&quot;, ret);<br>
&nbsp;<br>
@@ -3402,6 +3409,7 @@ int rte_vhost_host_notifier_ctrl(int vid, uint16_t qi=
d, bool enable)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int vfio_device_fd, ret =
=3D 0;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uint64_t offset, size;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned int i, q_start, q=
_last;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bool need_reply;<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dev =3D get_device(vid);<b=
r>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!dev)<br>
@@ -3440,6 +3448,11 @@ int rte_vhost_host_notifier_ctrl(int vid, uint16_t q=
id, bool enable)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (vfio_device_fd &lt; 0)=
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; return -ENOTSUP;<br>
&nbsp;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (vdpa_dev-&gt;ops-&gt;get_notify_r=
eply_flag =3D=3D NULL)<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; need_reply =3D true;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; vdpa_dev-&gt;ops-&gt;get_notify_reply_flag(vid, &amp;need_reply)=
;<br>
+<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (enable) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; for (i =3D q_start; i &lt;=3D q_last; i++) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (v=
dpa_dev-&gt;ops-&gt;get_notify_area(vid, i, &amp;offset,<br>
@@ -3449,7 +3462,7 @@ int rte_vhost_host_notifier_ctrl(int vid, uint16_t qi=
d, bool enable)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (v=
host_user_backend_set_vring_host_notifier(dev, i,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; vfio_device_fd, offset, size) &lt; 0) {<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; vfio_device_fd, offset, size, need_reply) &lt; 0) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret =3D -EFAULT;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto disable;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
@@ -3458,7 +3471,7 @@ int rte_vhost_host_notifier_ctrl(int vid, uint16_t qi=
d, bool enable)<br>
&nbsp;disable:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; for (i =3D q_start; i &lt;=3D q_last; i++) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vhost=
_user_backend_set_vring_host_notifier(dev, i, -1,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; 0, 0);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; 0, 0, need_reply);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;<br>
-- <br>
2.17.1<br>
<br>
</div>
</span></font></div>
</body>
</html>

--_000_PUZPR06MB47423251E6A4BBCA6B9FEDA39931APUZPR06MB4742apcp_--