From nobody Thu Apr 25 21:36:34 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=1590130300; cv=none; d=zohomail.com; s=zohoarc; b=NVIwnbwubix9Hb4nK2I65+xfmbrS+olTumG6QP5q03qL8Z7fCOWx6j+W0pHxqhwbVT5rz1b4eMoLB1csP6Kf+e2QorRbq0VStgaoqP/dGaYlYoI4Tbd7CPHxCEXBqXhK3PiyJmpY1N8loEHaHUb7aPYYkdufbURbVsCgrkuNugk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590130300; 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=8khlZC/p+vjddBJLChbSE+R/gRWgaTgN3xFdm10GWL8=; b=JZVqv/MTNrj1LfQAB5Alwth8eIHOTu2froDr9OtHMJGsFrD+cpMj/7aKlOsHXtCNv+Gh4rkj4FgLIWiHfp4IoFSwcZYiX9BbAo9LlL0G4HHmQxx/w897nFm24jFZE+akjUnkQtFbJtu8PL5EYCHoxKj/Ixxan99bcb4iIx+RoUk= 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 1590130300235116.70691433233071; Thu, 21 May 2020 23:51:40 -0700 (PDT) Received: from localhost ([::1]:56838 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jc1Ws-0002QF-O0 for importer@patchew.org; Fri, 22 May 2020 02:51:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38258) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc1TF-0007RP-9q for qemu-devel@nongnu.org; Fri, 22 May 2020 02:47:53 -0400 Received: from mout.web.de ([212.227.17.12]:37377) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc1TC-00015j-A5 for qemu-devel@nongnu.org; Fri, 22 May 2020 02:47:53 -0400 Received: from luklap ([89.247.255.67]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1N0Icn-1inkV12ERb-00xFrV; Fri, 22 May 2020 08:47:32 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1590130052; bh=9du8DWISUXv/co/+RlUnUwDVAZYYzGQeRITtkUXSwE8=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=HaYq5IdI4rbTls14a/YlpFcFKYkMKYFLPsCHd3cloW4o1pv9lj1I6GSt80gaLde4i Eos4IsRM8tHqKAYNROOQX6mAnfZ3mbc30W3KWFfazyqzc3P4VGlry8aTjSgMp5WYlO dk2IsxFrlt9C3oXKZJCb5PwtOgomov+6CpYB4ze0= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Date: Fri, 22 May 2020 08:47:31 +0200 From: Lukas Straub To: qemu-devel Subject: [PATCH v6 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_/MO8b96LwUIXatbkxjnXy4Gi"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Provags-ID: V03:K1:qDyJRU4nEHuSmr9xphLzWwYzPfTutEdFx6aKnuafChtbu08FEQg 0ofvh+QdLshw+mYdZY0m+dSIWqDPoMBwHBNw8bzQ+qUBYqEodknTw04vdd7+sS9nPtS2GeO ZKsdtQAX0bXnrCwCBAdijCNsrxbtKVxqGWQpHXYL2JZHo4JqFaiJKipK+jJMT69DqKJRI2A uII9htBGojYZFji3rHx1Q== X-UI-Out-Filterresults: notjunk:1;V03:K0:XDbXcSwVikQ=:5BxO7ZtP/4w+FOICKTd2Pq Y0i8ThmLuEICBCCcybB9F8yk4N5wSUeoZXBHzvD+4L3ryRDi/I4R9jzgdGZYv4LfL9va4FQXh nph4Nd1UXt8Vf6Hd4miJVAjzQ7PXZMPt2rCDhtlH3PeaJO40mqZsdFUEsFJBLVpq+1YiMULoO WPHZN/4UZ71OeMUGdYUzpAnNniouOfUo+J7ab47X5XoeZyNcx3qZD8RQbK5gpgymFFFgWQzVu f7pOZkPdeifm3kZHpgAcBEHrjp0wFKdKE7jLGcDHICZOWmVDEmalhZBpKJfnu019cMbA0CGmA Octm5N+nvPZMLuPhE4wJ9xGAu1V7bqFD8KJDAgAg4X+WmqybRsby4QUhVrkgwkIA6XmPmlSTk I7XDdFKY5g8vVFi/FOY13Ht5ECmxBHyCmb1TvvwYUj1HCDWXVkDVeAd4MUXghmPzr7V3aBpVN zAOnUK2rsJjM6c52+2xb/57EjETXttg0IPKxHMJKW1P0Z5ZczmfBnwVw22d31F25T1+5q8TPs oDP7/ijqAb1pCssAa0XtHPPxK+Jcs+Dt8EpTdMGqSotIt65bxNb1y62nb9o+wpTGG/gJOhAFw ikR4QrO/zCMk+IRH6XSWjq7ce4IvDhIn2mJT5SqcyF3RnxkBQGS9w4Wx3fWvahEPpO3ZeOpBd ymYDugqQmVuqWd/xGNTgd1XvRHSp5kyooy7HS2ztZuzXJJ+X6QUvuc9Q8MoCEOjRq/Yi+6Iht JjAIf8UqBTmn6s0TvawVl/kj9gazegwga04ej2X8p2vUzbExRN/+T1ry6LYZjrWRvoK//rCBr KP9BwkfegB6D+vbe5c4A54a+n9LCbA+RbO9nXgbPDg8768GuR7gdm9/KzVcScqNU2H5cQIUme cv1WGFvCbtLxbG0BLwnpbPqw+JLZP5L5M1a7t/A2/K0bLET7BCbTuuS2RvHE2JpUlnuaZNqjl 0TKfKcg1iWT2S9rOGDY5grSEAAa4/jVH4JyXCT7xB0mrk8/7cojPbKpYAPGEJmK8zkuiVL7k4 fisXvjD8p5XBWiKtlz2AvudSlmmEJ/cOiVEpDD9lBmzf1tCFH9+z68aPzurZw7JFJcz1ysR1e +hTZELKpAuKEI6Qfsx9sUMzMiYYMJh7EE6Kucd0KekwoOveNtcJfWh51E4jI6qki/Xkfzwo9L RcFOu5WnOGImh8a1U3GPRHOf+v2DC0/uFS1Fu3AqfqR5u92vqrn+U57Wok1cPsFRopEOiaYHT Rcedh6xCkYloUdDpE 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.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/22 02:47:49 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 , 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_/MO8b96LwUIXatbkxjnXy4Gi 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) 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); @@ -906,7 +907,7 @@ static void colo_compare_iothread(CompareState *s) } 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); } static char *compare_get_pri_indev(Object *obj, Error **errp) -- 2.20.1 --Sig_/MO8b96LwUIXatbkxjnXy4Gi Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEg/qxWKDZuPtyYo+kNasLKJxdslgFAl7HdYMACgkQNasLKJxd sli+wA//UEVC3Y+QnihaSbM1m7xjVzkdQ91A58is+raoc13yXAlYmfmZB7RB4DLb BNpXurxciFs76Fe71/rJ/pwXMym+8AgWGENBU4FFdXxR2QrvujUhD/dHS0xeztt3 69bZVxRhihrbund3+PwfuH9jVBaybDp6JsN6315JGOXfm3iGLGy7Z4RULIHnXA1U CKI5eVvEAPC2/n5vrXHgwD3RInWb5ele+8hH5+FXRnpD+8fL0d8RLQdWOceAiap3 0J3LSUKP4fU/6ZQhEUz0My89ZIelR16cqwVA4Bd+D3ZMHkLBzGL2nCUYgZtyYIGi ByUr3VcxnYprdpOSxbf7zgNN1ZV3FuZBUnm/OJWscV7CvT+zUrq+YIpNb4r8eh7r CjHu4obkEnTg1EtppHd+vNlq2pTmW9qSq80OqRVUXbUDMMsnLTA0wPAseSkd3bDN 8CfQ2kzqfUcB5YcUjzmNqQSaqFqXAWSXvR/5rX2DGIr4+CBJq4/rwrX++8ubFS5m FKX5SVwIcOYR4Lq6P3qMH02bORhpWcHrtokruKcHgQrp+vrmMK+Il8vOPaMNQ7BA NuykObEI+Z9AaL/MRHcGhqbApyGKBI0GeJ5GeBUTdrPWznsGuCJxVBeTFfghOSh9 Pm5sqcmW5P3c8VCIWLt24mDKxQi1BXTxZjUKdnCgjp3Bm5Aw5xc= =rIU3 -----END PGP SIGNATURE----- --Sig_/MO8b96LwUIXatbkxjnXy4Gi-- From nobody Thu Apr 25 21:36:34 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=1590130591; cv=none; d=zohomail.com; s=zohoarc; b=X9247yi97fv9z/Utk4IVJAcQ8VkGg3qezBUrucLxYUaYSr3SJiYj6T4tuwgrSbiBEY2ZOUaOellTJt8D3Si0+SrcrBOEtmlPsbqaiGYb5EGcH8qqYcFFKxLhadv3fw5lfstYcfekVm/tiNsvxD6NhX50c8fiB0wcr4hhf6vvgVc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590130591; 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=/ywtp8G35ug2ZlFd5Wn/+HlYSl9M/FLR76ihqT/e/Ts=; b=Fe22J/8HyTO3ZJKKr/CtP2HEsC0AKU1+n7bMJM4zQa6xqiaMr2NWHawVhS/6hgjMDcEUCN+JOr4el9nXJD+MjrGQ6XkY1omjHVPlmqAbKE9/6wwk9fVKdkU+n7Kr3IlwGz9lqHSdfHqXaIM9BaffVjT38KhoED4c5QVPceS322w= 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 1590130591360745.667307913021; Thu, 21 May 2020 23:56:31 -0700 (PDT) Received: from localhost ([::1]:35758 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jc1bZ-0008CW-WD for importer@patchew.org; Fri, 22 May 2020 02:56:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38256) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc1TD-0007Qx-Re for qemu-devel@nongnu.org; Fri, 22 May 2020 02:47:51 -0400 Received: from mout.web.de ([212.227.15.4]:38647) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc1TC-00015i-DM for qemu-devel@nongnu.org; Fri, 22 May 2020 02:47:51 -0400 Received: from luklap ([89.247.255.67]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MiMAE-1j5gze0IYI-00fTl5; Fri, 22 May 2020 08:47:36 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1590130056; bh=CNbl5+1Uwmg7N2/0VF7Mxo+xS+N3Lz/h8u8/y0OTFF8=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=JR3HRrRbM5rXcwtk5qjKxitJytJzbMknHG7Ch8IpHRGhv4VrYIsnKpTi+kIibcAr6 TAwYxyjteQCINCoOzH/rcYkErJwYuj3q7k3t3m2AiXyfFpmwr3tdwE238Tj7ikIUZq 5GRy0jXAk6ZYtwb/V83/JqAkjIOUmwUJheMUPpvU= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Date: Fri, 22 May 2020 08:47:34 +0200 From: Lukas Straub To: qemu-devel Subject: [PATCH v6 2/6] chardev/char.c: Use qemu_co_sleep_ns if in coroutine Message-ID: <825997b334c98a48543df66ec3dd0caf670f6dc7.1590129793.git.lukasstraub2@web.de> In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/d7WVS_Kr.YJkCrNunMkQ2UF"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Provags-ID: V03:K1:CodRI4uaUsPjbwHWOr8hbiBqqyEvq5qA4z1yzoB0/ZUZ0AAa/A6 c0cIjAatQszOTtMS2JnNvZf3FHaICGn0ert+Ulw/8zljPFYENgTkQOKnzfG5dyFv9LOfiHD 2db8/O+Npz3YfQ55R6ZeoQkXHiCn8MQAnbMny2f5PvllMpiM8PmihjkNP1+4x+Zk6ZDN6fH LByvCaeBgZbk+cBLoJmNQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:0Rbm5mWd3qk=:XVYkUI9RpmOSnQLdLUxXuI RZCljwqOZTVjw80xaknR2Ka1dOflihQFoiVOYIELcNmb2wsL+HiODIxGuxpN4qxe6Skwp1cWp Uo16m2g1W5hgQTUT5A4sWv7MpQ9jTBxJvmq9u4waY/kTLKCO0tqfb5eSO7WGJ6YApamuAjrMp Txs271iGRYueDuDFGJ2R2G+Zm/DyEz+OntS0OeEVS+V6mBJLx1XQjV+4fp5oqx7tDTnfbTp93 FXw6JPvyoZ2Kci2Yt8E9L93JdjcHWw3KH2lSylMv1NQ6utdsLYqwx5A/qGJO7Lupsrp9F3in3 uCrvMTFft5L86dszan+3dxY+bZiTabCaEUC8XpRrA9skhXJnKmQ3OoAkqO0f2e/7Gzgxzi4vv 3a5URfbLRsfk7IKvJb6iJgEefHlwJLpp4qQwedR0lCMsviOws8XyDacFfu5yicJNhs06kThZa cdFRlWtqIFrTegzc/B3YkOQ+iuAc854e8jW2UG9lsw6J+fotfBfxLrvhAwofEKamsdf7fQaJU /IOFiP+RVgOqZoK5+1QpE+mR42SFEyvISOjeYxm2Z0ChFiv+1ZoPaeK1fsPMBTVPMrPjGzOuZ 27mSD0OZcggFZZau/tJv8X/4EgWCaSAbM3FUZ2nZkVyqZ8MT/6CT1ZO7HAkLo8/vSF+atiSjO lF6B54fVSkU4xPouJaiHoQTtxF+FOcfCT4iHJ923sVyK1b77CQ83jyXuyfFQqixxsx9USHb1Q 9dG5DMzjZVw+Uwj9xESAkRCupU4cfDrGEHPqqrni2GugNoDNH7qs6PxPxU1PjBkwWH53IwDXo KOd+zeHItVuEOg9smwPOh+GsJ2vBYuvPSZ6VShuKQb9lqwSv15HuaVW/iu8UpbEQJPVoRZuDc gc5VDJJugJqymfBwmiY9+V3Hh8a3YpPSU1aFjkZ+DloaqIYgkDV7XSiEV/3ZNCiZLr6LrsmpC jPY/ygTBk1pxWf72tpAU7tE1z/iLNpsDTdFO/bSJwB7CIzBFm4ZxB75JZ/9WRFHzgRG4aeq4z H8z05VRWeB4X3yB5wCE5QPSt20Bn2nkixYwj5Gk1kK2hu50sSnNTj8AMn77Jo1u8fJvGL7F7Y EsYVrjVzsP4Fgb28o2QJS2ODyqy63IcfAXLmotWqqEOj1jxd4Yoj4Dr/neJC+U2Tc8b6GZWKs RUT9xem7kG5xkqxJuIA4+w+fiyFpxGZNeyyYDhiojvCLE5p9uzBunwClfi4rVOmUMieJFsyJa T3RhBTlDR+ZULqpXW 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/22 02:47:49 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 , 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_/d7WVS_Kr.YJkCrNunMkQ2UF Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This will be needed in the next patch so compare_chr_send can be converted to a coroutine. Signed-off-by: Lukas Straub Reviewed-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Zhang Chen Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- 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" #include "chardev/char-mux.h" @@ -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; } -- 2.20.1 --Sig_/d7WVS_Kr.YJkCrNunMkQ2UF Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEg/qxWKDZuPtyYo+kNasLKJxdslgFAl7HdYYACgkQNasLKJxd slhdyhAAkUJ5iYmqRr1BtRz9hfBkFdkSew1DkorAVbSovgoiJnfOYD8uhPuA4yp1 +5G7JH5NDFphtFUgQMULPLQ6cOL5Bg/QEeXllGiRkZdnVwzPtgmiWLoiLIMiTryj 3avQxGvOI0ufNMSwFOAyD8fhp13M5t0PxVufbN4vxdt1yw51VIfVn1F/bx/HS/Qc J2hkXz+Z6XlrtpCJ7FH7kXvXL1qs76FjSYxF6rASN71P0cnK8UmLUW43eOYIwMs7 i2tGDRY69aOFkPM1e3W/iSXLTL7WU647q9XWfBPUzY8mf1O6wzt+tl1IzlRdD+dG Pf1liX84ftEdxDDAZuIRyR/gkx7+m0fVdn4KIJQQCpwSpb+MarE55qs/0BXa+tPg HdT16wjh/2cs95ZbWzbIlvN1wuNPPdM/+8lE+HzQolgkv1Qz/0k+HgwYaGvKH4h9 741wMuou/y9iky6Ob7ANx3as4xLY528BxKIzMUq4mIUkIVDPJQS+VAOYlwcSk8jS 6o9ruKImKULcopjDtVe1yabxupPV6he69cj8rIFmpvbxOnIp7WrB61rvItxwHNBm N+IrCqsCGUT0RHh6/s069wmdbFAy6qLCZYkAWC4Pm3LkMg+L+aQnzg/LfXSEakqu 6cTIY99KUS8/VNB3uqP8XyWODrlcpswEJZ82K6cvsB2Ia1eqR9E= =KkKo -----END PGP SIGNATURE----- --Sig_/d7WVS_Kr.YJkCrNunMkQ2UF-- From nobody Thu Apr 25 21:36:34 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=1590130912; cv=none; d=zohomail.com; s=zohoarc; b=Dz+MGeBAoAabnqOYfoXpEzc5Q+cosTNlO4dCieeIqJPUJrWfYJcoAwuXr5rTJZeCi2CFZGTStVbW4ZNPip3weDDEbDEHLiHcqGh9fHqzulEjxfdiw38Gog96W9lA8DFe0IYY875otIzZuqXHeX6I4sRYTnZ/ctNSzxAX5q3gR+Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590130912; 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=AIlUbUprNADfhSoN83sTEfNU9X9Vel6PhTOohX/1luQ=; b=Cj9A0nHpRMENeTrqfs325qAoE/H1gTwp6YwM4OkyDpPHBCRqJBAphgMzF81vC6tKc1uKjsPHQQU/Mz4Gnip2DchBKg6DPiPtCYWBL0q0Nb9bTcxVuP+70PRXTGk6Q0lPYjPrVWY3ncGiRxknykC7sGUdAJiEdiACrx+b8KcAXMI= 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 1590130912470333.26162013189685; Fri, 22 May 2020 00:01:52 -0700 (PDT) Received: from localhost ([::1]:39778 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jc1gk-0004He-SC for importer@patchew.org; Fri, 22 May 2020 03:01:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38268) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc1TN-0007UW-GV for qemu-devel@nongnu.org; Fri, 22 May 2020 02:48:01 -0400 Received: from mout.web.de ([212.227.17.12]:37177) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc1TL-00016I-GL for qemu-devel@nongnu.org; Fri, 22 May 2020 02:48:01 -0400 Received: from luklap ([89.247.255.67]) by smtp.web.de (mrweb102 [213.165.67.124]) with ESMTPSA (Nemesis) id 0MeBDG-1jPIJ81EPW-00PtjY; Fri, 22 May 2020 08:47:40 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1590130060; bh=A0nODjFo6KWPTkquLJJac83giA5N9yaIoEj+gjJApoo=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=MftmjxVImSczz8h74HC/VoWjQAzxl2dIg1L66ta2rjjU3QVvfG+uiEeeREHZw6CvB +JyKevS2q8uFuAxjfnh8/KVVlspifFFUG7z+R4eqdMBWMSUm4XiZoJatKee3eRqB29 QCGcUOzartfZkW1yXAW5MzzhwDAERN/aThtBQBHU= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Date: Fri, 22 May 2020 08:47:38 +0200 From: Lukas Straub To: qemu-devel Subject: [PATCH v6 3/6] net/colo-compare.c: Fix deadlock in compare_chr_send Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/2CfJDgicf8fCwhXILbT2bM/"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Provags-ID: V03:K1:43PcfcYO3Hpqzkfu3gu8XeKuXm6lu1WuIGums3nXmKW6sgiLcgh jEeNszt1QwBgZ5xokS78Ju+fsnwpCICYvJRJdt5UOiUkTNHk6WryZiZaEokcrDuZXo3lkUl BIjnlybr1bhf1hdg+0vw50QiDDbClNx1b+OXGdcck0edZMTLbxddnOphFgzygs6Rd10pe5r eSId1EY31RUZBgb8sPFrw== X-UI-Out-Filterresults: notjunk:1;V03:K0:Jc3DtTlEx3Y=:yhVn3HU4zRL/m6GnuV86/S PMtPuiSTwVs8ORFFXUeBAUIy4M3qI6Iu9Oj7N1g0jS97eTXh/iCbovKhE3IFBeG7Nz5DkdjBr lOUHZqMY1RRE0cRuvObYlqVa9pGQqWMHXVVo7m9tuSoXZ6Omfta0rn5I3fXx0vEaXRHcqaEv6 AmKwrwX/xreIN7Q1WDUU5YGiPCS4tZrgL82Am6gKwT2SkNo28XZQ4hMXzSbbVq0bcTz+agOab yEu07NN2nsrEqsNerLkxCSl0zVtxvPwXMl7V/AkKO8yGWuvlS1ngy/oSo0As1SqQTfVDWhOg8 PtWn7ISdlycxTkrGz+/DsTlphfRvOUd0ifT3mtAz3DDBcDI+9lbw5cRZUgRIk+U2f2JXDT9Ly W7T2HfSe4bkBEkmllN8EqguiUIvrlQaIPRRkRXCJ+EvmL2HscLVLDPrip3CcR7lSqLrmA76wA mnV1rz1KagoLjM33wmlpP/E3Tv2S0EexOEDCBqf7D2EYYGJjXqAqZg9XV4PHlSIXZz+Rx3WPN /fWyYnH/jYE1l1lj+pQoO2AaMWqj2UQ8rgGBH0GxF2xMX9esr+zHk+ICFgBTHhAHfGWsINfCn uPDwNigPXymyFAIHYB1W2Y1tc3rhL77Vxp1AjNSJtJxsYeRc7RPZrnMkUBoR85aobte3sdeMb R5tWl4U6PTQWX0WmeEbewJRnSq/bcZw2kRm78hqWObyDcLoQGs5/Gxxv8vbFFoChA3P9LXaQd wjpp0lfLvPhReAYLuD7yZYeSVk1QCDATRu+tW3csPHhAn6S8pLhcECiwXpITapsWmCW1cEXWM kRsjPYGO6u9MI3oV/ddgDZ7m+qhbRWSxTSHvUqRRaQCXbE8AHYZc7ij7kgWn5t5vUZBiqL2KF dZYtFd1KtjvY5OBa9IihDbmapxGVhY1/2AqnQAC52jzgRUxncFSe1T0TRnIpq3dkQKgX9CGgZ L3RPzqW51NC7hdY2rGYshSjF8X69qC5DlbBEKUdTJFg6HDg8u90rwlXP3XSPjHW9ajHBsFLxF V3gEWWh/VTVqcL7iwpmqRVBugPaFPAg3R5ZCeyunlmC7YPrNOD7Q5zefdF8O4F6RKSDNy9M6e VZllrytNDv18FbyUytb55ojwqB3RI3iW6SaQCpxGQOpM7EtiVna7WjmPh2Csd3jcvcu3r4pNv 58GtkSqcg2Nd+EsJIt9spKU8vWVhyzBOxIRxuquz3qvnqtyFdSJNMOda0niO7vtvNQB7wci0R FwwZYj2iZAn/ihEyv 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.12; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/22 02:47:49 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 , 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_/2CfJDgicf8fCwhXILbT2bM/ 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 | 193 ++++++++++++++++++++++++++++++++++----------- net/colo.c | 7 ++ net/colo.h | 1 + 3 files changed, 156 insertions(+), 45 deletions(-) diff --git a/net/colo-compare.c b/net/colo-compare.c index 1de4220fe2..e47c8c6049 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -32,6 +32,9 @@ #include "migration/migration.h" #include "util.h" +#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; @@ -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 { 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); 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; - 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); } /* @@ -699,65 +723,115 @@ static void colo_compare_connection(void *opaque, vo= id *user_data) } } -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); - 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); - 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)); - if (ret !=3D sizeof(len)) { - goto err; - } + if (ret !=3D sizeof(len)) { + g_free(entry->buf); + g_slice_free(SendEntry, entry); + goto err; + } - 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); - 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; + } } - 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); } + 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; } - if (ret !=3D size) { - goto err; + if (!size) { + return 0; } - 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; + } + } -err: - return ret < 0 ? ret : -EIO; + /* assume success */ + return 0; } 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,20 @@ static void colo_compare_complete(UserCreatable *uc,= Error **errp) QTAILQ_INSERT_TAIL(&net_compares, s, next); + 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); + + if (s->notify_dev) { + 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); qemu_mutex_init(&event_mtx); @@ -1225,8 +1314,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 +1391,23 @@ static void colo_compare_finalize(Object *obj) } } + AioContext *ctx =3D iothread_get_aio_context(s->iothread); + aio_context_acquire(ctx); + AIO_WAIT_WHILE(ctx, !s->out_sendco.done); + if (s->notify_dev) { + 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); g_queue_clear(&s->conn_list); + g_queue_clear(&s->out_sendco.send_list); + if (s->notify_dev) { + g_queue_clear(&s->notify_sendco.send_list); + } 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); } +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); #endif /* NET_COLO_H */ -- 2.20.1 --Sig_/2CfJDgicf8fCwhXILbT2bM/ Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIyBAEBCgAdFiEEg/qxWKDZuPtyYo+kNasLKJxdslgFAl7HdYoACgkQNasLKJxd sljsTg/3WyKdl0Bi4CE0MTpIIT3NSX9+AbVtknXo5wkavHQMeiwEBwszkP5S/7Cu AuP0HKGU17TYCQuaejaedo1Sq+icEEUEw68S1yftDyXXBkiyFHvjyuL0u538ULMS YKlTOh3XOaQcNsR57hwLNGv7Joytov47LsGhHrgqn8U2WRS9EIbgFqkcguutf+FH IGsywiO6zs4uppWiUAlYKu320/Iyz4TqrG4KrMzxIMdJYK9hxEwCJNIvAJmuFPS6 e7NUhXiWWMJ4hGvR+dHtN8VjQ/NIeSMCjtxQqTF/ZjZ/B1PGFsxa+oEKe24Y5kXs KZZONs75uaxMQdJ5BOs3ptif6wFtlSZWgiKfZYV4RcocG4Tgq8Iq+HzPwpiuGvDv xiI21C+MMjlM+4MfUAdFS4A75xjRXDwGc9S2GATZdS48Nch2cEYiE4ZfuxEebkkH L+1Fcibbxuyx5q7iKrVlxCQkDnxhq8AZ6DVFZSwMZf0AI42ioRzWrsqUutLr5BiQ qrmaZMPV9Of9Blbr2XlPWgswNuI587EyS1wvRadaMTJFRtdhKp2OEqCFs+iTZ6GI Q3RsD43z9BMd4K6m7y2B7C8O9G8TgR5AaO7dpNj/5SOtfhzo+LHu5DuXXM3+W/pl vHdYAScj/W4wvtz8Apb+3egkU4SBGDfF0m1U4Msa2XhBFJDGZQ== =kFyr -----END PGP SIGNATURE----- --Sig_/2CfJDgicf8fCwhXILbT2bM/-- From nobody Thu Apr 25 21:36:34 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=1590130303; cv=none; d=zohomail.com; s=zohoarc; b=Ogl5hMRhjOEd7mJfGb1SBuWNsgx2DKieoc/BtsAqFMSVMi1fS1JLa5yjhsbnBSPHLqfxmP2oaDhONHx5DFNPsMmf9/9cvcd6Pk+YR3oW/NtVf8snlcIPHXF1oGNcAFE52KC0S7DYtM3X271YetPS481zOdVjd+YJrpH0hR9y5aM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590130303; 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=3ugV/slSWVx2cTOAU3Bi0GGVK0xzZgIgXRxXmcFBiok=; b=Okj2HXx8sJ/qAJFYFz64WcUcu8j+KpPRpneJNk5NuA7ClW/+r9vZZG1C+uEU3AlxV8RZdoSRP2kw8TA+aeMSfqeud0awbfmJ/hi/BjCbXla45Bf4heeqwVgX/Nf4Kzz3/Skp8T99Ko2T6kKuNBNQ5sAwREumD38LeEUqBuMexns= 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 1590130303545475.02355798456017; Thu, 21 May 2020 23:51:43 -0700 (PDT) Received: from localhost ([::1]:56930 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jc1Ww-0002Sh-67 for importer@patchew.org; Fri, 22 May 2020 02:51:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38262) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc1TJ-0007TD-TS for qemu-devel@nongnu.org; Fri, 22 May 2020 02:47:57 -0400 Received: from mout.web.de ([212.227.15.4]:38849) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc1TI-000167-PS for qemu-devel@nongnu.org; Fri, 22 May 2020 02:47:57 -0400 Received: from luklap ([89.247.255.67]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MHEXc-1jpAdD2DT6-00DKkS; Fri, 22 May 2020 08:47:43 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1590130063; bh=ccn6+rX95KPnZc453AzARCcdDXrnJE3FRVs3VRcf8r8=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=H+VKf/AdfUmmR5GSJpzr3xM6laegk3q1EgUm3PepEXVnHvCEwkhp+TVg+1RyheJy/ 9vYp02NA/2Duee8UaQpB+dRC933Daa8EYLQlV9elSxcy6eUo9IjeLsEvyr8Ei2sC/k GPX1VipTGAknv4LBmHKXHAfQIzBZ6co0vYIFJt1Y= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Date: Fri, 22 May 2020 08:47:42 +0200 From: Lukas Straub To: qemu-devel Subject: [PATCH v6 4/6] net/colo-compare.c: Only hexdump packets if tracing is enabled Message-ID: <8a4db9598051334ae3fa97b73556cdbaac5bbe43.1590129793.git.lukasstraub2@web.de> In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/90druBuHZiQR/w=D3dOHZYB"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Provags-ID: V03:K1:kRqQK+J+UXSe/5J61Czr8joRBqKJwVkRhvNs85XNF3cQQMCew0M wJllyPnCDe9qsnbvdry1Q/yLkkQJ30V8aqRxPxOPnKFIEjljhaZE/Bflv3HAmZFluFxbxpp MPpc51in6IJ0Y2Eg0Bz75n4YUWmqruAzATww30i7WbQN/Sz75xa381GPYlXLZFKjdLFRTaU Lu/RR39FhDiPShC+Cm0qw== X-UI-Out-Filterresults: notjunk:1;V03:K0:tJW2wBz5+UU=:nGtIWeJ/W8oQ0qwWnyDl08 gzNY/rqiS/VwAUMDYygXbf0qcXG1eLf0Nmn4xw2+b37ctjGj3ZVi5kSfeQr0HFWHfwzj/8xof byTrydJJKtlZLsKAWzWvx8FX2cmef+U1/nKE4YHKZ9YPsXnVAV0CBqN/gurGkAPfSLjJaFH1t H0/M3cP5aOTRp5MPlbve8qJWLT0ceBLlt6cQk41KMj/FWf6M4qmNjuv3HFC/gWUMkaTUptyPw 5EIDp65/5Hc0Vr2zovzK1ItKiIQjVQqICG0gvr5iH5JsH4PymnNaZTw1ZVzX/o0SuMgI9QOVb jujkwwBVVYZrTT2bRij+YbBjWAq0EApldbvuN1T3detnJecPYq+VJlAyzloDrfsQnvQjpHIm7 8p0W8YYfWwhzvlwB9G8qYhb5TyJTm14Ni/YspSD5wFXc/Ea1/OKnYbvxSjocLn2b8+/fLQLOS mUAUJe9e/ly3BLFenxjFbhq23ofvaE7Jz2i0SIJUgzFadID9bmVSwTBRjZrp24ZvxbAtHhNd7 JMyu45pPqC52rcj0etllG0eKvX/EXZ2qIw5/tNUHsR2xONRI4Hrqu3BkZ4TAk4XX2BIDxl0QS qiW699rHXG8kuSAfB5N4ghjaaBCbmtv+WX6yz10lniaPmZINte8HmbdKS6sS0mgJyS1fI2HBW e9jluAY5OLAZ05Q21GqF7PTP6mhLl1FIYRmWz8PSl8U6OIx/W0OSGMfjCb4wXqLL4loQAe2EE ZGhqk86xrcxdqgzazJ1IQyGi+gP45Xs1Pn/iP8+IFX2WDOsi46AZfxg9xb/pizDBvUQMmF+aY dXd5Ur9b3/vmlSrugahL2nM0tz8Khz9ROkUiFiBQYwoY6UrDkQh8P9ID09MO3mf5dzojLIqdY AX2maJrIyIelBeYs/RC/DuCKYaDo+bwjz1BzgRIjkhJUSRhNJhUBy0W2M8Nm3fRt4JfiJ4j4l OhJG74YTqrEzY9bntrn4PTRk/BOVwbiwhxD/OHC2eWMw14fx6Sgi96oXGAubaE0RKSmGxSz9t knoDNldmebGeyscp4NqDnCvu43qv45AQHqATp+N5ia3sgsQo6rryt4N2gTSbOTBGalQoKkJu4 x2xRZol98ZJmC8qz5NvgoQYlFBGLlf4emXZrAOt5KxpaklJXrVedqHFsOwtO1i+1XW9FBZFGj KatYUCs5a8s5OQCW9yQYVoxGoS7AVi+EZ8zWTNyI3EUs5EGAB4KEFAitvyffEXTx1UTwLk5SS MEmiX/b2domU85OOz 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/22 02:47:49 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 , 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_/90druBuHZiQR/w=D3dOHZYB 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 e47c8c6049..7886444cdf 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); - 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); + } colo_compare_inconsistency_notify(s); } -- 2.20.1 --Sig_/90druBuHZiQR/w=D3dOHZYB Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEg/qxWKDZuPtyYo+kNasLKJxdslgFAl7HdY4ACgkQNasLKJxd slhwhw//TU+wzem+FrVD4Tpxz7kbWEYTiflLdPgWo0u7hGRERQN9SwyELU3bosNc HYsraOvdjvrA4bfhn5fSU/L+Mc0iRgHD/yXpjGL+PmRCCY3N9SbSLE/EAD2X78aB vWlgkr3uDXgXctt7VFyhjpcJ6IL7pzH6jUHJk75ZyTsnqdDv/ALKPwEEJ+6W8P/Y zmC5kwgFiyo/VmUzwZGEsDBfy53xZ9Lfvr0C31QyFyel12WkSDr/QVqyYuOhFpET HF/tMfWfpEFpiJVC8WbB0tAyghTVahFZOk47ULKlqq7MbLPkK356MvC2ArD7HLlo zd8czGIxIJi+DP3K5hgsNK6A2IJTToIBe0EdCofXmXxugPtq17zUQmbjv+IpaVSJ /fJ4x8lAVWxNeS3opgmVA4LfoydPtzcu1oL/MQAsWa7fj8p4mhI+QqXtXJhUuUY2 D8zeGgc2DkGCt1ukXkazowuqE/84bVAwVah+V+M2HVx4PvlbvorRHwwU3JZLloOB fnfgzUG6N7bBugqQOSaGHVe/S3IpaiEcZEj2g+84FyjGgy48SejvbC9vmnz1gs0C EugNfRIDbE/5/OQFxdfcn7YHWfI9F9sIs1i97q9hb1eqwfON0xCoNgVBGvQuwx4b SnhbiUrBMeoponp7nLRXQIPgxliF3OSnrDKVABM+Dg8UP3um2Wo= =XpCR -----END PGP SIGNATURE----- --Sig_/90druBuHZiQR/w=D3dOHZYB-- From nobody Thu Apr 25 21:36:34 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=1590131265; cv=none; d=zohomail.com; s=zohoarc; b=i/o6dixj4dTgHur7RXRKes7RFEWfM24bwLbJ82kLyuPopMTyXHjdnqjn/lCWMcJaRouXMD+xsPrQlDgGTtBQOUc7CkHpAqyQxOJZKCx9qSYVuxlAEPXRL2mvPAcoq9CqUryAKu0KiLg+tEr/2c9amXQaU+RLlgxxUv2E6YPwQng= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590131265; 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=MHy12lwGjymOyVmxVnJBSuWNYeoPcFufScH/SScpFNA=; b=TUPozhItmBZK4axnB7kIZ+jn1lmDgLf4oZiMLl2Xba4A+Tk6pts3mFLp1X46xdiRbpCFYfJVk8UuwwWy0g2z6ufhCdxb+IpC1iTVPUR6YnyxFYaQHxFEZSlf8KIqGA7G2SoYBmHp6/1NGibk3jYtC6X1STjE61Q5kA1DDivH7uk= 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 1590131265195549.9843083094271; Fri, 22 May 2020 00:07:45 -0700 (PDT) Received: from localhost ([::1]:45184 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jc1mR-0001fZ-5x for importer@patchew.org; Fri, 22 May 2020 03:07:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38274) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc1TS-0007Vk-94 for qemu-devel@nongnu.org; Fri, 22 May 2020 02:48:06 -0400 Received: from mout.web.de ([212.227.17.11]:56815) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc1TQ-00016h-FW for qemu-devel@nongnu.org; Fri, 22 May 2020 02:48:05 -0400 Received: from luklap ([89.247.255.67]) by smtp.web.de (mrweb101 [213.165.67.124]) with ESMTPSA (Nemesis) id 0M6V5b-1ir3sm3KRP-00yTGv; Fri, 22 May 2020 08:47:47 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1590130068; bh=6t3gKbi3BYQQYPWCApOdko0vUfgjwHXmi7x4ro7HDkU=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=Sig4kNgErcY9WAL2hbZWdpxzdxlF/D4Yg1vJRQESHW1mYZmnuAqhBG8EHg5R/T/6Y p7a/YFkq1v3zN0O8gagU+4lSq1/n+HLM5jwaWCY6/AwR7YRE4uYFKRtYFCg4P+XjOs LyFx/BZ1KOJZjrzXYKUASGOtHzziX2R0XHtBa+80= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Date: Fri, 22 May 2020 08:47:45 +0200 From: Lukas Straub To: qemu-devel Subject: [PATCH v6 5/6] net/colo-compare.c: Check that colo-compare is active Message-ID: <3291bc9d7372e2b50c517efd92404ae5437e65fb.1590129793.git.lukasstraub2@web.de> In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/VDK6llwDvmHOglbuy8K_skv"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Provags-ID: V03:K1:P3iRCobE8CgAsFIuNa6GbaiiA/TLO+hNQNxgTumrOKFBSO08WER qHZqVRFq85E7EBgJqygr593V45kKlOr42OeKc4tDQu3n+7JiqDp84/94k25x7qvaEea8bi9 guu1lPabLQgCbPa1NpqL2MwvtJbr1+BHYpAPqT1OtR780J9IoHuJwymx0ZzW2rEJ9Yv9L2H apCuW6XxxoDiE+JgHgT1Q== X-UI-Out-Filterresults: notjunk:1;V03:K0:DDJpM3iBj+k=:rJmF2R7y9UczoiNFOi25l3 ocQyNqGWly0o5wrypZbaWwngj2s1fv9amIVWmG6QAUhm2SEN43Efdyhlb5WFhjrwmePtt7+I8 SQ20LyTaql2uudaf2D+KghgtYAhb+KxWmvN7BxKrSs0aBcHBG7BSgLEqzTPFkgfC4XqV8lvzz loVpYDuRJBH004UiZeZylYSK7zUasQ3Hjyl3i48YwxBlYBa7iGGqWX9KWEAIWsp9HamFA+ug7 AM/kN7XvC/BC2K2p+VNxBjUvYOyy7EnvNTcRQ+z/8HiYfNl4mwKHK3Hh9BcylrXV7CrNXR/26 PGy7/LZK2HKgOqr2GDZRuMesRzgWrwMVk1Qe7G4R7U8ZPoagPWxhvN5LM+/TgYkLJNiv4LzwG x76XeUl+a//CwFQdW5i9bwWm+8rtGKq5WEYpIOUSiVgrQxXeM544DvE1gOif5Bwype33WFhKk 7AcJ2E+YmUoKeB/kyK0o0QXHBYRKTfuTGUWa3StyJmDgaVcZfH6HPFl21F1h7VgNF642DKA3H ftzi/4XOcLjWvd8p2zO/q1gFAhjZkr7v8k6gN0Z4LO7jO79cpJglvhg/FeDPSs0RJ5P46Iovs TaHV+40/j0IxRjQX/PwOafmHcDf76kE67qnRS1+FwSRO8ecH9be/stBk6BnsUAgSpwh4YopSP Gf7NeyRRZ9Sqd2UgmjYbFmVLP5AD1t3yDDyrykMQUcLTh7EtjxV1QKEBlVW8PJH0+YM0jSDUr yVsnKDEIqjZXqraWoTCOWFrWdkRWG476fxvFzx2wnfRZZE21erR4pbcJ4Q66MXIlEMV8u/asG q7KVqHStbHDGsu5hYs8+bfCVa2b6KHR5GLXCIm1u4qB5JKzXLuElBi7U1ybmDTHpgVlDV7Ugy Ml23qKdlh7L4XYhzx7WOfs6R3KpXu0/qJLyQzlI+Sn43SEsC4dPPOtL8jHUFg2qpF9ccXwjpt LK0sHhKLdEeQdtoWvZbARJH+7waASBRKs3nrOw6y00xOczKtB4X4WR1xwxCn69O9CPJY0UikI Oenrlkv2oMO///13ie7NSikirvR2daiGzl7x7fwqxkkVkD3HAZC6DMmmgzOPwy8SFCRDIeiJ7 P+kVa/8+pcPJ85SWXnxVTvrHbP6cItElArjVQ0OzBbMJWvlN+fu2Z1EV6UHJ12gevdPNhPNNi KrNf+vUYhhnw4BiLK+bspcKbCZARk2a1R3P/gHc7tKY9ar3M5V23UhOn2U3nNbRBMYDIPLVlZ kRoSLzAqMxZYitNVi 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/22 02:48:03 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 , 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_/VDK6llwDvmHOglbuy8K_skv 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 Tested-by: Lukas Straub Reviewed-by: Zhang Chen --- net/colo-compare.c | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/net/colo-compare.c b/net/colo-compare.c index 7886444cdf..64d2453450 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 +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; + } 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) } qemu_mutex_unlock(&event_mtx); + qemu_mutex_unlock(&colo_compare_mutex); } static void colo_compare_timer_init(CompareState *s) @@ -1274,7 +1283,14 @@ static void colo_compare_complete(UserCreatable *uc,= Error **errp) s->vnet_hdr); } + 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; @@ -1292,9 +1308,6 @@ static void colo_compare_complete(UserCreatable *uc, = Error **errp) g_queue_init(&s->conn_list); - 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, @@ -1386,12 +1399,19 @@ static void colo_compare_finalize(Object *obj) qemu_bh_delete(s->event_bh); + 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); AioContext *ctx =3D iothread_get_aio_context(s->iothread); aio_context_acquire(ctx); @@ -1419,15 +1439,18 @@ static void colo_compare_finalize(Object *obj) object_unref(OBJECT(s->iothread)); } - 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); } +static void __attribute__((__constructor__)) colo_compare_init_globals(voi= d) +{ + 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, -- 2.20.1 --Sig_/VDK6llwDvmHOglbuy8K_skv Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEg/qxWKDZuPtyYo+kNasLKJxdslgFAl7HdZEACgkQNasLKJxd slh1yhAAueAL2doLnzy7gd1EYmb4FFVcTptfz21Sh7HPgPlNG6tBkXSuIIntLgO1 nZg/MNk1J5NFt5jaV2yBlcRmhg2zcIIyWQNe07Y5hhnF+UrzWN4SpnxAgP5anwQ8 auHUG6/GDeFOTJzmYyNevBtX4u20XRgR1IuMy19F8S9IQBI3kemJjif1Bvy9/z37 WbQu9dm59Kuo/QErsfAxFv3DbR1DYnalvZMfWIMGlIElHCPgSGrFha3A0GmDGJ07 tJXFPxM4ZvX+lT/3mjXOQmkNOKKbvSXM4z0/czjXr2RkbIwtVQU9MXDUswsXncXG YhKZAbr0x4Nv/I3FgLqbOtT01SxhHy59NnOg9t1Sg2QYjEogdco9FZa3444mPhQk IF9tBX4ij5BOYRjQbMZRA+NFIFg74vN2Y/oIXYKs6aJ09LrQx7WQXZVIbGSFSpkw XRWGFaubbNeO6Qh8UuBJkg7zLv1F3aVkhODhyFujz3Fsi1Z9qpBz9LzPM+pjobGI rCgQixCL/pitczal50d1BaSRvlgy8YUu1epoS7MJoH+KIBBqkmpcFhs/1P4XqF/u XBNcl9HRJrzRaZXSRMlO5ljc78H9GH491MqHzhyiGjNUGIVp0cEweWYJkTnv9OzV wHJmzER/hcLP/5dBVKTmA4jb0kb9RWH+PruDcuKg17h1JaOO/0g= =5CGg -----END PGP SIGNATURE----- --Sig_/VDK6llwDvmHOglbuy8K_skv-- From nobody Thu Apr 25 21:36:34 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=1590130656; cv=none; d=zohomail.com; s=zohoarc; b=aP+3LhSunN78PiebhkEubbz+KJCOG19WP7xU88ge/I7zOJm2/bVHxNegmIaYPgynWm2OjN5kvMdEPg2ZZqcxi0ji7F6nM1QVPMpAKlQZ1p3hgyZ4SMXGRNI8y5cCttuPWRVcMaSL6iCa6DFEz9f5ppkUlDpCFhYaVi1lii/wOGI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590130656; 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=5YFiUpemrutBb2bS51G4/RMLD0WnaHiSOENphWSCTDM=; b=O9M+yNWb1MeF7bfMsgnXIQ1vksay4V+O/938VzX5bnTluYtmmWg3qOkusqfCbQx0OTz6W5Wy+C9dRXcdozWsL9USlRt5LA0h+O1FZVUwKTbsf9Vpx/h/9FwOtBwln6VlG6KRx8zxE4ijECl7E5qU2Wto7DaCyoCGdmxeOSGioS4= 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 1590130656056596.6797201711415; Thu, 21 May 2020 23:57:36 -0700 (PDT) Received: from localhost ([::1]:36754 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jc1cc-0000Du-9S for importer@patchew.org; Fri, 22 May 2020 02:57:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38278) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc1TW-0007WE-87 for qemu-devel@nongnu.org; Fri, 22 May 2020 02:48:10 -0400 Received: from mout.web.de ([212.227.15.4]:48021) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jc1TU-00016y-NJ for qemu-devel@nongnu.org; Fri, 22 May 2020 02:48:09 -0400 Received: from luklap ([89.247.255.67]) by smtp.web.de (mrweb002 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MWApN-1jZR3m3Hsv-00XL4Q; Fri, 22 May 2020 08:47:51 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1590130072; bh=MXoVmF4cguAy8DgHsq/lz4aLwi/zGS3q1d2e0sLrm8s=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=VneAj4WSKIy9b94B7uaPd8VxFjV5EZJB+qOjGAQg9o1noHptIhPskUK9q3OeVdP9N 6eFdaY5/l2YGVpRaWv3PtlnK40qQ77UwjKMm1EJvqsfnEiaDNYMMkXAmAqlM43O1bX Q+XWUNVTz0MgoRzbtt5TeudsODyChImNV/P11I3k= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Date: Fri, 22 May 2020 08:47:49 +0200 From: Lukas Straub To: qemu-devel Subject: [PATCH v6 6/6] net/colo-compare.c: Correct ordering in complete and finalize Message-ID: <4ea8eafa6a09cd0de48b85f865d88195ddb2e74e.1590129793.git.lukasstraub2@web.de> In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/KMiC0ve/Bof+EUZOI9V7TMO"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Provags-ID: V03:K1:dAgkL82XolU30CnmSdgu3mkibl9fbyP93lT710BODEZEXcm6zRW fvSzQ+CQ7ZkcmZEqNBl5kxa0LwZ5FMdaNf7NwX17FBc4Y1ukgRYav5JEU62w1MlUMY7gJwN 73qK3TaCQnxMX3UamjCVZFF5QxMmlLJ7ijldiBkS96rVp38OiFW5ic0ly6HyuYS57isVQxK Vi8Zw2HJk1M6RBQ/6vSsA== X-UI-Out-Filterresults: notjunk:1;V03:K0:Dv7s4B8EJ6k=:/9qHpXxKLkxYH06ytWLT9I cBVRA6peWl80cjyFMPBjwk/WLQngVgWiL0vPeokZwtaSzmUujIVAWppw2oog9IC4mz8AzI0E3 wImGvc6aghsrgt12FerpLtF72oGgvqoggDHHI+sm9CcffF28b4ulW+vJVhNGEuOy+cnuvE4QF wg+Tf0w5ubM0S5KeL17apVrXdDGP9npst/RnnpJcaO92EYhZGnju1zAyhFSKoH3YUYoDuBuhG pdnC8BtA4I8+HyUXWXF7Ev7svGc0IBa/R2YTQFG7RVYLW/HcxUXBWlcz6T0lzxk3K9ZXh2z2R 1ycjpRkFOA7Ro7VoEw7PvKNM3tBwHcwe6l+K1s/B8zyl60DNTMjxjqaZPXgbYfDv7wq1sGwS0 C8u6EzU9rC9tHcsO+nvEAcQ+zhoeFRMll+OrlUpmj+ob5pKytZr1Zcgo5538pAYcXC8DCsSbT TvtOw3Xh7ZNOzTTGKUEv8Nf6E2Asc/M3xxw6beYQMA6tGMY+UW1RMweNPA4/3LLN0yLMuTUvR XED0EF8pdyWeh73VlK2ZFFMAC/kD7UxzSXEDMuclzP1K5tX/mC73Ht/nND1+B6JgTMx1ygiWh akHAvfoBOWmiq7sJTg2Tj9ndeXPoz2NA80g3klI5DHy4JCS+DhmY/hIVrqk7dueqWS6KVlN3T VqEuye90CXy4qhqdCgmyz1a0GljZoQ0GGRO3ZwsfCoH46156/Ap3Qlegzp2chuq0wuob8Dduo btpHTBi/wKdyuMHbPGIN3tU9vcCG8gfc11dGL7SKAnOcpgDEW3fWqIRRnLnUuAnBNJu1Lf8dV lA9pVEr+2VnlkebcX4HkayfMMG3Im9R6vc0D8iuKCCPJXsuEXjzawyUjSr5rZW/0iaYndbLsO zLHtAmHK7RvH4/sYZbETo7+HjWUk42sfSlnxcDPX5sbQ6fCZyEBQRo+DDFMzI14vASFiAns9s 5hgwtttBWz9rWRsjUOfoLps6J45rLtpHXPSmZMykNO/ARAjYhGhROz5cev7N4f6Pk6+V8DXs9 u9u8qPNyV6qK9bC0Mdns+eW2mmXnHqnxDvlpYUwIPzuHsKcb0idmlLYwjweOYXDC2yQiGnurr NrawY4XBeb+QOneyhRNXyeR3CyV9pO2ZJWpj349/rRqDwaRvmmu7WGTt7A0F9BROGBMe8Rcdw o1a53s84IKrIGldiRDfanEn77/jRb/ma/rXft2loOEN/k0E5g74ML5aHI5XkaWbJWuWBt1N8V wqZASNChyOEkM/ctc 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/22 02:47:49 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 , 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_/KMiC0ve/Bof+EUZOI9V7TMO 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 64d2453450..160776d39e 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); } - 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; @@ -1314,6 +1305,16 @@ static void colo_compare_complete(UserCreatable *uc,= Error **errp) connection_destroy); 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; } @@ -1386,19 +1387,6 @@ static void colo_compare_finalize(Object *obj) CompareState *s =3D COLO_COMPARE(obj); CompareState *tmp =3D NULL; - 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) { @@ -1413,6 +1401,19 @@ static void colo_compare_finalize(Object *obj) } qemu_mutex_unlock(&colo_compare_mutex); + 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); -- 2.20.1 --Sig_/KMiC0ve/Bof+EUZOI9V7TMO Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEg/qxWKDZuPtyYo+kNasLKJxdslgFAl7HdZYACgkQNasLKJxd slgccg//dXB2hOZLCTnAAEAYdNfpndPmqcL73Wf0gOoBSTkAqwgEEcaGwAFyo+0X RdihcryRS8Ratktx+egNp0exHCPR6ENAt9Bc7omHWCrRjGi+9UU0+29YR+AHE6qq rlc4HeP0uBbky1LN9Gk7ENVQXfMorgiTTpBMFxAt9bJPAH7P534zQn/HNjw+R64X 5VFumXlD6J/UMA9QiYYPcanlTiE29vPuG8vkuvBOD7SuPaRHZsf8mt6YqhDyXt3m 4U02i8Utj6s3v+GuuZzLpWV+aMCKwj3dWlfjlBRu4TvLWxdzdGQFr7Tj+0sYTiGk lpAEmdeeVUvFhDlbzGaVlAwFl+ZWb2va+jJZMDOx2q2VGVUm1THEcZlRRSuYdl/7 78h5GYJznPM/SQYR+elKNmZhVqYOl//dmAe1I38iCkZZTfz4ooAkVudl+CZn8Dsb mSfOjI5enKdRiAQ2C8B8DMwsVinVJMlQIH1g1Xl2J2zVTS0OUD5L1c0afZQSD3AT QdoJbHOTC2d6UOQErZo0jYMuO9MhBI34v8GZsEI/CBr7XNvvurVgRrssa5EWlDp1 N+zsqTqZWyzZhtb7wC/lVncXYvY+4fqjJGefbBbo2pZ6k7OyEWmcqJBUIkPGhl61 uWazpnYr1tGmlSZnF6RKDtquNVPoxbJgIiPEw1FbYHp37ofaiBc= =DA1Q -----END PGP SIGNATURE----- --Sig_/KMiC0ve/Bof+EUZOI9V7TMO--