From nobody Sat May 18 05:53:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1588588357; cv=none; d=zohomail.com; s=zohoarc; b=WpMgGsXRCt5V3A2OK1jiy/qSeSmqmdsXqi9SEIFLgGIvKVjBwZz5cDvCQjmZc02N1Rt+OvWtpAC3Rt0G9+dVDe9eqB/P+yBgifeIsXJ5eBzDYWtjScwW7GP2NJmxbzVU4PoePOgRmqoGxCY+VZcME+f8t5oAKN66b8KIBpwHsew= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588588357; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=3rxURWSfKXwVQQ6EnK6qy7hSbDvdZMyGxZ+n/J5o/zs=; b=j2uDTrMK6XeviBGzoCIFqe+Kn0W70A39UT/V/5t4T6xs9+eS5hdHJUmEqynsshuJ9un8dmj0mWGg8MN5ThMDbCKol5Ns+sbaDd8gwRi1/5bKC8bjPKf97xDyV/jo1Jj5RtAH/HyeSEt8+0E0Lc5l05tCR+wRhN7NYerQ9NqYeg4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588588357702875.4180881716125; Mon, 4 May 2020 03:32:37 -0700 (PDT) Received: from localhost ([::1]:52684 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jVYOp-0000Ab-LA for importer@patchew.org; Mon, 04 May 2020 06:32:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41254) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jVYKg-00074M-Jj for qemu-devel@nongnu.org; Mon, 04 May 2020 06:28:18 -0400 Received: from mout.web.de ([212.227.15.4]:58221) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jVYKf-0002R9-Gt for qemu-devel@nongnu.org; Mon, 04 May 2020 06:28:18 -0400 Received: from luklap ([87.123.206.27]) by smtp.web.de (mrweb002 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MJCEk-1jSnAu41Xe-002pe0; Mon, 04 May 2020 12:28:03 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1588588083; bh=49rFwmwm3wTNOlxvlHpbJp+Nr690qaVX1fypakIKSro=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=r1t/iVmqBUm8evnaVtQodqdIi6IGNit+KdyXnNH4OtE+gl9cM6PVWnfHi81kxi2Yd pg1zODwoUXs5vZNOScoNORIEo1SQ3XfG4motN785xqc+iChGR0nXqIBKE6Ae8g8DmV 0YPta7l3jrKhx2rn/1SI3eimypKWDlJAnpAIxB7c= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Date: Mon, 4 May 2020 12:28:01 +0200 From: Lukas Straub To: qemu-devel Subject: [PATCH v4 1/6] net/colo-compare.c: Create event_bh with the right AioContext Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/s6q0XVhHqm25NT3YOV5nWfw"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Provags-ID: V03:K1:A77I2kLsIrVU50R5laHuCTeEg+6N9tbxM+JO6wyoOcbgOIjoKFV tnFBFakp0GRln9b+ZH8KarQmRBcpe1a3mGSOOOpMFRSXAu9d5dr+W4mRGKU93t5FAS6/1Rs lKXvSZ3VEEZNbuGIlJI6vW+xwZ+iDf0WBxwhtPgUIpjtIx9OXTAj+1B7zve8yJdhHMZ0C7F 7oSFphdaMNSbKVXFd4Q3Q== X-UI-Out-Filterresults: notjunk:1;V03:K0:Gcz4lEaoG1I=:Toqs8isLPKIFtfp9TQ/Li/ c2RaZ1HD9wVECJzfnKvOG9DnB6c+QLXDm4UnhBmqJdEjWjtryC/nHqvGunxAK3jfZcQeSxG0n 2bLndZGhhq+hIpuCZIUz9HeUKkAYKzFbtQrkFBwQLGxc+0KGWWmxhrzTDFs2D4mpTyt/0+k0F T7oLlLdJ7u/5JqwXmMg7bViyXb+73RJy0M7egD215YzvL+d8Ax6rSEijz08QGmrR1GwuTvNk5 Xy7p1NIdFJ1FZLlqv1R1BJnMR5DU0AEiSIjpIZ64xD683DKpmsJr0ql7PmuvZjCeGKvHEii8S 4x0b8XhMdmFKy3NUZR7X3IYJGasFW9Fnib1FVhCR4r4Cbdjr9ElXpZ6axIA8iyEmFPxTvCJzA /zfCfEC2BSB33xr1furAlwrWwXJYAhz5pdlJIaQt35RzC1NkoprpOyPco8RjUKyn5shdiT2mu pP2YBi106wYyvxqZrkOyqca9/z0c7weL/eieTIJduUnW6Sh6Eo5ek5vu1qaIa9lQJHa4SjoMm um1D+/XK0/5ae1ysM+1ww5JEa4PPZIJ9zl1L8AgfB39f2K+VguIdvVy5x4+Rl1/QKofjBYk5q mZyqodno7+zB107jLwHQ2MtsrpFEMFywzwNNJ58x1KWbjMC28CnFhDARS6WURGkKO7zfu67Wn 1Sj0geq+SKO9/e3uj0hKahhLmsXXkFMsc80ShBF3K4b31kARaubjDRZ2q2GQAyiIgyTMddk0t 1tweBga2wKyeIqQW9ZMjUGOvVTBSzbORBOPW0AFcShncJjA6LvVHRGDAU09rZ2gzaIyHDf2Wl fNuB9vdisQ6wPf3aXWAFvP9646eiNfji6K9FZgGgn1md8syla7rcg0ty9vYE+Xo+cjOWPk0mP +g5P8Z8PZflBZOO8St5f5KAeLM3NdIeFOPr2WHW7zlEWLamVYTrZ6x3kOWH/m5IigjtSBXsjZ zvw1NUB+N9lGaBVx/VWqNqwH+f3/1v1F+4pspIPIRomXTM+8sr8qMWrYmJhQ0XstED40zPy4z XSHi2oxpsZW6En6vFWZiSnUMslKuiWJxX0YlauSvtvmO7n53cXBkiGf90r/UFOu/m94mDIt7J 1fSPZKWYqWHsn06NH9MNADL37CuyKnVf44vVHTi0MNoVUBSB4hbamjXLLCzqu/iV9cq+wpdYx yBnVYkidj3Utxceivf0CyNjJAu5fQBeE0aFEk6hxh9fKqWch4eUHHKibDDY2A9TO3pp1NDLqB KhX2IhXG6ltubtSrc Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.4; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/04 06:28:16 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Zhang Chen , Jason Wang , Paolo Bonzini , Li Zhijian , =?UTF-8?B?TWFyYy1BbmRyw6k=?= Lureau Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: fail (Header signature does not verify) --Sig_/s6q0XVhHqm25NT3YOV5nWfw Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" qemu_bh_new will set the bh to be executed in the main loop. This causes crashes as colo_compare_handle_event assumes that it has exclusive access the queues, which are also concurrently accessed in the iothread. Create the bh with the AioContext of the iothread to fulfill these assumptions and fix the crashes. This is safe, because the bh already takes the appropriate locks. Signed-off-by: Lukas Straub Reviewed-by: Zhang Chen Reviewed-by: Derek Su Tested-by: Derek Su --- net/colo-compare.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/colo-compare.c b/net/colo-compare.c index 10c0239f9d..1de4220fe2 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -890,6 +890,7 @@ static void colo_compare_handle_event(void *opaque) =20 static void colo_compare_iothread(CompareState *s) { + AioContext *ctx =3D iothread_get_aio_context(s->iothread); object_ref(OBJECT(s->iothread)); s->worker_context =3D iothread_get_g_main_context(s->iothread); =20 @@ -906,7 +907,7 @@ static void colo_compare_iothread(CompareState *s) } =20 colo_compare_timer_init(s); - s->event_bh =3D qemu_bh_new(colo_compare_handle_event, s); + s->event_bh =3D aio_bh_new(ctx, colo_compare_handle_event, s); } =20 static char *compare_get_pri_indev(Object *obj, Error **errp) --=20 2.20.1 --Sig_/s6q0XVhHqm25NT3YOV5nWfw Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEg/qxWKDZuPtyYo+kNasLKJxdslgFAl6v7jEACgkQNasLKJxd sljHBw/8DAicldDJrVDdgKMBKAJMYwACttCjljfnSd2/jqj6BxvhrHH3qMilPeBN mtrzWxU3A04vuMB7bEpFDqvjMj3SxJq30UZ38kYv2R4sIAO3TKJmWzbFk9s7Jm3i QuExC/U60VmryFzBeobaxQlCFOfqqKbU136jJzTr4WK8m9Fpr/og3C4y/GlKAq7i +EZOZZtqC2qk7wnCt2OwM7y93KZje3Ba8AvoaPATsXn36gxtzPChDIt8WmKT5x0F bhmam5E1hp7oZ6kyiohI6A2mJKWN5r/HZCWPsYE22oyTQ5IN8ld1gZZyolLIDx67 nl8p4UeNlQWxTQfwpSFZij9QrXHj2/3R3cZKzsoDJ5x+/f+Lh7xhOZemNRvWLxFN YVAOPXk3DmD6SFP7HyYy+PiskSVhoUg+DfCJnJ677AdKV40GAVk+wrzs5gAUiYwe jjcF+jXZwq1UZxDQY4Vedm4tJMTyUMaxZ/PCGNPHtycxxGLe+KCq3slWJI7NjBEO Giwdgd2GK6F68f9y5Yo7C+7PsCfAuf3nATnkoojwm8zGsMoENp346qZU+uWx+DCJ XllocXUq64LMkplauAyqAvs13k/bE/Pl7fWNlI1KZCZWcjDyftdfUIUxyBHBGZpE oV7WQTYKkThLk9ZqwNo/Sl6xa3hSdU7M5zkzz2YMexKLxIEKJoc= =6Cs4 -----END PGP SIGNATURE----- --Sig_/s6q0XVhHqm25NT3YOV5nWfw-- From nobody Sat May 18 05:53:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1588588722; cv=none; d=zohomail.com; s=zohoarc; b=ZeWF3Uqac4IVLYmd9zBglu9PIO+BvkmF8kp3BVb8bVJJ/sQqmzTCTJYJIO5XKNCwjfFd3f9NaZMAJvnJUzpXUh8p1JqN6yc+KQ2IohK8ugW2dBVhA2phyouA/dP3oPoOTyHyFcbvpzj5sFdAAnuJ3HAA8AQPmjIjBrEnDi9mBRY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588588722; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=vpjIEv05YP7+Cghz5r6LRa8zmahOE6pb3wAgT94LQRY=; b=Gp+2VkjWR8wSeCC2QYAJVMiRagGgMj3ZcETTd5YTLllOV/RxxB1ThYhhCk/GHqxOew0tLA0zgWIDpeg9iXgWbHOHaKm1RBxipB09+FGUn1ud3SXeHk3QEge4IPNm/wpj4VoLOZc+C0tz6iJzYb9MSmf7tT2iJaqZITj0Hb0x/Ds= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588588721992904.4184833133613; Mon, 4 May 2020 03:38:41 -0700 (PDT) Received: from localhost ([::1]:32960 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jVYUi-0004Fe-0a for importer@patchew.org; Mon, 04 May 2020 06:38:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41264) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jVYKh-00075y-Jp for qemu-devel@nongnu.org; Mon, 04 May 2020 06:28:19 -0400 Received: from mout.web.de ([217.72.192.78]:34581) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jVYKg-0002RE-LU for qemu-devel@nongnu.org; Mon, 04 May 2020 06:28:19 -0400 Received: from luklap ([87.123.206.27]) by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M7epr-1jWNo23nUj-0085j7; Mon, 04 May 2020 12:28:07 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1588588088; bh=9/XfUlzD0JhzvxOKh/ThcXoK6slWbCKkPxSj2UT8mQM=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=Q7DL+GbhgYcXoq9DK3O+zZTxVkckul1ZBvjDnkmfgjP9wV09TEVClrLHD0LkNHz/Z OilSYXpkFVP/suIzAmuTn0IkPajoV7YzDGRq47Kib8KmZ9GLhUyGgc/EqQAjSOkvxC 3iqNcO7OO2/B8B+hvm5/fHcCdR8tx7lMqPQtb74c= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Date: Mon, 4 May 2020 12:28:05 +0200 From: Lukas Straub To: qemu-devel Subject: [PATCH v4 2/6] chardev/char.c: Use qemu_co_sleep_ns if in coroutine Message-ID: <4a0a27a167669dec734a37f0d3d3826ac131db4d.1588587700.git.lukasstraub2@web.de> In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/J3ZP+6/aUKSyG..Yr_gimrG"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Provags-ID: V03:K1:a2Bz2jMYlLxNs4b0QHBCR0y+PAYZszqhIj4J7sW7IFlyA9vNoxl zsGYQ261FMLk4TYTAwoO0SGXUxS/Fpy4Wjg2mKl7iA5FqU382huTkffiwwEg5esVfzh4Ea6 Zxopd0sp3SRtGzge1Td0XqMzWSC6OyztzEQNQPCloIPjyI/1XBuWiOQyWiC6rjE70SrxEpO k43PS7OamUGIAFLOVMzEg== X-UI-Out-Filterresults: notjunk:1;V03:K0:pHoRy1v7tVM=:KbvtLmsO44e1gpJsiA6ybR hKMqg6gSm7j8EjbWKw4j7X4lVBKdig9B03u2QV/L2D6xrKRnpquAEETURIvmNXlyxoe3Y3+I6 gIpveMx2s2pty39aQOiLHCLgF4+vJw4UajZgO4QBqoy6iXwgy4y0JDBSSz96wGS+HJ3YlT/HN Ds5DT9HZpdQFFNllyAcxJziplz58BsD+A+8YNINfTh5UnkC8xtFx0DYY9vAoMBHRPX2aRQz9o vxzfoZX76DTNfPZUT0v+hbh2c5RIEokdO8nmPMpj3Bcoaom7EZffFUUNA8o1KSNKlDWdwcXbr kDXUSRRA3EokxU3xhFBOSljBAzSFZ6t88bzPIRvw9FPcW3k0u75nyjJQS75vIDRxvzCR7vKcQ CmBqzOfinOV4k94+8mhx9SCMxPGN/BVSnTG2Fr330OM4Wg51b+7viCD645YcyHDJmdM8qWOnU jMtQbzva3lQbhIkdJvuGiV/0d+/rz3ep8PHcFcWNfvIlIxEEkk6Hi3PdLDm81002uW14S+ayz ASgzi5LyR68ML9o58wUVhTxxd+0O9pF51Ao7vNvBvf9NHK9XvbbABC9V6mjQi/6zCXXfCQamW NgOAkb6e9wrwdbmAN9qjtXNUZ520Ixze0btc3pKPo/IIsMOk1MG5s9EOzYLhzc/WmeWZWRu7h rafra2HCXBRHV5vmhQZHrL8XlTy6P+tXEUF+7PVZ1P/oBYgBWHvewbEG4eedjOG3nwAQEK1JF e0On+50GPDPjHEJ4RJ5u3KNsZnAjBDXMKIqrmj2T+PMQHgYiKo/4mhPlZ61D47y0iiSTHi+Jj nRTTgvHmUzihW+0y4gAkBH6EnvSIKTjZmbsZUIHnhaW8tX4JQKlIeu0l92MJdnJ8ag6D5FYF6 qRn6Im6UjChjakZCKlnQI0WjZWhXqbdhv/84V/J6PE2owasagtaGaE6MaKoFfvnmhS5mrN9Cb V3kon6GV+KHut175bevSKXDYfPy+D/RZRqbChjGuNrGqenj3rl5WXOhZ8S2+x3IRmiRhLUREI I2Od3v3EQSem0lnpZuqvsKVYij4TmjTPGICRK8e36c8UdDMyN19jklvva3incUcQ4dPlwemT5 KFMrmroa/aLEPPaSIIHRvBbvw2a4mjqGYG01HHQAtzqk54oHYb1ZJhXeLWXoTbJmkYArEfLVR 4pKVHqSOVOHN4m2QRX5phpN3FoPqusTN6DrlrKmLAKFVYPO7i3xtARpBOtFck/yFaTy+g1k18 n5o9m0DEJCK+FYFV4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=217.72.192.78; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/04 06:28:11 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Zhang Chen , Jason Wang , Paolo Bonzini , Li Zhijian , =?UTF-8?B?TWFyYy1BbmRyw6k=?= Lureau Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: fail (Header signature does not verify) --Sig_/J3ZP+6/aUKSyG..Yr_gimrG Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This will be needed in the next patch. Signed-off-by: Lukas Straub Reviewed-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Zhang Chen --- chardev/char.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/chardev/char.c b/chardev/char.c index e77564060d..5c8014199f 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -38,6 +38,7 @@ #include "qemu/module.h" #include "qemu/option.h" #include "qemu/id.h" +#include "qemu/coroutine.h" =20 #include "chardev/char-mux.h" =20 @@ -119,7 +120,11 @@ static int qemu_chr_write_buffer(Chardev *s, retry: res =3D cc->chr_write(s, buf + *offset, len - *offset); if (res < 0 && errno =3D=3D EAGAIN && write_all) { - g_usleep(100); + if (qemu_in_coroutine()) { + qemu_co_sleep_ns(QEMU_CLOCK_REALTIME, 100000); + } else { + g_usleep(100); + } goto retry; } =20 --=20 2.20.1 --Sig_/J3ZP+6/aUKSyG..Yr_gimrG Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEg/qxWKDZuPtyYo+kNasLKJxdslgFAl6v7jUACgkQNasLKJxd sljitBAAshdey0Kklkw2C7CSTRuaqD/EIm5W2MYwHnyvrsIMAf1ewKPpqX1rLP6X xOi4ymiVPDz/oO253JqXUc+ax4bOo/LFcURrx9Ddmcg3F9zglKcMdewQJnWh7kNZ 113Yz/4N46gGEa9xhMzOGcH1i6c5fHZN9wLMGzFZMu6s593Zpn4t7zn9GHI4Ko28 i5apQqI8abC0iV/VaXUZjbrvw2wbIi9IfB5ennXthQ3sQ7mhSzbGlfXCowmYYcSI F/EzZAY5s03MPhyCPphlXjeGBdLjpRKsk+1/LTziYDhc41ocPQTh0Asv6Cxabrpr uyy+FdK9/WlEUdHNNVCx+RHP1bx5lABU48FuHg4ZNhex4IUJFxOYd5EXojtDUU3K IDGB+fqTGU2/mPe2ZWZX56yK61ranbyHJDCjylSUv691YDdV6O6wdyw1AZYAOENH 9iX1Z9vIglXf+5U7yuBCtu6y0uic2VJCBI2MoPdT4CX8ua1+kb3NwqxejNWugA2S PJn0nqeEni+g5rq9Ji33Rm07bERreaO4TC+movJ18YCLhCNsl7qqIjQ5V6SR8eGB GSJTbSPsT1HK6Vv2BxWBxVQgdByDM0cI+93Zumgz6XiogRnjaZlJ0ZKsvx1Pa0LP xW1wVMan/bdh1pGHlXjMT1YsvfMr2VIwQfGkYKRNKswwitpDtnA= =cB3C -----END PGP SIGNATURE----- --Sig_/J3ZP+6/aUKSyG..Yr_gimrG-- From nobody Sat May 18 05:53:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1588588727; cv=none; d=zohomail.com; s=zohoarc; b=KUIeLop9RP1GE13y2BgR+FQvbWXQPikFI9dFwjaoByyAnZzxsOmo+k2vc9JBrdRk/+BQ/VlcIb266l+u2HR7jD2uX2EH3grUkrBvx16hAKay5BAB+iHZJkhQ4uNyQgu4EOjuzWd5WJWBziYKCLBFT9/jzK/sq/LWqnhbwQgWST0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588588727; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=U0GpJ59PdozUWlMuyohsf2JCySgMN6N9v3FsJy+bLa0=; b=Xz9RG6Xat9iXWt9j7VknpbFIxSBV8KyFNA+GPQzSjhsP5Jnm3LkW6rM/RoP/2lpuKNepj2N/W965b12nQOPT+zMzA85n8XMVwpx4A3ZZ/FDVlVONxp+sx6A5rPtNEnLGYgqv8AR8ZypIGzbooZmp5ovo4zS6kNMkZSYkDUxVdlA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588588727798337.96343023314137; Mon, 4 May 2020 03:38:47 -0700 (PDT) Received: from localhost ([::1]:33034 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jVYUo-0004Hm-61 for importer@patchew.org; Mon, 04 May 2020 06:38:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41284) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jVYKm-0007Bl-B5 for qemu-devel@nongnu.org; Mon, 04 May 2020 06:28:24 -0400 Received: from mout.web.de ([212.227.15.14]:46311) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jVYKl-0002Tc-1W for qemu-devel@nongnu.org; Mon, 04 May 2020 06:28:24 -0400 Received: from luklap ([87.123.206.27]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0LtTDo-1j3oIZ22Wi-010x6E; Mon, 04 May 2020 12:28:11 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1588588091; bh=pvyqBBN+1r1iORC5mN/kTIaJW3AwgkWvkbILOHJnPqU=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=Z9Mq3FQGIf/gbRsNtd/UVErlZQZsczZC5HN1e5srn9YUuu3dLRF8usvIvMj+U9bWd 6CoepUNdldds1jpoYU/J/6OU87g4xbvJFRK1X2ghc8kq2Hc/IQrvZyY6N+qIP1Ra2R PdWNvJ0UIO5HYtnY9sbtAeuOPMJMMs9ZwrtdMoSE= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Date: Mon, 4 May 2020 12:28:10 +0200 From: Lukas Straub To: qemu-devel Subject: [PATCH v4 3/6] net/colo-compare.c: Fix deadlock in compare_chr_send Message-ID: <5536749ec95380f18c01789c472324565c060bcc.1588587700.git.lukasstraub2@web.de> In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/.j_gjlSPYMc8g_kvVZYLVCY"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Provags-ID: V03:K1:NlXKKDz8hngzwKRJNkEUlNM/NZFX7BE3kiNmaQYTlJ4bbgj2e+P enuR0v6W5Qjos9HVyFit0kFDWdiDLzVzmCgw5kjvRjBj7w77C+R87E0Q7Tjet8CQuGtJpX6 2mCqz2ACnETt4sgOe2o5Re5wb3gDF2+ccIcN4Cao3mvhKbPZokWjSuVSvZ2dbn33yqdDxh3 CIXdoFmBL+jw6tdW3UzBw== X-UI-Out-Filterresults: notjunk:1;V03:K0:07NyK+BJOKY=:SK5VV60Il9Nqs5IIEVKkbI 9HZfC23pfQ1xyGki2bR8TaeqSk2DZ7RGMluarkjRuJUgh/oZnqdbKgCl2hwXaLs++2qsKvOG+ hDbR5t1+xp9qHFRmlssNIPyp014ReQKFtwlZMk0P/DPgruOWwwuQqbu2FBcJR15+4PPmvLBTp yQ2KLBJY7Y2fqRIEJRtAP2zVJD6SdELCsZT67GNhHFSS+TbQg8ULOVReABTyb4PLbiJPaV81K TAJnZCgOWleGcq5+mJCZBBnq2xIELls273l3HhlpP4IiKXq73kc8wVusBAmnYJeesiUqkayIo EQlIG5PWM0+RBVhPoWX16Hn8u/6JQHXbUsvHJd5YHqBLE90waZc55kTVHjB3ZgmoCF9hkrwGp Ij8sEPuP2Jl3QcuxyKFdEP7+kKOJylhdRLsYnuqn0DBAQhZ+60T7Ur/9f1RSySrpz5ExKXUx+ Adnx6kjvUAbQUI5NJhDJCF9f1v52rVnt5UM852aCpJvHsLAUEtmLmu7jZs4bQdwCuBQCY4mhW o9UMRExRTa8dJARviUSGEwnphwKDfaWCasnifnsu3u0fBx9tnJkQwLGmzduMsRMvgHHPmGEmW 9VDMtvnO/+Qb8Nh1wINOF4Uo2wIlP7CYUQtbaMwMCrKXj7EAudJa7J2u+1dpXeVaVgEgY6QX+ YoRsCPb1IWsY018noythT28c48dYeTchxYqSCm56t9u1pCi+FLE/AhPS3jw3psF29JqiL8hZE /kggTlHa3y6A5AXUIMHJM2eFNEz5s/FaiILqytS5VWUb50xJrxy6KxMYlsoXxc1VfKCzVw8ul CmR9wthSwMhq+UEKTCL9Y4bTFcQFimxtFz4rWks3tpHaLcPrPgv0VqHZG5AjrnYyQtySUoQ4c SAnSWxD0UJLMXapxkdMbOYPDltyuD5JUrqbnc6YiuTm+i+Sox6WN8LcPVkfyLy6TqEXeNzsz4 Fz8fDXN0L8FCpyiY/X2Z9s2N7uUTqq06noqSOziCnjxCQfJyjWZeCEFphTSKnPO5sA1lMuuyH DUJGYIIG8Q2ldbK/f8fJzBNIW5ltRGnGjh2Z2tEojJkuW99PkKRsKhbZDad6XGJe2Qvk7Jv5U NRpggpuQOi6CY/x3L3f6jdXk4nfKpsWFmwZ1RjJa6y5bPQdgU7eOlBFosGGCfB0727Ve80YIQ E3XBNNhjCdZaYdxNew48OSq+Wf/gUlsANRzxy6lPMy8RPfJqO4NOodyam4BNZ5Bosh6/JHJuC GLaLzw/p/s/MVlLFp Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.14; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/04 06:28:21 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Zhang Chen , Jason Wang , Paolo Bonzini , Li Zhijian , =?UTF-8?B?TWFyYy1BbmRyw6k=?= Lureau Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: fail (Header signature does not verify) --Sig_/.j_gjlSPYMc8g_kvVZYLVCY Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The chr_out chardev is connected to a filter-redirector running in the main loop. qemu_chr_fe_write_all might block here in compare_chr_send if the (socket-)buffer is full. If another filter-redirector in the main loop want's to send data to chr_pri_in it might also block if the buffer is full. This leads to a deadlock because both event loops get blocked. Fix this by converting compare_chr_send to a coroutine and putting the packets in a send queue. Signed-off-by: Lukas Straub Reviewed-by: Zhang Chen Tested-by: Zhang Chen --- net/colo-compare.c | 187 ++++++++++++++++++++++++++++++++++----------- net/colo.c | 7 ++ net/colo.h | 1 + 3 files changed, 150 insertions(+), 45 deletions(-) diff --git a/net/colo-compare.c b/net/colo-compare.c index 1de4220fe2..2a4e7f7c4e 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -32,6 +32,9 @@ #include "migration/migration.h" #include "util.h" =20 +#include "block/aio-wait.h" +#include "qemu/coroutine.h" + #define TYPE_COLO_COMPARE "colo-compare" #define COLO_COMPARE(obj) \ OBJECT_CHECK(CompareState, (obj), TYPE_COLO_COMPARE) @@ -77,6 +80,23 @@ static int event_unhandled_count; * |packet | |packet + |packet | |packet + * +--------+ +--------+ +--------+ +--------+ */ + +typedef struct SendCo { + Coroutine *co; + struct CompareState *s; + CharBackend *chr; + GQueue send_list; + bool notify_remote_frame; + bool done; + int ret; +} SendCo; + +typedef struct SendEntry { + uint32_t size; + uint32_t vnet_hdr_len; + uint8_t *buf; +} SendEntry; + typedef struct CompareState { Object parent; =20 @@ -91,6 +111,8 @@ typedef struct CompareState { SocketReadState pri_rs; SocketReadState sec_rs; SocketReadState notify_rs; + SendCo out_sendco; + SendCo notify_sendco; bool vnet_hdr; uint32_t compare_timeout; uint32_t expired_scan_cycle; @@ -124,10 +146,11 @@ enum { =20 =20 static int compare_chr_send(CompareState *s, - const uint8_t *buf, + uint8_t *buf, uint32_t size, uint32_t vnet_hdr_len, - bool notify_remote_frame); + bool notify_remote_frame, + bool zero_copy); =20 static bool packet_matches_str(const char *str, const uint8_t *buf, @@ -145,7 +168,7 @@ static void notify_remote_frame(CompareState *s) char msg[] =3D "DO_CHECKPOINT"; int ret =3D 0; =20 - ret =3D compare_chr_send(s, (uint8_t *)msg, strlen(msg), 0, true); + ret =3D compare_chr_send(s, (uint8_t *)msg, strlen(msg), 0, true, fals= e); if (ret < 0) { error_report("Notify Xen COLO-frame failed"); } @@ -272,12 +295,13 @@ static void colo_release_primary_pkt(CompareState *s,= Packet *pkt) pkt->data, pkt->size, pkt->vnet_hdr_len, - false); + false, + true); if (ret < 0) { error_report("colo send primary packet failed"); } trace_colo_compare_main("packet same and release packet"); - packet_destroy(pkt, NULL); + packet_destroy_partial(pkt, NULL); } =20 /* @@ -699,65 +723,115 @@ static void colo_compare_connection(void *opaque, vo= id *user_data) } } =20 -static int compare_chr_send(CompareState *s, - const uint8_t *buf, - uint32_t size, - uint32_t vnet_hdr_len, - bool notify_remote_frame) +static void coroutine_fn _compare_chr_send(void *opaque) { + SendCo *sendco =3D opaque; + CompareState *s =3D sendco->s; int ret =3D 0; - uint32_t len =3D htonl(size); =20 - if (!size) { - return 0; - } + while (!g_queue_is_empty(&sendco->send_list)) { + SendEntry *entry =3D g_queue_pop_tail(&sendco->send_list); + uint32_t len =3D htonl(entry->size); =20 - if (notify_remote_frame) { - ret =3D qemu_chr_fe_write_all(&s->chr_notify_dev, - (uint8_t *)&len, - sizeof(len)); - } else { - ret =3D qemu_chr_fe_write_all(&s->chr_out, (uint8_t *)&len, sizeof= (len)); - } + ret =3D qemu_chr_fe_write_all(sendco->chr, (uint8_t *)&len, sizeof= (len)); =20 - if (ret !=3D sizeof(len)) { - goto err; - } + if (ret !=3D sizeof(len)) { + g_free(entry->buf); + g_slice_free(SendEntry, entry); + goto err; + } =20 - if (s->vnet_hdr) { - /* - * We send vnet header len make other module(like filter-redirecto= r) - * know how to parse net packet correctly. - */ - len =3D htonl(vnet_hdr_len); + if (!sendco->notify_remote_frame && s->vnet_hdr) { + /* + * We send vnet header len make other module(like filter-redir= ector) + * know how to parse net packet correctly. + */ + len =3D htonl(entry->vnet_hdr_len); =20 - if (!notify_remote_frame) { - ret =3D qemu_chr_fe_write_all(&s->chr_out, + ret =3D qemu_chr_fe_write_all(sendco->chr, (uint8_t *)&len, sizeof(len)); + + if (ret !=3D sizeof(len)) { + g_free(entry->buf); + g_slice_free(SendEntry, entry); + goto err; + } } =20 - if (ret !=3D sizeof(len)) { + ret =3D qemu_chr_fe_write_all(sendco->chr, + (uint8_t *)entry->buf, + entry->size); + + if (ret !=3D entry->size) { + g_free(entry->buf); + g_slice_free(SendEntry, entry); goto err; } + + g_free(entry->buf); + g_slice_free(SendEntry, entry); } =20 + sendco->ret =3D 0; + goto out; + +err: + while (!g_queue_is_empty(&sendco->send_list)) { + SendEntry *entry =3D g_queue_pop_tail(&sendco->send_list); + g_free(entry->buf); + g_slice_free(SendEntry, entry); + } + sendco->ret =3D ret < 0 ? ret : -EIO; +out: + sendco->co =3D NULL; + sendco->done =3D true; + aio_wait_kick(); +} + +static int compare_chr_send(CompareState *s, + uint8_t *buf, + uint32_t size, + uint32_t vnet_hdr_len, + bool notify_remote_frame, + bool zero_copy) +{ + SendCo *sendco; + SendEntry *entry; + if (notify_remote_frame) { - ret =3D qemu_chr_fe_write_all(&s->chr_notify_dev, - (uint8_t *)buf, - size); + sendco =3D &s->notify_sendco; } else { - ret =3D qemu_chr_fe_write_all(&s->chr_out, (uint8_t *)buf, size); + sendco =3D &s->out_sendco; } =20 - if (ret !=3D size) { - goto err; + if (!size) { + return 0; } =20 - return 0; + entry =3D g_slice_new(SendEntry); + entry->size =3D size; + entry->vnet_hdr_len =3D vnet_hdr_len; + if (zero_copy) { + entry->buf =3D buf; + } else { + entry->buf =3D g_malloc(size); + memcpy(entry->buf, buf, size); + } + g_queue_push_head(&sendco->send_list, entry); + + if (sendco->done) { + sendco->co =3D qemu_coroutine_create(_compare_chr_send, sendco); + sendco->done =3D false; + qemu_coroutine_enter(sendco->co); + if (sendco->done) { + /* report early errors */ + return sendco->ret; + } + } =20 -err: - return ret < 0 ? ret : -EIO; + /* assume success */ + return 0; } =20 static int compare_chr_can_read(void *opaque) @@ -1063,6 +1137,7 @@ static void compare_pri_rs_finalize(SocketReadState *= pri_rs) pri_rs->buf, pri_rs->packet_len, pri_rs->vnet_hdr_len, + false, false); } else { /* compare packet in the specified connection */ @@ -1093,7 +1168,7 @@ static void compare_notify_rs_finalize(SocketReadStat= e *notify_rs) if (packet_matches_str("COLO_USERSPACE_PROXY_INIT", notify_rs->buf, notify_rs->packet_len)) { - ret =3D compare_chr_send(s, (uint8_t *)msg, strlen(msg), 0, true); + ret =3D compare_chr_send(s, (uint8_t *)msg, strlen(msg), 0, true, = false); if (ret < 0) { error_report("Notify Xen COLO-frame INIT failed"); } @@ -1199,6 +1274,18 @@ static void colo_compare_complete(UserCreatable *uc,= Error **errp) =20 QTAILQ_INSERT_TAIL(&net_compares, s, next); =20 + s->out_sendco.s =3D s; + s->out_sendco.chr =3D &s->chr_out; + s->out_sendco.notify_remote_frame =3D false; + s->out_sendco.done =3D true; + g_queue_init(&s->out_sendco.send_list); + + s->notify_sendco.s =3D s; + s->notify_sendco.chr =3D &s->chr_notify_dev; + s->notify_sendco.notify_remote_frame =3D true; + s->notify_sendco.done =3D true; + g_queue_init(&s->notify_sendco.send_list); + g_queue_init(&s->conn_list); =20 qemu_mutex_init(&event_mtx); @@ -1225,8 +1312,9 @@ static void colo_flush_packets(void *opaque, void *us= er_data) pkt->data, pkt->size, pkt->vnet_hdr_len, - false); - packet_destroy(pkt, NULL); + false, + true); + packet_destroy_partial(pkt, NULL); } while (!g_queue_is_empty(&conn->secondary_list)) { pkt =3D g_queue_pop_head(&conn->secondary_list); @@ -1301,10 +1389,19 @@ static void colo_compare_finalize(Object *obj) } } =20 + AioContext *ctx =3D iothread_get_aio_context(s->iothread); + aio_context_acquire(ctx); + AIO_WAIT_WHILE(ctx, !s->out_sendco.done); + AIO_WAIT_WHILE(ctx, !s->notify_sendco.done); + aio_context_release(ctx); + /* Release all unhandled packets after compare thead exited */ g_queue_foreach(&s->conn_list, colo_flush_packets, s); + AIO_WAIT_WHILE(NULL, !s->out_sendco.done); =20 g_queue_clear(&s->conn_list); + g_queue_clear(&s->out_sendco.send_list); + g_queue_clear(&s->notify_sendco.send_list); =20 if (s->connection_track_table) { g_hash_table_destroy(s->connection_track_table); diff --git a/net/colo.c b/net/colo.c index 8196b35837..a6c66d829a 100644 --- a/net/colo.c +++ b/net/colo.c @@ -185,6 +185,13 @@ void packet_destroy(void *opaque, void *user_data) g_slice_free(Packet, pkt); } =20 +void packet_destroy_partial(void *opaque, void *user_data) +{ + Packet *pkt =3D opaque; + + g_slice_free(Packet, pkt); +} + /* * Clear hashtable, stop this hash growing really huge */ diff --git a/net/colo.h b/net/colo.h index 679314b1ca..573ab91785 100644 --- a/net/colo.h +++ b/net/colo.h @@ -102,5 +102,6 @@ bool connection_has_tracked(GHashTable *connection_trac= k_table, void connection_hashtable_reset(GHashTable *connection_track_table); Packet *packet_new(const void *data, int size, int vnet_hdr_len); void packet_destroy(void *opaque, void *user_data); +void packet_destroy_partial(void *opaque, void *user_data); =20 #endif /* NET_COLO_H */ --=20 2.20.1 --Sig_/.j_gjlSPYMc8g_kvVZYLVCY Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEg/qxWKDZuPtyYo+kNasLKJxdslgFAl6v7joACgkQNasLKJxd slj1cRAAnZNyEYtDGa3k+hOirICBChnbqZmqRl4qH8Xle4KeGSPjcmqO26489fyb vs54noE3b3y42JANh7wNJRW+yL6iF6FBdhsVObKRbeiPiF8nmOxbRL1Mt/9u9lOQ ZZMEMedfsrGMv3QItImFZIj0mbBHsKz8WPU//ps7QS309xvpWslrJcq1A9ZiQm4o Mzkm9MG2mZeoFDXviuG0ZnhDkv/UyRQ8s6qqNh/bJbRJYRdFFrRm7t5WJ/gyOhTb XB86UHC5dyvLm/GiG0B0NZppbrLB7Ms8Qwd6zH4o5bRchCTB5DYMi5+CD1ze0Vbg JuaTW6xJJqmwl5wxwGdM3MiMnbD2iQshM0K+SJTzCXwqHhufg2S1lMwrv2BUIw6E MXXeLQylFUYE6nL1N5rUD56BzeMjVpIIYGQv0iELp3y3xwfeNcaW/VRIiXw5VA0l /3v2iqF+qWjV+e7Q2jiACO3bikmNlaiTemDPH5reincFb6Gs43M81p6dVNZ1RMa5 OBfOa1UgZjTjiib5k3QwZM4dHoav5Saurlm/6ppE/zZSJ3bzTlXGwwXcHHmzAUNE undLbyJem+1mo3YuAUAul6gPXD6C3LZ5YAqMF61Wryc3bSKNNs6fOJqfGJ3h20G0 YRpJwV2HdZTCONFfQVbRYOgkhLdhygTPV9kNprWGRtJfgXpSFKE= =ep3S -----END PGP SIGNATURE----- --Sig_/.j_gjlSPYMc8g_kvVZYLVCY-- From nobody Sat May 18 05:53:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1588589496; cv=none; d=zohomail.com; s=zohoarc; b=JmmbMBXqsvQhyM4si0rd2xfieP35Vi56nR68R61vDZ7CPF55PhMA5rBmiD9Dd6ti4vJjAPsEYXd88M6cuErOt+q5VjZexY6lA6boLdEOUcQoBJMRmJj9ftvSfi5iEinzE7coGQw5/Tr+XCdq/5+wFL2OOmL93IfO0cDpjlSFPxQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588589496; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Q3CE0tXZt5j7JCd/HXUaEEFGcKNJAztEATUvAgSH9o0=; b=ccsTIcMolHfig9xfGpIil9ikIGBFAgMkZgKi5nGRA1Q0fqTmydT20GWXp52rgafAoronPK6cA7p21AohJJyjJWrdD3PVk+nYhCL5KjeOMewlhGmcd2bfeQspGras6qw6ALI8H5NOkf8aP5G+JCu8ZY4BAuA2sPJ29tuFanzLLY0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588589496934249.44017944782388; Mon, 4 May 2020 03:51:36 -0700 (PDT) Received: from localhost ([::1]:52788 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jVYhD-00057V-4L for importer@patchew.org; Mon, 04 May 2020 06:51:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41316) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jVYKt-0007IB-L1 for qemu-devel@nongnu.org; Mon, 04 May 2020 06:28:31 -0400 Received: from mout.web.de ([212.227.17.11]:54321) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jVYKs-0002X7-Pt for qemu-devel@nongnu.org; Mon, 04 May 2020 06:28:31 -0400 Received: from luklap ([87.123.206.27]) by smtp.web.de (mrweb101 [213.165.67.124]) with ESMTPSA (Nemesis) id 0M25FH-1jAiKC0rf9-00u5w2; Mon, 04 May 2020 12:28:15 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1588588095; bh=Wy1r8kXVFQEJD4feg9AKnhcEY54oyF5+k98OBFiC6Js=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=KsUAtStR7Heztved51D7oS4i0+LVCSCdpmq3fsvkki7/O0a7dLPNdRtdTKGezbzSh snNLeIqceAMxwEZiSnHvAMMUnqcZamTuiNJajEu14aDM60AhwqqH/aPm53IK0YGL0T IW08y9Xd/kTbiAbLldeADPMxF0py/lhAvCjHg9vw= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Date: Mon, 4 May 2020 12:28:14 +0200 From: Lukas Straub To: qemu-devel Subject: [PATCH v4 4/6] net/colo-compare.c: Only hexdump packets if tracing is enabled Message-ID: <8a940c893b26ec19d741d2efe929b85df559d850.1588587700.git.lukasstraub2@web.de> In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_//Qvfqfq1Fx.LzDNMryf_ydZ"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Provags-ID: V03:K1:844YZtcyHbd/8rlSWnpMwk+baWA1JwxJd7vG9+vZtdeD38ey620 7FwYDNNpqmpXqTNeCZlUXRoCBnwQXMh+/VLKykODvuLjl3zt4ueQLtAWjw7+jJQJ+7ne/4l tK5qWuZhUl1TrCGKZRUq4VEvUjEdST6RFhdfl2/LuLuZJz6VZuksD7/K9SG2dLEG5o8GjcQ 1cwGHriEf/CzFiPg35jjQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:3oxcVJG3SDM=:ZKx5DcNrDrqmbDzGi4aH/c cFXHuFPLm0oSKR/lnHm1kJuTOPr+VCOkw1BCTazY8ghasejfWdp01BqkzhFS2hyVQK5GPgu+p 7k9mUVPsvRak6p39KlGRzT2uidcAfzlcHs0C6yfuvbHW2OFn596W7fnBB2XKbd7s6jvjHNSYF s2OBz3UEuwA1SawNLjbLAmidX1M4yg1L6smLT/ja3h82c8Zdk6STWAMdcjKkKzdfj+eLQnSm4 h6re2TeeApyc54po/GsehPjD0svlDfzFngTWkX3cW+PLC2JThvtayLyFefSNyalMnr5Ducp8Y +uc/4UZm9lMjKY1yttzZitz95aESV96hwHoV4kINfxeOmr2LiuEWlVyJMf34MUOA2o10kPVdq 7YNJsI64o37aUNqQSu9Buc2KXBUnpyuHM8NsvEbaj8QNWNwFPnoBdWhgrdIxLmb7jW3NXrc/A Ime0gjhLCUQlh3LIxNzo+jZzBebcvqwQm02FrgocToe3gjHw7/oBe2e8/z9jMRvjJZEsKuHMU NY4U4UWc8kDGFfguvgvwTv4Rje1qROeS/ftKKdO07bO/NMV+wcvp/08jQFguULytjvCfBN0fA 4Rr4Kzf4aFfybllDkX03KbP1KiQ0rsBQcbuX7lPgjptx3mV0s3G5boCSWs57bgJ9nCUvukAJr 4z/6POlnE90wwM5SOk9c885/SHnwF4hqCCHeAATOO/Wdihw2+zpwY3j6TNkndTtWLsO2ptBIg /rF506MHrPocq0kJLtW2KIOqyYxTfxiPnGsMZGHxqhamZD4fFjieefaBSudyIHX3VYEKIcx9m FCrYA5oo3X+A10A4iE18m7+8Z2PaLbrty69941S7v2biRigyjjGQtF4DXiJrFRqlMcbhJ6/6i S7K+3dNPm3kKLuaalrYknL5IyV+WBc12emKBkgINzXwBv7mVTYCEgDiV2NkmEEjiRfPJdTieW /ecOT2oLcYzedCIaS71lu1sUEE3P+6we0Fy0hjf8pqVIkz/7rBBvVT331c7LLFJxJWm/otQPB sq/oInFVsOkTosodqvICNgF6SmCudfVmFgE4u0QvTpotgrTaRmSh4nzUfzrVRJGGnF2qvAIjW M44DPs1sU0ZRzjZlynln3H0gtBKIXAbcdcyOKXOVk+Rp74cjkT2hYzxzNSeHzGBaa8a6aFRYl e3e7zicy/ZIIQbr517bf1sTVk8Q0nwYSwfEOBvnWBNd14A5h8Cx/YYT9THR0eJN9rsZokQ2u1 tG6J28TPSe4sKrdIZ Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/04 06:28:29 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Zhang Chen , Jason Wang , Paolo Bonzini , Li Zhijian , =?UTF-8?B?TWFyYy1BbmRyw6k=?= Lureau Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: fail (Header signature does not verify) --Sig_//Qvfqfq1Fx.LzDNMryf_ydZ Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Else the log will be flooded if there is a lot of network traffic. Signed-off-by: Lukas Straub Reviewed-by: Zhang Chen Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 --- net/colo-compare.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/net/colo-compare.c b/net/colo-compare.c index 2a4e7f7c4e..56db3d3bfc 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -483,10 +483,12 @@ sec: g_queue_push_head(&conn->primary_list, ppkt); g_queue_push_head(&conn->secondary_list, spkt); =20 - qemu_hexdump((char *)ppkt->data, stderr, - "colo-compare ppkt", ppkt->size); - qemu_hexdump((char *)spkt->data, stderr, - "colo-compare spkt", spkt->size); + if (trace_event_get_state_backends(TRACE_COLO_COMPARE_MISCOMPARE))= { + qemu_hexdump((char *)ppkt->data, stderr, + "colo-compare ppkt", ppkt->size); + qemu_hexdump((char *)spkt->data, stderr, + "colo-compare spkt", spkt->size); + } =20 colo_compare_inconsistency_notify(s); } --=20 2.20.1 --Sig_//Qvfqfq1Fx.LzDNMryf_ydZ Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEg/qxWKDZuPtyYo+kNasLKJxdslgFAl6v7j4ACgkQNasLKJxd sljOWg//aVeBiX99IhSqslQajyP2VO8odorq9lmVbX893KZ369KF0q/2pgjK4DDc JowiEsDiM5PEzHueq97ai221rxFM6AvhrqmOdYFovrezx5DSSTKLIv+6mXvZ594S hWBZ20DuCNf3DAQ/zwVB4h3R2ObmCav2Co4qQZgYwYo3jyhXvOHi7XM1Pz3FF97C 5dfUJu0qsF25RBEzl/1uwmIGX1nwuRPacFcZV1hTBwQAicNtz5qiTP7e4IUZ88CN NSOvxWPpgMy4QS1kG9EhdjmZxX2fAwmQ756EZBp84pnqhnj4Iu66ctftyS0iouxW ZE5EN2VSm8iXDhd/v8DCDffWgaXJi9/jraPgThwFIzbKYH6jA7UmX1EYf2SckjwO th0Jjy5lLvlF6PkkD/+ZemgFlrnraAJ5Cg2i0IpOkv1qlBiMh2x+MhH6uvLmLOy0 a2cB5zEoyP99i5PBKJPWlipqQ9cB5WUin5cJGfBYJuFzwspsbFjNzY1cDp/4yCj5 XWFB1TiWpKax9p7blbOidPC3sNubWdxQ4+iVhls5WpDPbUY+QHNnfzUJ5QZOdaJR yhJJB7qzxBGsK0XDDqVGmfjhZ/JFk0C5ZTl+XDlnw2hu0EQUEZRDkYX7AETDoqLX uIMhJfrbtkTVZ5ytfqXT+p3GX32EbPN3FemevuX7tSTvtz09ceU= =LRQr -----END PGP SIGNATURE----- --Sig_//Qvfqfq1Fx.LzDNMryf_ydZ-- From nobody Sat May 18 05:53:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1588589088; cv=none; d=zohomail.com; s=zohoarc; b=NB3GMrf3F2z2qraB0PFVVwhJpUOfr3TBHuxK1NR6jQvZ7YubeigJdreq+Pj4dsh3sBrktKssZjoZ1UA1T+i7yqrr75+jdEDo+6RXWoePraYOMNwQOmkjXmaQyH29sK9ANNQg88jdM7v7RuMuMaeGxnP/5IydurS8wsfk2i6Me7Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588589088; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=BcxU2hTdND4Ma6gti7tgej5rNWkYQ6F33SvntYgVgFY=; b=aY1x73ZdrrgKw8M0IXRoYJXuu6DRM9m5/frv8oFCtWJUpeDz5Zpu/IIOW6hG+SRPSVabMZvkkQKoQqWPNJY+ka5y2gMIgdBdBknqp+dCMKyEUfz4RUJ1nMp3WwQ1Fbz396gaWTQF3NfuHNbuOJ867n/9ViUw7QSseGdzYI1cBVM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1588589088109848.6531108020014; Mon, 4 May 2020 03:44:48 -0700 (PDT) Received: from localhost ([::1]:41656 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jVYac-0008EG-EH for importer@patchew.org; Mon, 04 May 2020 06:44:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41314) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jVYKt-0007I8-Gx for qemu-devel@nongnu.org; Mon, 04 May 2020 06:28:31 -0400 Received: from mout.web.de ([212.227.15.3]:51939) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jVYKs-0002X5-Go for qemu-devel@nongnu.org; Mon, 04 May 2020 06:28:31 -0400 Received: from luklap ([87.123.206.27]) by smtp.web.de (mrweb003 [213.165.67.108]) with ESMTPSA (Nemesis) id 0LnS3i-1iwlor2SHW-00hgB5; Mon, 04 May 2020 12:28:19 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1588588099; bh=A7ojLWn10Hrpm+MPOTgTEQeuCwTcirRJrsoWi+s+fb4=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=WCrzG1z9slB1jqq7zy3XrRs9gOl6UPfNXXFugvn3J7l1KLhNOJ3UOVeEMx4sdO/fS sVL3IjdqvE2EbKGQCUeD503yFjHufMA3bODyNIKWXyJ55R5m5HmpWhi790ob/pqyyn 3uanN/ItOUTsTCHiWNgtOhqNBlwrOuZTRQFFqWI0= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Date: Mon, 4 May 2020 12:28:17 +0200 From: Lukas Straub To: qemu-devel Subject: [PATCH v4 5/6] net/colo-compare.c, softmmu/vl.c: Check that colo-compare is active Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/pMkx1WRJZ_dYznR/h6v_uZm"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Provags-ID: V03:K1:jTM2WAIulLNVOo40uROClZA04O16ay2zQ8BjQ30GDXNwM95yCk7 1LDK6GCe879q7NPD/pNiFziNOXKk0uc+sezd294oDYGchJNeaTSTSPKAPJm4ocU1aJIDph6 OPsQ5EZaAU9nvOUNHBCP6Dy2kCurgnSBCBJrjTVYP0t30zbDq8rnxLMsAOZ5hqfdNikUZXk CZgqtOf6+CzgBXUdboAmQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:SID8jsBaW+8=:xKvzcXKOlNTO0U8Db43fEJ Ndugb3QbBWsXgfVAGow5C9ibTVEYkgvNw+q+BZQrJP3cf8Df+JZBqEf+57Baggn85IsMbjPHv 6v/K0nK88XGDzB3m5vjq2XVst5HeIdEvbeF8hZuzrToXFKICxal12uj2O0pkN7aYenJ2ev2be gWtsc5ir774LxKmXiY7WhEzApoCpgyvppaihrQ9yEEYqH+w48OgR8Devgdj5fDa6CL2VF7sl0 SvglBWTisqRPQrP5R91cCjqv4icssEQn+3XQPLsdbD3CyAiHSTC1+URUmxAZwEo+qacVIjiBX 0Rnt8iu50H+xCFpcaN2J4NqDYUBtJWa0hYZLBsaEPS/4HoDASEbIIVS5XtmGal0zl7x/Gcbpm kXgIjR6B3nnk1LKjVvp69Qq/NaBNCRGlzfGuGGQ7Py9aUakJsIIj+9qANAXWykAWRKjyqoI52 pVntXJG2DFHWtNNin3xMvvUrIZ6lw49tSfMx6TSPQCBzOirSD/9sW6tolO4dfEWff32Xhkz7k KFPpMvIDq9mVErm/2X8hbggIqdGdbqsx8UPePvJhDoJE0JH1EvVrwUXTkInVaig7DjuxpYTpg 5HTD77elSevr8oQPDLTncKdZjyrHk61DnVJl8mdquaTt7rpZfq4r8Ai1E1DaU4gRhizhZFZQ+ C0VryJQNEqH7MampSj38DWneHbAO6uGPkjgHqhQZ1EHMeM76MiQTHxV0hV/Xwgu0vB3QBaUJG eL3cmovFD5tSQCSocEBQEcupLvgoLE+ryz2Xz08e05nywoXMUSr+yNUZ5STbxaEtjftiXXP2s vYa/dhpXwzqJSQEOMuR596o82E/cnWcEGT+5fpyNoxYzbSDYcHxJ4KfFTWzZ5ZUOMvKH/nT/E gBWWF9ESZzQ+2GxDQBGABjMntsmfNWwLIq+A1S9uU3R/ifdDN5FQU2Qmn+05C2GV7RklSB06t 0/1yWKb+f7rfL5udnDmpD8mBHls7dr1yiiknuQlu0WsZ3PAemu8z1oNJa0AMWJe3xUj9chznd ceS5k1y4VWwbRhlOos52H98sPz6AEnyirnB1IP4mOyWIh6mHBawkiLQFQXdlz41VB1tdK4gie Lj/zp+C2sptbtcRdUDEvXTdbZ8tMQnP+hb7HNrBoi815gHPHu0sL2CiNeYJ9JnJ1r7Vgj4KGU GlBHrvTDWBnwy07y5zhlLjDjnmtSdbHp3CxVMpO1Nf95ugN6QiHmEcTno+YA8H/y0/s3HTDw8 v8gxiq+5LwtgC9ZcH Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.15.3; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/04 06:28:29 X-ACL-Warn: Detected OS = Linux 3.11 and newer X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Zhang Chen , Jason Wang , Paolo Bonzini , Li Zhijian , =?UTF-8?B?TWFyYy1BbmRyw6k=?= Lureau Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: fail (Header signature does not verify) --Sig_/pMkx1WRJZ_dYznR/h6v_uZm Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" If the colo-compare object is removed before failover and a checkpoint happens, qemu crashes because it tries to lock the destroyed event_mtx in colo_notify_compares_event. Fix this by checking if everything is initialized by introducing a new variable colo_compare_active which is protected by a new mutex colo_compare_mutex. The new mutex also protects against concurrent access of the net_compares list and makes sure that colo_notify_compares_event isn't active while we destroy event_mtx and event_complete_cond. With this it also is again possible to use colo without colo-compare (periodic mode) and to use multiple colo-compare for multiple network interfaces. Signed-off-by: Lukas Straub --- net/colo-compare.c | 35 +++++++++++++++++++++++++++++------ net/colo-compare.h | 1 + softmmu/vl.c | 2 ++ 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/net/colo-compare.c b/net/colo-compare.c index 56db3d3bfc..c7572d75e9 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -54,6 +54,8 @@ static NotifierList colo_compare_notifiers =3D #define REGULAR_PACKET_CHECK_MS 3000 #define DEFAULT_TIME_OUT_MS 3000 =20 +static QemuMutex colo_compare_mutex; +static bool colo_compare_active; static QemuMutex event_mtx; static QemuCond event_complete_cond; static int event_unhandled_count; @@ -906,6 +908,12 @@ static void check_old_packet_regular(void *opaque) void colo_notify_compares_event(void *opaque, int event, Error **errp) { CompareState *s; + qemu_mutex_lock(&colo_compare_mutex); + + if (!colo_compare_active) { + qemu_mutex_unlock(&colo_compare_mutex); + return; + } =20 qemu_mutex_lock(&event_mtx); QTAILQ_FOREACH(s, &net_compares, next) { @@ -919,6 +927,7 @@ void colo_notify_compares_event(void *opaque, int event= , Error **errp) } =20 qemu_mutex_unlock(&event_mtx); + qemu_mutex_unlock(&colo_compare_mutex); } =20 static void colo_compare_timer_init(CompareState *s) @@ -1274,7 +1283,14 @@ static void colo_compare_complete(UserCreatable *uc,= Error **errp) s->vnet_hdr); } =20 + qemu_mutex_lock(&colo_compare_mutex); + if (!colo_compare_active) { + qemu_mutex_init(&event_mtx); + qemu_cond_init(&event_complete_cond); + colo_compare_active =3D true; + } QTAILQ_INSERT_TAIL(&net_compares, s, next); + qemu_mutex_unlock(&colo_compare_mutex); =20 s->out_sendco.s =3D s; s->out_sendco.chr =3D &s->chr_out; @@ -1290,9 +1306,6 @@ static void colo_compare_complete(UserCreatable *uc, = Error **errp) =20 g_queue_init(&s->conn_list); =20 - qemu_mutex_init(&event_mtx); - qemu_cond_init(&event_complete_cond); - s->connection_track_table =3D g_hash_table_new_full(connection_key_has= h, connection_key_equal, g_free, @@ -1384,12 +1397,19 @@ static void colo_compare_finalize(Object *obj) =20 qemu_bh_delete(s->event_bh); =20 + qemu_mutex_lock(&colo_compare_mutex); QTAILQ_FOREACH(tmp, &net_compares, next) { if (tmp =3D=3D s) { QTAILQ_REMOVE(&net_compares, s, next); break; } } + if (QTAILQ_EMPTY(&net_compares)) { + colo_compare_active =3D false; + qemu_mutex_destroy(&event_mtx); + qemu_cond_destroy(&event_complete_cond); + } + qemu_mutex_unlock(&colo_compare_mutex); =20 AioContext *ctx =3D iothread_get_aio_context(s->iothread); aio_context_acquire(ctx); @@ -1413,15 +1433,18 @@ static void colo_compare_finalize(Object *obj) object_unref(OBJECT(s->iothread)); } =20 - qemu_mutex_destroy(&event_mtx); - qemu_cond_destroy(&event_complete_cond); - g_free(s->pri_indev); g_free(s->sec_indev); g_free(s->outdev); g_free(s->notify_dev); } =20 +void colo_compare_init_globals(void) +{ + colo_compare_active =3D false; + qemu_mutex_init(&colo_compare_mutex); +} + static const TypeInfo colo_compare_info =3D { .name =3D TYPE_COLO_COMPARE, .parent =3D TYPE_OBJECT, diff --git a/net/colo-compare.h b/net/colo-compare.h index 22ddd512e2..eb483ac586 100644 --- a/net/colo-compare.h +++ b/net/colo-compare.h @@ -17,6 +17,7 @@ #ifndef QEMU_COLO_COMPARE_H #define QEMU_COLO_COMPARE_H =20 +void colo_compare_init_globals(void); void colo_notify_compares_event(void *opaque, int event, Error **errp); void colo_compare_register_notifier(Notifier *notify); void colo_compare_unregister_notifier(Notifier *notify); diff --git a/softmmu/vl.c b/softmmu/vl.c index 32c0047889..a913ed5469 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -112,6 +112,7 @@ #include "qapi/qmp/qerror.h" #include "sysemu/iothread.h" #include "qemu/guest-random.h" +#include "net/colo-compare.h" =20 #define MAX_VIRTIO_CONSOLES 1 =20 @@ -2906,6 +2907,7 @@ void qemu_init(int argc, char **argv, char **envp) precopy_infrastructure_init(); postcopy_infrastructure_init(); monitor_init_globals(); + colo_compare_init_globals(); =20 if (qcrypto_init(&err) < 0) { error_reportf_err(err, "cannot initialize crypto: "); --=20 2.20.1 --Sig_/pMkx1WRJZ_dYznR/h6v_uZm Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEg/qxWKDZuPtyYo+kNasLKJxdslgFAl6v7kEACgkQNasLKJxd sliwrRAAlOf+UpLhnXH/otpn21duRbhjM6YIU5pfWxYd+11XBjmRCMs/L43s3lZ0 wvbfgGPAZhGCdiSj6zxW9dVS+ZaZkbtJAKYqDmoMkVnW1UaG2SIu7c8VGbnkICXP Pg9eUC2DDzsAblQPsIZToxY/kloi2X1B806nqHNBaJLbRdq3EXmeaO7WacJZKWK8 vmzFaUfYEyZQC+tSW7bV8XLC+AHnLoJz6BE71ALLDTZ1G/BVbjYq2o8xKd6bdbkJ njVwKaACsOXtHArjiUU1gyVUwmpyGU7PeFHihIeYE9HfjWoMhW6MQjMB66tPWgfA lZpWz3lGTGKU57F5qmbccVXbyqLxTWq1Ubn4qVP1Im5ksDz4O6ARwCOLDs+pSvlW dcAqLk9MvSoXftdD+LNfou7QSJLFVakAUlUH7o8+jVvafy4yb3sdrtF2JTQjTn5N XTBmuZoG/jo+VODo2uf1uqN1cwFKS+WRgLmktXnOOQdPbxuYy8p85CRo1bTIXB13 aSvYEsbchRn7dUw2dcyobMMt73eTnrwZ/BTRQUYcuWuC5OhPzgqRMczGLf72bWRU ErNTq4yJgQMKTWHnPCUmmNU8FthC1PHwzOjYXAro6QC/SRr3SUN3Vvq6l7hSIQBB THrjmTGq5BaYjn7k4B2Ix3+QKOYmg5WjImd2uPJp8+XzTOQjKQs= =VzIN -----END PGP SIGNATURE----- --Sig_/pMkx1WRJZ_dYznR/h6v_uZm-- From nobody Sat May 18 05:53:17 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1588588374; cv=none; d=zohomail.com; s=zohoarc; b=SY63e+i/7lLyRgBqYJmoIEvl+x6etRzuK/dSTRKcqJdYn4d2Lfcl3++zizltiHwcttx2T+6vtX/xeJYZuV2gyqlybIq0IUFywQuzuz2isgU59v6evMehsXlvYqXm8qi5GTutbf0Ol8nQwWuM9gHYNjBiG4Kp9grErt6MxvkQuYE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1588588374; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5bGTWs0vYQ19ria9ea9MSA+Sa9dnry2tx2zklZ3gvYY=; b=IXZHniDcRmxCyEpUwBl4RCs8Ul3GRWz02Xhvv7MHJHxbgwVqYjFJPCcCGVr69TgpSsfdCiIKSsOClVgCAUREE/F8N6Pr8RGYxOivMa55LGMRBDUMwkNfVnOoDuJn0SsDxQzuGJA/mgPYCK4sUollQfUygJg30GevdmMixhaABTU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 15885883748552.775308885279287; Mon, 4 May 2020 03:32:54 -0700 (PDT) Received: from localhost ([::1]:53084 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jVYP7-0000NR-7Z for importer@patchew.org; Mon, 04 May 2020 06:32:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41322) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jVYKw-0007LX-NH for qemu-devel@nongnu.org; Mon, 04 May 2020 06:28:34 -0400 Received: from mout.web.de ([212.227.17.11]:59015) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jVYKv-0002XK-Ri for qemu-devel@nongnu.org; Mon, 04 May 2020 06:28:34 -0400 Received: from luklap ([87.123.206.27]) by smtp.web.de (mrweb103 [213.165.67.124]) with ESMTPSA (Nemesis) id 0LyDlZ-1j7x9W2lHh-015bAp; Mon, 04 May 2020 12:28:23 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1588588103; bh=1PEAmI4eLur62HeDyw8IJBHKMyNIrICq9UVOCcvqm7w=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=npxmX9eG13SYR2DYHFuFZ0d+FaTGB1NTTyxVn0qivcj000da/9h+P9TVrmRL/L+fW IEaVXELYIvDh4FoHtDP3rGY/20vmLEzPXr1LvB2ySjNaChHPB/6tVLuz7G1SyNGirL O+ytSgnmW6lVYniKkdW4PxKx76iEXPAvqK3ff78w= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Date: Mon, 4 May 2020 12:28:22 +0200 From: Lukas Straub To: qemu-devel Subject: [PATCH v4 6/6] net/colo-compare.c: Correct ordering in complete and finalize Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/3dCsORbj7GkSjgyXXBr8QnA"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Provags-ID: V03:K1:ZrIXpi9XWGB8rIde8YXIlnuIb1OKTFbnPcB4xx/M+8p8E65iyPA JN0QU17MEcb4mEF4MqFbXrs/ifY1aaBmyW74NdIhBboKQ3AmjmHRbjHatp0mkSxAL59sGqP Va6l3fZFGyUmzYvC/DsAu5frntfBiWz7s8fc0zO+NDL0/luIFCWvtUR90ycehuge1+P9jLM oirfo7gev78neZGf4Ru/w== X-UI-Out-Filterresults: notjunk:1;V03:K0:ohmuhy9nxWQ=:vsBQhhCpF1eNUpRgJvYio7 yy+zZT+VZRHhWYRa9bR6Y/7FkKGUh2J8mDMwWGdop6Qp677Iy1Z+2bhr8J28zHV+lCC6AU3iV vSDNUUz4Fdpdclpn3hsEM/Sj8ncwTB6z5cF3mBNY7N6h0fX7emBtw66Fla021n/nHWm78Z0lW o9ThFCrQWSmpBuHr2dvEH+vZNQ5D2E2ZR4w6+JowFezmdGFp8pF9iKuMjdT4N4TVXDPNF4eLo CIIiXUrz9gm51ZjyM1KsdycjN+62vxeIOa5dTv5sJOIkJB707t7o2ybMOxCAzjJYZT0ThenrQ T6dpqi7gKThFDm78u1zMF3P754WxRa9MHZb2rpMd78RmvMUFy4MGAKFY3oVLhDroClFsNr3dl ebLy95lhF0L7FEciDpDx+7ptzXgpstd9+B7rqoz2+oqOAnTIARkWVjBV0Lt/VYCi4uFaPqw15 6B4AKYBebQgPPKPXTCvVox4PK60HE8Y+0mDcE7UuK5pK0+n3E+JIaupDaWgigp6CLwffqoofZ erI5NvnhrzGWSAT7FVdVWu1DLE4IGhBaWf7/b46fXwwWc5uykh4mVrvulZTPGEWKxLiuRvvD9 oDIqzzDtJu+wVMijOfHjZdOIYq3Ky7siW2U7ESAVjUbjN+dk6wojOYG3eSdp1sQEOZIBsIqnF Ml8UIzW8k+fS3VfqcJEizV7ed+NOKEQfCiXtR8ccfJmsby3r7JOn5/hyS8f+TreXKfRznJ1LO 8QiwSbQuMGo7GybHSxx1l/5jG5VYqEL8Bbp/TpGkqN67S0V5gv7TaoeWlGtBrfOdckYmJ7O1A MlaKuphxYDfMsbmu4iUyvhaMRNYvRq8rvyYgHHhxgeH5cYqGx5lQS5EX6iFP/m16VHvl2eole 8C7HS503tk/sdAQ5Us+SoJdcSJBHMdj6xje9+/dvavz1Mhbn97K2cFjC/N6319MymZYzYU6M7 t3F9H/cXjMkNyA2fYmeW1wBIl9aAp0FBiJ/Pm5twxZ+kjIA3wKOS0JvhyJgc0NBCzvQGkNn5a z4H63zkf0xqW5Vo/yHNkyjNM4YsGCc8l/ahjaHFl8YXlzYYtJqSl/J5h2yAbL6W9uL23SVlKN GceOJQsFlg8Z2bX0DheBepxijtj2VVMWhJQ5j5JQkIqizlu5xW3P38YE7C/Frn3kDAkYuvhKj xg5Xx/hUKWBFT1RnOrmydYzpESX6+N2dCaI/XAqEtHMmHJcsnf4AeZJEwIhnXhm3OR/1p+VuB ItHvARU5gd+52qqAT Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=212.227.17.11; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/04 06:28:29 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Zhang Chen , Jason Wang , Paolo Bonzini , Li Zhijian , =?UTF-8?B?TWFyYy1BbmRyw6k=?= Lureau Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: fail (Header signature does not verify) --Sig_/3dCsORbj7GkSjgyXXBr8QnA Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" In colo_compare_complete, insert CompareState into net_compares only after everything has been initialized. In colo_compare_finalize, remove CompareState from net_compares before anything is deinitialized. Signed-off-by: Lukas Straub Reviewed-by: Zhang Chen --- net/colo-compare.c | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/net/colo-compare.c b/net/colo-compare.c index c7572d75e9..6f80bcece6 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -1283,15 +1283,6 @@ static void colo_compare_complete(UserCreatable *uc,= Error **errp) s->vnet_hdr); } =20 - qemu_mutex_lock(&colo_compare_mutex); - if (!colo_compare_active) { - qemu_mutex_init(&event_mtx); - qemu_cond_init(&event_complete_cond); - colo_compare_active =3D true; - } - QTAILQ_INSERT_TAIL(&net_compares, s, next); - qemu_mutex_unlock(&colo_compare_mutex); - s->out_sendco.s =3D s; s->out_sendco.chr =3D &s->chr_out; s->out_sendco.notify_remote_frame =3D false; @@ -1312,6 +1303,16 @@ static void colo_compare_complete(UserCreatable *uc,= Error **errp) connection_destroy); =20 colo_compare_iothread(s); + + qemu_mutex_lock(&colo_compare_mutex); + if (!colo_compare_active) { + qemu_mutex_init(&event_mtx); + qemu_cond_init(&event_complete_cond); + colo_compare_active =3D true; + } + QTAILQ_INSERT_TAIL(&net_compares, s, next); + qemu_mutex_unlock(&colo_compare_mutex); + return; } =20 @@ -1384,19 +1385,6 @@ static void colo_compare_finalize(Object *obj) CompareState *s =3D COLO_COMPARE(obj); CompareState *tmp =3D NULL; =20 - qemu_chr_fe_deinit(&s->chr_pri_in, false); - qemu_chr_fe_deinit(&s->chr_sec_in, false); - qemu_chr_fe_deinit(&s->chr_out, false); - if (s->notify_dev) { - qemu_chr_fe_deinit(&s->chr_notify_dev, false); - } - - if (s->iothread) { - colo_compare_timer_del(s); - } - - qemu_bh_delete(s->event_bh); - qemu_mutex_lock(&colo_compare_mutex); QTAILQ_FOREACH(tmp, &net_compares, next) { if (tmp =3D=3D s) { @@ -1411,6 +1399,19 @@ static void colo_compare_finalize(Object *obj) } qemu_mutex_unlock(&colo_compare_mutex); =20 + qemu_chr_fe_deinit(&s->chr_pri_in, false); + qemu_chr_fe_deinit(&s->chr_sec_in, false); + qemu_chr_fe_deinit(&s->chr_out, false); + if (s->notify_dev) { + qemu_chr_fe_deinit(&s->chr_notify_dev, false); + } + + if (s->iothread) { + colo_compare_timer_del(s); + } + + qemu_bh_delete(s->event_bh); + AioContext *ctx =3D iothread_get_aio_context(s->iothread); aio_context_acquire(ctx); AIO_WAIT_WHILE(ctx, !s->out_sendco.done); --=20 2.20.1 --Sig_/3dCsORbj7GkSjgyXXBr8QnA Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEg/qxWKDZuPtyYo+kNasLKJxdslgFAl6v7kYACgkQNasLKJxd slhmeg//cfpiGsggL6H+g2/2NB8kMh7/gKW/OjKr4804jMiRNUQbAKCmPLa5oGUD D1S9YigJeEn8dpwn4kNnzIj47JmdM1URcZm2MGLTaEvRl14xl9YA80C+x3Xge0T2 KjAXPQ7YajtVrD/J2g9u5khpD8PnWcLcPShAZUrKJrhm7uuoikBqohg6HLjGqo6U kVZRlTVwkHPSd7jZlhwmNjItbNXNtNiQfuMBhrydIaMtfUWY/OM2Ag6IWicGCvp4 0x29QrnPXfWqDFvoPtrHWJ47DohBLHoQfx4QTionAw2ai/VCUcc18U/tlJnFTSYO tDtY0xrmE3/daurnTKxyncLf2zZ8ijjIXee0DKiYpKGFLMr/E/SvGy+dxXqbXkjl iZBEwNvJLlndDpu9KURVr/ssqboNr2g4sAILGbhyR590QFuPB9cXXXJEt9B+Xmxk /gSNL+iwFzZNlDRcQyzzi+sC2HMukImuAkK5NQm+NOX5BXfTkHQoqjynGwnXxilI OLisWlzJ44YsJSF0Q4p6/n0udbzKd9jwycUz9LGDh2kRCGD3961FcZ2wJQcbkqRI 4q2i7MhLnURwuyeiNcMmZabf+1lGVQA3GevW4bUepZYJp0gfWG2joybouDwzrhWM OoSxDA/j+hDxErG0QBYGe56ucp3hwAhKIUQs3BiLoePUtuBeJyA= =3r7q -----END PGP SIGNATURE----- --Sig_/3dCsORbj7GkSjgyXXBr8QnA--