From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 14DDCC46467 for ; Mon, 16 Jan 2023 08:54:38 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pHLG5-0005yi-Lt; Mon, 16 Jan 2023 03:54:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pHLG3-0005xi-1H for qemu-devel@nongnu.org; Mon, 16 Jan 2023 03:54:23 -0500 Received: from szxga02-in.huawei.com ([45.249.212.188]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pHLFz-0006Qk-Ek for qemu-devel@nongnu.org; Mon, 16 Jan 2023 03:54:22 -0500 Received: from dggpemm100005.china.huawei.com (unknown [172.30.72.55]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4NwQlR1CnVzJrXP; Mon, 16 Jan 2023 16:52:51 +0800 (CST) Received: from kwepemm600016.china.huawei.com (7.193.23.20) by dggpemm100005.china.huawei.com (7.185.36.231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Mon, 16 Jan 2023 16:54:13 +0800 Received: from kwepemm600016.china.huawei.com ([7.193.23.20]) by kwepemm600016.china.huawei.com ([7.193.23.20]) with mapi id 15.01.2375.034; Mon, 16 Jan 2023 16:54:12 +0800 To: "Michael S. Tsirkin" , Stefan Hajnoczi , Peter Maydell CC: "qemu-devel@nongnu.org" , "Wubin (H)" , "Chentao (Boby)" , "Wanghaibin (D)" , "Zhangbo (Oscar)" , "limingwang (A)" , Wangyan , lihuachao Subject: =?gb2312?B?tPC4tDogW1FVRVNUSU9OXSBBYm91dCB2aXJ0aW8gYW5kIGV2ZW50bG9vcA==?= Thread-Topic: [QUESTION] About virtio and eventloop Thread-Index: AdkpcTID0pd8MGv+T9eTVpvXILZMZQAFpnOA Date: Mon, 16 Jan 2023 08:54:12 +0000 Message-ID: References: <63b89ae069d644b897ea97cc41b030ab@huawei.com> In-Reply-To: <63b89ae069d644b897ea97cc41b030ab@huawei.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.174.187.224] Content-Type: multipart/alternative; boundary="_000_eaf8c15d60264be8b30842c0f62efdcahuaweicom_" MIME-Version: 1.0 X-CFilter-Loop: Reflected Received-SPF: pass client-ip=45.249.212.188; envelope-from=zhukeqian1@huawei.com; helo=szxga02-in.huawei.com X-Spam_score_int: 15 X-Spam_score: 1.5 X-Spam_bar: + X-Spam_report: (1.5 / 5.0 requ) BAYES_00=-1.9, CHARSET_FARAWAY_HEADER=3.2, HTML_MESSAGE=0.001, MIME_CHARSET_FARAWAY=2.45, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: zhukeqian From: zhukeqian via Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org --_000_eaf8c15d60264be8b30842c0f62efdcahuaweicom_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SSBmb3VuZCBibGtfZHJhaW4oKSBpcyBpbnZva2VkIGJ5IHZpcnRpb19ibGtfcmVzZXQoKSwgc28g b25seSB0aGUgc2Vjb25kIHF1ZXN0aW9uIHJlbWFpbnMgOikuDQoNCreivP7Iyzogemh1a2VxaWFu IDw+DQq3osvNyrG85DogMjAyM8TqMdTCMTbI1SAxNjoxOA0KytW8/sjLOiAnTWljaGFlbCBTLiBU c2lya2luJyA8bXN0QHJlZGhhdC5jb20+OyAnU3RlZmFuIEhham5vY3ppJyA8c3RlZmFuaGFAcmVk aGF0LmNvbT47ICdQZXRlciBNYXlkZWxsJyA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPg0Ks63L zTogcWVtdS1kZXZlbEBub25nbnUub3JnOyBXdWJpbiAoSCkgPHd1Lnd1YmluQGh1YXdlaS5jb20+ OyBDaGVudGFvIChCb2J5KSA8Ym9ieS5jaGVuQGh1YXdlaS5jb20+OyBXYW5naGFpYmluIChEKSA8 d2FuZ2hhaWJpbi53YW5nQGh1YXdlaS5jb20+OyBaaGFuZ2JvIChPc2NhcikgPG9zY2FyLnpoYW5n Ym9AaHVhd2VpLmNvbT47IGxpbWluZ3dhbmcgKEEpIDxsaW1pbmd3YW5nQGh1YXdlaS5jb20+OyBX YW5neWFuIDx3YW5neWFuMTIyQGh1YXdlaS5jb20+OyBsaWh1YWNoYW8gPGxpaHVhY2hhbzFAaHVh d2VpLmNvbT4NCtb3zOI6IFtRVUVTVElPTl0gQWJvdXQgdmlydGlvIGFuZCBldmVudGxvb3ANCg0K SGkgYWxsIG1haW50YWluZXJzIGFuZCBjb21tdW5pdHkgZnJpZW5kcywNCg0KUmVjZW50bHkgSSBh bSByZXZpZXdpbmcgYW5kIGxlYXJuaW5nIHRoZSB2aXJ0aW8gYW5kIGV2ZW50bG9vcCBpbXBsZW1l bnRhdGlvbiBvZiBsYXRlc3QgUUVNVSwNCmFuZCBub3cgSSBoYXZlIGEgcXVlc3Rpb25zIGZvciBo ZWxwOg0KDQpJbiBnZW5lcmFsLCB0aGUgSU8gcmVxdWVzdHMgb2YgdmlydGlvIGlzIHBvcHBlZCBp biBpb3RocmVhZC9tYWlubG9vcCBhbmQgbWF5IHN1Ym1pdHRlZCB0byChsGFzeW5jIElPDQpFbmdp bmWhsSAgKGlvX3VyaW5nL2xpbnV4IGFpby90aHJlYWRwb29sKS4gT25jZSB0aGUgSU8gb3BlcmF0 aW9uIGlzIGRvbmUsIHRoZSChsGFzeW5jIElPIGVuZ2luZaGxIHdpbGwgc2VuZCBub3RpZmljYXRp b24NCnRvIGlvdGhyZWFkL21haW5sb29wIHRocm91Z2ggZXZlbmZkIG9yIGJvdHRvbWhhbGYsIGFu ZCB0aGUgY29tcGxldGlvbiBhY3Rpb24gZm9yIHRoZSBJTyByZXF1ZXN0IChhZGQgdXNlZCByaW5n IGFuZA0Kbm90aWZ5IGd1ZXN0KSBpcyBkb25lIGluIGlvdGhyZWFkL21haW5sb29wLg0KDQpBbmQg bGV0oa9zIGxvb2sgYXQgdGhlIKGwZGVhY3RpdmWhsSBwcm9jZWR1cmUgb2YgdmlydGlvLXBjaSBk ZXZpY2VzICh3aGVuIGd1ZXN0IHdyaXRlIDAgdG8gIGRldmljZSBzdGF0dXMgb3Igc3lzdGVtDQp0 cmlnZ2VyZWQgcmVzZXQpLCB0aGUgYmFzaWMgcmVxdWlyZW1lbnQgaXMgdGhhdCBkZXZpY2Ugc2hv dWxkIHN0b3AgaGFuZGxpbmcgSU8gcmVxdWVzdHMgYW5kIGFjY2Vzc2luZyB2aXJ0cXVldWUgYmVm b3JlDQpyZXR1cm5pbmcgYmFjayB0byBndWVzdCwgYXMgdGhlIGd1ZXN0IG1heSBkZXN0cm95IHZp cnF1ZXVlICBvbmNlIGRlYWN0aXZhdGlvbiBpcyBkb25lLg0KDQpRRU1VIGludm9rZXMgc3RvcF9p b2V2ZW50ZmQoKSBjYWxsYmFjayB0byBwZXJmb3JtIGFib3ZlIGFjdGlvbnMuIEl0IHVucmVnaXN0 ZXJzIGlvZXZlbnRmZCBmcm9tIGV2ZW50bG9vcCBhbmQgS1ZNLA0KDQogIDEuICBidXQgSSBjYW6h r3QgZmluZCBjb2RlIHRoYXQgZW5zdXJpbmcgSU8gb3BlcmF0aW9ucyBpbiChsGFzeW5jIElPIGVu Z2luZaGxIGFyZSBkb25lLg0KICAyLiAgQW5kIGlmIElPIG9wZXJhdGlvbiBpcyBibG9ja2VkLCBp cyB2Q1BVIHRocmVhZCB3aWxsIGJsb2NrZWQgd2hlbiBkbyBkZWFjdGl2YXRlPw0KDQpJdKGvcyBn cmVhdCB0aGF0IGlmIGFueW9uZSBjYW4gaGVscCENCg0KVGhhbmtzLA0KS2VxaWFuDQo= --_000_eaf8c15d60264be8b30842c0f62efdcahuaweicom_ Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable

I found blk_drain() is invoked by virtio_blk_reset()= , so only the second question remains :).

 

=B7=A2=BC=FE=C8=CB: zhukeqian <>
=B7=A2=CB=CD=CA=B1=BC=E4: 2023=C4=EA1=D4=C216=C8=D5 16:18
=CA=D5=BC=FE=C8=CB: 'Michael S. Tsirkin'= <mst@redhat.com>; 'Stefan Hajnoczi' <stefanha@redhat.com>; 'Pe= ter Maydell' <peter.maydell@linaro.org>
=B3=AD=CB=CD: qemu-devel@nongnu.org; Wub= in (H) <wu.wubin@huawei.com>; Chentao (Boby) <boby.chen@huawei.com= >; Wanghaibin (D) <wanghaibin.wang@huawei.com>; Zhangbo (Oscar) &l= t;oscar.zhangbo@huawei.com>; limingwang (A) <limingwang@huawei.com>= ;; Wangyan <wangyan122@huawei.com>; lihuachao <lihuachao1@huawei.com= >
=D6=F7=CC=E2: [QUESTION] About virtio an= d eventloop

 =

Hi all maintainers and community friends,=

 

Recently I am reviewing and learning the virtio and = eventloop implementation of latest QEMU,

and now I have a questions for help:

 

In general, the IO requests of virtio is popped in i= othread/mainloop and may submitted to =A1=B0async IO

Engine=A1=B1  (io_uring/linux aio/threadpool). = Once the IO operation is done, the =A1=B0async IO engine=A1=B1 will send no= tification

to iothread/mainloop through evenfd or bottomhalf, a= nd the completion action for the IO request (add used ring and

notify guest) is done in iothread/mainloop.

 

And let=A1=AFs look at the =A1=B0deactive=A1=B1 proc= edure of virtio-pci devices (when guest write 0 to  device status or s= ystem

triggered reset), the basic requirement is that devi= ce should stop handling IO requests and accessing virtqueue before

returning back to guest, as the guest may destroy vi= rqueue  once deactivation is done.

 

QEMU invokes stop_ioeventfd() callback to perform ab= ove actions. It unregisters ioeventfd from eventloop and KVM,

  1. but I can=A1=AFt find code that ensuring IO operations in =A1=B0async IO engine=A1=B1 are done.   <= o:p>
  2. And if IO operation is blocked, is vCPU thread will bl= ocked when do deactivate?

 

It=A1=AFs great that if anyone can help!<= /p>

 

Thanks,       &nb= sp;            =             &nb= sp;            =             &nb= sp;            =             

Keqian

--_000_eaf8c15d60264be8b30842c0f62efdcahuaweicom_--