[{"id":3242123,"web_url":"http://patchwork.ozlabs.org/comment/3242123/","msgid":"<9f9b8359-d33b-4c94-8eb1-fc500d8fc2b4@univ-grenoble-alpes.fr>","list_archive_url":null,"date":"2024-01-05T10:40:07","subject":"Re: [PATCH v2 40/43] contrib/plugins: extend execlog to track\n register changes","submitter":{"id":82436,"url":"http://patchwork.ozlabs.org/api/people/82436/","name":"Frédéric Pétrot","email":"frederic.petrot@univ-grenoble-alpes.fr"},"content":"Hello Alex,\n\n   just reporting below what might be a riscv only oddity (also applies to\n   patch 41 but easier to report here).\n\nLe 03/01/2024 à 18:33, Alex Bennée a écrit :\n> With the new plugin register API we can now track changes to register\n> values. Currently the implementation is fairly dumb which will slow\n> down if a large number of register values are being tracked. This\n> could be improved by only instrumenting instructions which mention\n> registers we are interested in tracking.\n> \n> Example usage:\n> \n>    ./qemu-aarch64 -D plugin.log -d plugin \\\n>       -cpu max,sve256=on \\\n>       -plugin contrib/plugins/libexeclog.so,reg=sp,reg=z\\* \\\n>       ./tests/tcg/aarch64-linux-user/sha512-sve\n> \n> will display in the execlog any changes to the stack pointer (sp) and\n> the SVE Z registers.\n> \n> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>\n> Cc: Akihiko Odaki <akihiko.odaki@daynix.com>\n> Based-On: <20231025093128.33116-19-akihiko.odaki@daynix.com>\n\n> +static registers_init(int vcpu_index)\n> +{\n> +    GPtrArray *registers = g_ptr_array_new();\n> +    g_autoptr(GArray) reg_list = qemu_plugin_get_registers(vcpu_index);\n> +\n> +    if (reg_list && reg_list->len) {\n> +        /*\n> +         * Go through each register in the complete list and\n> +         * see if we want to track it.\n> +         */\n> +        for (int r = 0; r < reg_list->len; r++) {\n> +            qemu_plugin_reg_descriptor *rd = &g_array_index(\n> +                reg_list, qemu_plugin_reg_descriptor, r);\n\nriscv csrs are not continously numbered and the dynamically generated gdb xml\nseems to follow that scheme.\nSo the calls to Glib string functions output quite a few assertion\nwarnings because for the non existing csrs rd->name is NULL (and there\nare a bit less than 4000 such cases for rv64g).\nChecking for NULL and then continue is a simple way to solve the issue, but\nI am not sure this is the proper way to proceed, as it might stand in the\ngeneration of the riscv xml description for gdb.\n\nCheers,\nFrédéric\n\n> +            for (int p = 0; p < rmatches->len; p++) {\n> +                g_autoptr(GPatternSpec) pat = g_pattern_spec_new(rmatches->pdata[p]);\n> +                if (g_pattern_match_string(pat, rd->name)) {\n> +                    Register *reg = init_vcpu_register(vcpu_index, rd);\n> +                    g_ptr_array_add(registers, reg);\n> +                }\n> +            }\n> +        }\n> +    }\n> +    cpus[num_cpus].registers = registers;\n> +}\n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=univ-grenoble-alpes.fr header.i=@univ-grenoble-alpes.fr\n header.a=rsa-sha256 header.s=2020 header.b=bGZlwCNc;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4T60Nv6xxNz1yP5\n\tfor <incoming@patchwork.ozlabs.org>; Fri,  5 Jan 2024 21:41:03 +1100 (AEDT)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1rLhd5-00009G-3h; Fri, 05 Jan 2024 05:40:43 -0500","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1)\n (envelope-from <frederic.petrot@univ-grenoble-alpes.fr>)\n id 1rLhcq-0008TM-6G; Fri, 05 Jan 2024 05:40:28 -0500","from zm-mta-out-3.u-ga.fr ([152.77.200.56])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1)\n (envelope-from <frederic.petrot@univ-grenoble-alpes.fr>)\n id 1rLhcm-0000O6-8n; Fri, 05 Jan 2024 05:40:27 -0500","from mailhub.u-ga.fr (mailhub-1.u-ga.fr [129.88.178.98])\n by zm-mta-out-3.u-ga.fr (Postfix) with ESMTP id A35784029D;\n Fri,  5 Jan 2024 11:40:14 +0100 (CET)","from smtps.univ-grenoble-alpes.fr (smtps3.u-ga.fr [195.83.24.62])\n by mailhub.u-ga.fr (Postfix) with ESMTP id 9B13710005A;\n Fri,  5 Jan 2024 11:40:14 +0100 (CET)","from [192.168.1.73] (static-176-185-194-185.axione.abo.bbox.fr\n [176.185.194.185])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n (Authenticated sender: petrotf@univ-grenoble-alpes.fr)\n by smtps.univ-grenoble-alpes.fr (Postfix) with ESMTPSA id 92FD640052;\n Fri,  5 Jan 2024 11:40:09 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n d=univ-grenoble-alpes.fr; s=2020; t=1704451214;\n bh=fykYQ/3tfgtb47HRmaF07GMFcUoSZCQqQeIoojbO0co=;\n h=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n b=bGZlwCNcHGdFrSuxIaCeVIxDt7xW9qhJkryj7uI8H5P1L7ig4A5ofNysvvRDmDTTr\n WV+aFWgfUAFf/tA6H+4xV4d8T7829T1K3QGnwveIWHl4vs2ZDit6b9ADoUZ2KVnHLq\n rab98zbF2wEpGTtPq0ioe2E04YAdmk743bb8LngLlLNN47Lmn36jPiPvcWV9fhRk45\n MvKQoccyEg0eElcpa4j6yU9HkZ/yreoV1IoZ1TUpJTa7UTgwecuOOFhxU34GZ5N9nW\n 4zke6YTZeRqmKFmN9UDaYaf9PpHMJpuZIvCgA7A1KxVxYiyP7wKi8cuG/HkjxP9OCR\n Mg3SGiya5OvHA==","Message-ID":"<9f9b8359-d33b-4c94-8eb1-fc500d8fc2b4@univ-grenoble-alpes.fr>","Date":"Fri, 5 Jan 2024 11:40:07 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 40/43] contrib/plugins: extend execlog to track\n register changes","Content-Language":"fr","To":"=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,\n qemu-devel@nongnu.org","Cc":"qemu-s390x@nongnu.org, qemu-ppc@nongnu.org,\n Richard Henderson <richard.henderson@linaro.org>,\n Song Gao <gaosong@loongson.cn>,\n =?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,\n David Hildenbrand <david@redhat.com>, Aurelien Jarno <aurelien@aurel32.net>,\n Yoshinori Sato <ysato@users.sourceforge.jp>,\n Yanan Wang <wangyanan55@huawei.com>, Bin Meng <bin.meng@windriver.com>,\n Laurent Vivier <lvivier@redhat.com>, Michael Rolnik <mrolnik@gmail.com>,\n Alexandre Iooss <erdnaxe@crans.org>, David Woodhouse <dwmw2@infradead.org>,\n Laurent Vivier <laurent@vivier.eu>, Paolo Bonzini <pbonzini@redhat.com>,\n Brian Cain <bcain@quicinc.com>,\n Daniel Henrique Barboza <danielhb413@gmail.com>,\n Beraldo Leal <bleal@redhat.com>, Paul Durrant <paul@xen.org>,\n Mahmoud Mandour <ma.mandourr@gmail.com>, Thomas Huth <thuth@redhat.com>,\n Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Cleber Rosa <crosa@redhat.com>,\n kvm@vger.kernel.org, Peter Maydell <peter.maydell@linaro.org>,\n Wainer dos Santos Moschetta <wainersm@redhat.com>, qemu-arm@nongnu.org,\n Weiwei Li <liwei1518@gmail.com>,\n =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,\n John Snow <jsnow@redhat.com>,\n Daniel Henrique Barboza <dbarboza@ventanamicro.com>,\n Nicholas Piggin <npiggin@gmail.com>, Palmer Dabbelt <palmer@dabbelt.com>,\n Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,\n Ilya Leoshkevich <iii@linux.ibm.com>,\n =?utf-8?q?C=C3=A9dric_Le_Goater?= <clg@kaod.org>,\n \"Edgar E. Iglesias\" <edgar.iglesias@gmail.com>,\n Eduardo Habkost <eduardo@habkost.net>,\n Pierrick Bouvier <pierrick.bouvier@linaro.org>, qemu-riscv@nongnu.org,\n Alistair Francis <alistair.francis@wdc.com>,\n Akihiko Odaki <akihiko.odaki@daynix.com>","References":"<20240103173349.398526-1-alex.bennee@linaro.org>\n <20240103173349.398526-41-alex.bennee@linaro.org>","From":"=?utf-8?b?RnLDqWTDqXJpYyBQw6l0cm90?=\n <frederic.petrot@univ-grenoble-alpes.fr>","Autocrypt":"addr=frederic.petrot@univ-grenoble-alpes.fr; keydata=\n xsDiBEzGfDQRBACnR+QhOOA6gstLMoL8vexXgQ/shw+w6zEsACrydiwCrAXMOQfyozlXyGYf\n XBO0cf4RKMh51NLdgntJbYlOoFalY7iGRwo8U64iy8kHBcXlfdFYGrYFbFYervlMwXoY89D6\n 02uMzWK/UossWWWX2PkqfBenmYd0zk+JwghTwY8MVwCgtr1Z52ZRv8vPA7ZLn4WSJLC/qv0D\n /1hBIaSsCAT/nO78oFZq9hzY51GsmiBT88hTofCma2PIotJT9qocJglgqzA9B+2ja4bgXJ1f\n 0WFlvxyLTjga8jJ/lcdNpAGi13sFEhP6nyi2Zh2hFhrXlTPH+VtdnjTHSnzK23eLphZJv031\n SxCqEYT6pgJPwwHIWOHyeDZq0ORdA/4+2U4eYUhCGfi9u60L3zRDzUVULScq3vXah1ak1yBs\n Nxz/F1iMYVBUmp4SGSM6XFxVwvJxvSRPD+4zXIkr7+MfIheiXbiSzNoZdH3AwaAK6jGxhfWb\n f8Jm8KuLvGkR2QaS7QT+rhhv0OLEhVBMmm8EXZpsrOV3ZVmE934+WoRDd807RnLDqWTDqXJp\n YyBQw6l0cm90IDxmcmVkZXJpYy5wZXRyb3RAdW5pdi1ncmVub2JsZS1hbHBlcy5mcj7CeAQT\n EQIAOBYhBGyr6EloIPZXrmtYU0QWC1i+uhtgBQJa/b5sAhsDBQsJCAcCBhUKCQgLAgQWAgMB\n Ah4BAheAAAoJEEQWC1i+uhtgNooAnjAwrIMPDJ+mQr1svgh9+NFFZBUWAJwONXxE5DrxP9OV\n R0tsDROd3EbvXs7BTQRMxnw0EAgA8XI4FU6LH2NryyrydYoopZfixTvfS3rra8Q3UN+eHvuG\n jM4+oebZO+ZZ6KtdGj/RDpXtn0KW6SdFynKuLS5obLx8GGfq1tj5KGep14kr1/BRp3xTqKE+\n rleeWvR1fGXryJhxIV/AQ/tY2Le1ExsgLbD5dbPQKJhpQUlScz6Y1U2UsyxnMV4c7PlCNNb9\n 1ZWfxPN8c/w8XBSZDaE5UcBmxYxH9959yte9hsczuzqbMgiGa0DCN+iIgsQOYtD2csDxVQUL\n vxtD530vdTB32tdlmcumIgZCH4X7RyLhdbv1Xj6gcZ9InGf2tRLHbnd0/uPY6qTX/5teXQ7g\n 0xzVlvcWQwADBggAvXpFpXACegDPqglkroyA8+LQWNyumsFtcrlAc9mcC5WwDBqNsSeCbGcx\n TXsUckRAC3DpJkzKLbBsFki4fcYEx3tjfJGkknxInPYmOIlKRinSnIMS0qFqXdy37w7vPhqv\n KMLwbeHYronnGUAW0Z//ZXZZTl1KbEeKOEXK2dyE0aLUtoWj/aLwM1c2zuJCctI38GENtRC6\n qaqFzCHKTqxjl7aL1LILSvKQ1sZGKdKjApw5KLoKnk6WbspFIfgIirXoC2gRo/lhhd1ctVZK\n IptiyHp7dw2Rr6TEzjy+Z/rDHVf9lGCzUkMDJHm5XQB8+f/Va5kddgZ9gznRo17IPvR0jcJJ\n BBgRAgAJBQJMxnw0AhsMAAoJEEQWC1i+uhtgg90An139WxG/GTGPRFVQCaxQRkycFiI3AJ40\n aR3/xWYMOEUWfcXpCS8dzPbdDA==","In-Reply-To":"<20240103173349.398526-41-alex.bennee@linaro.org>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","X-Greylist":"Whitelist-UGA SMTP Authentifie (petrotf@univ-grenoble-alpes.fr)\n via submission-587 ACL (41)","Received-SPF":"pass client-ip=152.77.200.56;\n envelope-from=frederic.petrot@univ-grenoble-alpes.fr;\n helo=zm-mta-out-3.u-ga.fr","X-Spam_score_int":"-43","X-Spam_score":"-4.4","X-Spam_bar":"----","X-Spam_report":"(-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001,\n SPF_HELO_NONE=0.001, SPF_PASS=-0.001,\n T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}},{"id":3245311,"web_url":"http://patchwork.ozlabs.org/comment/3245311/","msgid":"<87o7dsf46x.fsf@draig.linaro.org>","list_archive_url":null,"date":"2024-01-11T12:24:38","subject":"Re: [PATCH v2 40/43] contrib/plugins: extend execlog to track\n register changes","submitter":{"id":39532,"url":"http://patchwork.ozlabs.org/api/people/39532/","name":"Alex Bennée","email":"alex.bennee@linaro.org"},"content":"Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr> writes:\n\n> Hello Alex,\n>\n>   just reporting below what might be a riscv only oddity (also applies to\n>   patch 41 but easier to report here).\n>\n> Le 03/01/2024 à 18:33, Alex Bennée a écrit :\n>> With the new plugin register API we can now track changes to register\n>> values. Currently the implementation is fairly dumb which will slow\n>> down if a large number of register values are being tracked. This\n>> could be improved by only instrumenting instructions which mention\n>> registers we are interested in tracking.\n>> Example usage:\n>>    ./qemu-aarch64 -D plugin.log -d plugin \\\n>>       -cpu max,sve256=on \\\n>>       -plugin contrib/plugins/libexeclog.so,reg=sp,reg=z\\* \\\n>>       ./tests/tcg/aarch64-linux-user/sha512-sve\n>> will display in the execlog any changes to the stack pointer (sp)\n>> and\n>> the SVE Z registers.\n>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>\n>> Cc: Akihiko Odaki <akihiko.odaki@daynix.com>\n>> Based-On: <20231025093128.33116-19-akihiko.odaki@daynix.com>\n>\n>> +static registers_init(int vcpu_index)\n>> +{\n>> +    GPtrArray *registers = g_ptr_array_new();\n>> +    g_autoptr(GArray) reg_list = qemu_plugin_get_registers(vcpu_index);\n>> +\n>> +    if (reg_list && reg_list->len) {\n>> +        /*\n>> +         * Go through each register in the complete list and\n>> +         * see if we want to track it.\n>> +         */\n>> +        for (int r = 0; r < reg_list->len; r++) {\n>> +            qemu_plugin_reg_descriptor *rd = &g_array_index(\n>> +                reg_list, qemu_plugin_reg_descriptor, r);\n>\n> riscv csrs are not continously numbered and the dynamically generated gdb xml\n> seems to follow that scheme.\n> So the calls to Glib string functions output quite a few assertion\n> warnings because for the non existing csrs rd->name is NULL (and there\n> are a bit less than 4000 such cases for rv64g).\n> Checking for NULL and then continue is a simple way to solve the issue, but\n> I am not sure this is the proper way to proceed, as it might stand in the\n> generation of the riscv xml description for gdb.\n\nI think in this case it might be easier to not expose it to the plugin\nuser at all. Is the lack of names an omission? How does gdb see them?","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=Nzm10UBh;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4T9kRC1nq6z1yPt\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 11 Jan 2024 23:25:59 +1100 (AEDT)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1rNu7D-00086p-Nx; Thu, 11 Jan 2024 07:24:55 -0500","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <alex.bennee@linaro.org>)\n id 1rNu79-00085E-M7\n for qemu-devel@nongnu.org; Thu, 11 Jan 2024 07:24:51 -0500","from mail-wr1-x436.google.com ([2a00:1450:4864:20::436])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <alex.bennee@linaro.org>)\n id 1rNu72-0002Ym-86\n for qemu-devel@nongnu.org; Thu, 11 Jan 2024 07:24:48 -0500","by mail-wr1-x436.google.com with SMTP id\n ffacd0b85a97d-3374eb61cbcso4742606f8f.0\n for <qemu-devel@nongnu.org>; Thu, 11 Jan 2024 04:24:40 -0800 (PST)","from draig.lan ([85.9.250.243]) by smtp.gmail.com with ESMTPSA id\n p19-20020adf9d93000000b003378ea9a7desm303358wre.33.2024.01.11.04.24.39\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 11 Jan 2024 04:24:39 -0800 (PST)","from draig (localhost [IPv6:::1])\n by draig.lan (Postfix) with ESMTP id F36AA5F7AD;\n Thu, 11 Jan 2024 12:24:38 +0000 (GMT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1704975880; x=1705580680; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:user-agent\n :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=A1RkaaWOJSu3tRt3fMogcSn7L2SZU/h+k8yCADoRVlk=;\n b=Nzm10UBhRRiOy1ikGXyY0mur8k+jy0DCPeqqTOd3zdGD85tA9GhNugh0nxRJ0TNIJT\n ZWO1IR41hpTbn4LJTZDap8r4J0UgzBj8B5AFxR/BBlFyUwhNYWLq7gzOrh6xsGqcf/5U\n 8xwRPf3xD4BGp/SZuBqdzNYkvZmQEKcXYT+d7kEn/lIfvFsIxQkodS//V3DWMBhz8Hj8\n N4gyRGgY42qmO/2EIO8l55lHbJlBGEzmE/lFXX2ozQr6NAEahy3pSVIDzndyaE3i9rq4\n 24B7DH1aNHK8MD5PmtJhcDKKV2eQ/tPgT9XbiFlLOPZ3pdcHRjY3AbEk/D+mMSqDUSvY\n hxCA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1704975880; x=1705580680;\n h=content-transfer-encoding:mime-version:message-id:date:user-agent\n :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=A1RkaaWOJSu3tRt3fMogcSn7L2SZU/h+k8yCADoRVlk=;\n b=rD637TAPwGqZMLZNP1HmJzIxNKAgX9tUTxC4FjAZPr5RcpY8WMd6piwFe0wtfR3Ovi\n 0jxEqXNbnh+81IrCT4ohMcEXEshmkD9hzttXqikRZGQy75kfXVzYMB/+tKHr9jmQoByT\n AOfVSA6OA8B2f0B5z1Bm7s2dC9HbilnAUtRf/euLl2uZqWpyHDpyqCcClX67Y+bGw20S\n 3wfdt1Mwg3bali2nLUYGudNBt8vVlmOyt4n0bbZ43rvGCS5Iip5udQZg8TH4os1kJxoY\n z4xGX4+Oz380fZEXxwbewGoUOJm0GmEeHuEaK+6F6NbFrzydS47QTnnlSwD8QJpm7dhN\n e0SQ==","X-Gm-Message-State":"AOJu0Yy3sGTQWLcnTfeBT9Z3Tz/c7IIZM6oIv8G1RsbgxyZOpASLBcCr\n 3CFlei21wq47JRO31nkPVMMI1a43I9Vcgg==","X-Google-Smtp-Source":"\n AGHT+IEqJmabPEzUTHGU1RLVecC2ffwvZaKXWABKkEz3S4ahDb+PVctSP5LR9cXaQbb+fPNjjPq6rg==","X-Received":"by 2002:a5d:4b4e:0:b0:336:6db3:1d7a with SMTP id\n w14-20020a5d4b4e000000b003366db31d7amr644820wrs.103.1704975879726;\n Thu, 11 Jan 2024 04:24:39 -0800 (PST)","From":"=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>","To":"=?utf-8?b?RnLDqWTDqXJpYyBQw6l0cm90?=\n <frederic.petrot@univ-grenoble-alpes.fr>","Cc":"qemu-devel@nongnu.org,  qemu-s390x@nongnu.org,  qemu-ppc@nongnu.org,\n Richard Henderson <richard.henderson@linaro.org>,\n  Song Gao <gaosong@loongson.cn>,\n  =?utf-8?q?Marc-Andr=C3=A9?= Lureau <marcandre.lureau@redhat.com>,\n David Hildenbrand <david@redhat.com>,  Aurelien Jarno <aurelien@aurel32.net>,\n  Yoshinori Sato <ysato@users.sourceforge.jp>,\n Yanan Wang <wangyanan55@huawei.com>,  Bin Meng <bin.meng@windriver.com>,\n Laurent Vivier <lvivier@redhat.com>,  Michael Rolnik <mrolnik@gmail.com>,\n Alexandre Iooss <erdnaxe@crans.org>,  David Woodhouse <dwmw2@infradead.org>,\n  Laurent Vivier <laurent@vivier.eu>,  Paolo Bonzini <pbonzini@redhat.com>,\n  Brian Cain <bcain@quicinc.com>,\n  Daniel Henrique Barboza <danielhb413@gmail.com>,\n  Beraldo Leal <bleal@redhat.com>,  Paul Durrant <paul@xen.org>,\n  Mahmoud Mandour <ma.mandourr@gmail.com>,  Thomas Huth <thuth@redhat.com>,\n  Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Cleber Rosa <crosa@redhat.com>,\n  kvm@vger.kernel.org,  Peter Maydell <peter.maydell@linaro.org>,\n  Wainer dos Santos Moschetta <wainersm@redhat.com>,  qemu-arm@nongnu.org,\n  Weiwei Li <liwei1518@gmail.com>,\n  Philippe =?utf-8?q?Mathieu-Daud=C3=A9?= <philmd@linaro.org>,\n  John Snow <jsnow@redhat.com>,\n  Daniel Henrique Barboza <dbarboza@ventanamicro.com>,\n  Nicholas Piggin <npiggin@gmail.com>,  Palmer Dabbelt <palmer@dabbelt.com>,\n  Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,\n  Ilya Leoshkevich <iii@linux.ibm.com>,\n =?utf-8?q?C=C3=A9dric?= Le Goater <clg@kaod.org>,\n  \"Edgar E. Iglesias\" <edgar.iglesias@gmail.com>,\n  Eduardo Habkost <eduardo@habkost.net>,\n Pierrick Bouvier <pierrick.bouvier@linaro.org>,  qemu-riscv@nongnu.org,\n Alistair Francis <alistair.francis@wdc.com>,\n  Akihiko Odaki <akihiko.odaki@daynix.com>","Subject":"Re: [PATCH v2 40/43] contrib/plugins: extend execlog to track\n register changes","In-Reply-To":"<9f9b8359-d33b-4c94-8eb1-fc500d8fc2b4@univ-grenoble-alpes.fr> (\n\t=?utf-8?b?IkZyw6lkw6lyaWMgUMOpdHJvdCIncw==?= message of \"Fri,\n 5 Jan 2024 11:40:07 +0100\")","References":"<20240103173349.398526-1-alex.bennee@linaro.org>\n <20240103173349.398526-41-alex.bennee@linaro.org>\n <9f9b8359-d33b-4c94-8eb1-fc500d8fc2b4@univ-grenoble-alpes.fr>","User-Agent":"mu4e 1.11.27; emacs 29.1","Date":"Thu, 11 Jan 2024 12:24:38 +0000","Message-ID":"<87o7dsf46x.fsf@draig.linaro.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","Received-SPF":"pass client-ip=2a00:1450:4864:20::436;\n envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x436.google.com","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,\n T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}},{"id":3245406,"web_url":"http://patchwork.ozlabs.org/comment/3245406/","msgid":"<e61e8c50-e09c-4d2b-9d24-467018b62e55@univ-grenoble-alpes.fr>","list_archive_url":null,"date":"2024-01-11T14:10:50","subject":"Re: [PATCH v2 40/43] contrib/plugins: extend execlog to track\n register changes","submitter":{"id":82436,"url":"http://patchwork.ozlabs.org/api/people/82436/","name":"Frédéric Pétrot","email":"frederic.petrot@univ-grenoble-alpes.fr"},"content":"Le 11/01/2024 à 13:24, Alex Bennée a écrit :\n> Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr> writes:\n> \n>> Hello Alex,\n>>\n>>    just reporting below what might be a riscv only oddity (also applies to\n>>    patch 41 but easier to report here).\n>>\n>> Le 03/01/2024 à 18:33, Alex Bennée a écrit :\n>>> With the new plugin register API we can now track changes to register\n>>> values. Currently the implementation is fairly dumb which will slow\n>>> down if a large number of register values are being tracked. This\n>>> could be improved by only instrumenting instructions which mention\n>>> registers we are interested in tracking.\n>>> Example usage:\n>>>     ./qemu-aarch64 -D plugin.log -d plugin \\\n>>>        -cpu max,sve256=on \\\n>>>        -plugin contrib/plugins/libexeclog.so,reg=sp,reg=z\\* \\\n>>>        ./tests/tcg/aarch64-linux-user/sha512-sve\n>>> will display in the execlog any changes to the stack pointer (sp)\n>>> and\n>>> the SVE Z registers.\n>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>\n>>> Cc: Akihiko Odaki <akihiko.odaki@daynix.com>\n>>> Based-On: <20231025093128.33116-19-akihiko.odaki@daynix.com>\n>>\n>>> +static registers_init(int vcpu_index)\n>>> +{\n>>> +    GPtrArray *registers = g_ptr_array_new();\n>>> +    g_autoptr(GArray) reg_list = qemu_plugin_get_registers(vcpu_index);\n>>> +\n>>> +    if (reg_list && reg_list->len) {\n>>> +        /*\n>>> +         * Go through each register in the complete list and\n>>> +         * see if we want to track it.\n>>> +         */\n>>> +        for (int r = 0; r < reg_list->len; r++) {\n>>> +            qemu_plugin_reg_descriptor *rd = &g_array_index(\n>>> +                reg_list, qemu_plugin_reg_descriptor, r);\n>>\n>> riscv csrs are not continously numbered and the dynamically generated gdb xml\n>> seems to follow that scheme.\n>> So the calls to Glib string functions output quite a few assertion\n>> warnings because for the non existing csrs rd->name is NULL (and there\n>> are a bit less than 4000 such cases for rv64g).\n>> Checking for NULL and then continue is a simple way to solve the issue, but\n>> I am not sure this is the proper way to proceed, as it might stand in the\n>> generation of the riscv xml description for gdb.\n> \n> I think in this case it might be easier to not expose it to the plugin\n> user at all. Is the lack of names an omission? How does gdb see them?\n\n   Well, info all-registers in gdb dumps only the subset of cs registers\n   that are defined for the current parameters of the gdbarch.\n   Interestingly enough, riscv_print_registers_info, the function that dumps\n   register values for riscv in gdb, contains the following comment :\n   1385           /* Registers with no name are not valid on this ISA.  */\n   and then a check on the \"nullness\" of the register name to avoid outputting\n   something.\n   I guess we could follow the same path in QEMU, as having access to the csrs\n   in the plugins is really very useful.\n\n   Thanks,\n   Frédéric","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=univ-grenoble-alpes.fr header.i=@univ-grenoble-alpes.fr\n header.a=rsa-sha256 header.s=2020 header.b=uRM70xEN;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4T9mnX5wC0z1yPt\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 12 Jan 2024 01:12:00 +1100 (AEDT)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1rNvm6-0007sw-My; Thu, 11 Jan 2024 09:11:14 -0500","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1)\n (envelope-from <frederic.petrot@univ-grenoble-alpes.fr>)\n id 1rNvm1-0007qi-41; Thu, 11 Jan 2024 09:11:09 -0500","from zm-mta-out-3.u-ga.fr ([152.77.200.56])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1)\n (envelope-from <frederic.petrot@univ-grenoble-alpes.fr>)\n id 1rNvlv-00038O-GS; Thu, 11 Jan 2024 09:11:08 -0500","from mailhub.u-ga.fr (mailhub-1.u-ga.fr [129.88.178.98])\n by zm-mta-out-3.u-ga.fr (Postfix) with ESMTP id EB31C4021B;\n Thu, 11 Jan 2024 15:10:54 +0100 (CET)","from smtps.univ-grenoble-alpes.fr (smtps2.u-ga.fr [152.77.18.2])\n by mailhub.u-ga.fr (Postfix) with ESMTP id C814E10005A;\n Thu, 11 Jan 2024 15:10:54 +0100 (CET)","from [192.168.1.62] (35.201.90.79.rev.sfr.net [79.90.201.35])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n (Authenticated sender: petrotf@univ-grenoble-alpes.fr)\n by smtps.univ-grenoble-alpes.fr (Postfix) with ESMTPSA id D95DB140052;\n Thu, 11 Jan 2024 15:10:50 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n d=univ-grenoble-alpes.fr; s=2020; t=1704982255;\n bh=x0/ipQPWqSHacSiRBq9fO1VBshIH0+O/MI6pZ6mLI0U=;\n h=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n b=uRM70xENMgTV/yQ6eEl0w02FpOXIAaARMzT/4Z7spRO1DIUK5Onv6y+l3KYEVkkNj\n SZxRY6idytA5McYZCEOFrEj7L6toItAQwTLSarCMbQ4IQdqgBLogdo927jl6O9rRNT\n qvecxcD37DDI+Gx/PQUcA7qCslTcr/bnEablYL58JTZKjNsvhukZ0w6SijGRsvUy/V\n KuRVu6FDmWW4oOgj/WxqlhCpWkfMxj4xGFMj89VyJoMJxG0F4jLZCA3M0e/89nik1T\n 2xHJ2ZqRLP+6XgvNMf8At6oFhmXryXjzewcUAiIYyAqaHU8vPf2GuwSIx9Mf+JX/qd\n 5qyCNxNqEEUtg==","Message-ID":"<e61e8c50-e09c-4d2b-9d24-467018b62e55@univ-grenoble-alpes.fr>","Date":"Thu, 11 Jan 2024 15:10:50 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 40/43] contrib/plugins: extend execlog to track\n register changes","Content-Language":"fr, en-US","To":"=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>","Cc":"qemu-devel@nongnu.org, qemu-s390x@nongnu.org, qemu-ppc@nongnu.org,\n Richard Henderson <richard.henderson@linaro.org>,\n Song Gao <gaosong@loongson.cn>,\n =?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>,\n David Hildenbrand <david@redhat.com>, Aurelien Jarno <aurelien@aurel32.net>,\n Yoshinori Sato <ysato@users.sourceforge.jp>,\n Yanan Wang <wangyanan55@huawei.com>, Bin Meng <bin.meng@windriver.com>,\n Laurent Vivier <lvivier@redhat.com>, Michael Rolnik <mrolnik@gmail.com>,\n Alexandre Iooss <erdnaxe@crans.org>, David Woodhouse <dwmw2@infradead.org>,\n Laurent Vivier <laurent@vivier.eu>, Paolo Bonzini <pbonzini@redhat.com>,\n Brian Cain <bcain@quicinc.com>,\n Daniel Henrique Barboza <danielhb413@gmail.com>,\n Beraldo Leal <bleal@redhat.com>, Paul Durrant <paul@xen.org>,\n Mahmoud Mandour <ma.mandourr@gmail.com>, Thomas Huth <thuth@redhat.com>,\n Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Cleber Rosa <crosa@redhat.com>,\n kvm@vger.kernel.org, Peter Maydell <peter.maydell@linaro.org>,\n Wainer dos Santos Moschetta <wainersm@redhat.com>, qemu-arm@nongnu.org,\n Weiwei Li <liwei1518@gmail.com>,\n =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,\n John Snow <jsnow@redhat.com>,\n Daniel Henrique Barboza <dbarboza@ventanamicro.com>,\n Nicholas Piggin <npiggin@gmail.com>, Palmer Dabbelt <palmer@dabbelt.com>,\n Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,\n Ilya Leoshkevich <iii@linux.ibm.com>,\n =?utf-8?q?C=C3=A9dric_Le_Goater?= <clg@kaod.org>,\n \"Edgar E. Iglesias\" <edgar.iglesias@gmail.com>,\n Eduardo Habkost <eduardo@habkost.net>,\n Pierrick Bouvier <pierrick.bouvier@linaro.org>, qemu-riscv@nongnu.org,\n Alistair Francis <alistair.francis@wdc.com>,\n Akihiko Odaki <akihiko.odaki@daynix.com>","References":"<20240103173349.398526-1-alex.bennee@linaro.org>\n <20240103173349.398526-41-alex.bennee@linaro.org>\n <9f9b8359-d33b-4c94-8eb1-fc500d8fc2b4@univ-grenoble-alpes.fr>\n <87o7dsf46x.fsf@draig.linaro.org>","From":"=?utf-8?b?RnLDqWTDqXJpYyBQw6l0cm90?=\n <frederic.petrot@univ-grenoble-alpes.fr>","Autocrypt":"addr=frederic.petrot@univ-grenoble-alpes.fr; keydata=\n xsDiBEzGfDQRBACnR+QhOOA6gstLMoL8vexXgQ/shw+w6zEsACrydiwCrAXMOQfyozlXyGYf\n XBO0cf4RKMh51NLdgntJbYlOoFalY7iGRwo8U64iy8kHBcXlfdFYGrYFbFYervlMwXoY89D6\n 02uMzWK/UossWWWX2PkqfBenmYd0zk+JwghTwY8MVwCgtr1Z52ZRv8vPA7ZLn4WSJLC/qv0D\n /1hBIaSsCAT/nO78oFZq9hzY51GsmiBT88hTofCma2PIotJT9qocJglgqzA9B+2ja4bgXJ1f\n 0WFlvxyLTjga8jJ/lcdNpAGi13sFEhP6nyi2Zh2hFhrXlTPH+VtdnjTHSnzK23eLphZJv031\n SxCqEYT6pgJPwwHIWOHyeDZq0ORdA/4+2U4eYUhCGfi9u60L3zRDzUVULScq3vXah1ak1yBs\n Nxz/F1iMYVBUmp4SGSM6XFxVwvJxvSRPD+4zXIkr7+MfIheiXbiSzNoZdH3AwaAK6jGxhfWb\n f8Jm8KuLvGkR2QaS7QT+rhhv0OLEhVBMmm8EXZpsrOV3ZVmE934+WoRDd807RnLDqWTDqXJp\n YyBQw6l0cm90IDxmcmVkZXJpYy5wZXRyb3RAdW5pdi1ncmVub2JsZS1hbHBlcy5mcj7CeAQT\n EQIAOBYhBGyr6EloIPZXrmtYU0QWC1i+uhtgBQJa/b5sAhsDBQsJCAcCBhUKCQgLAgQWAgMB\n Ah4BAheAAAoJEEQWC1i+uhtgNooAnjAwrIMPDJ+mQr1svgh9+NFFZBUWAJwONXxE5DrxP9OV\n R0tsDROd3EbvXs7BTQRMxnw0EAgA8XI4FU6LH2NryyrydYoopZfixTvfS3rra8Q3UN+eHvuG\n jM4+oebZO+ZZ6KtdGj/RDpXtn0KW6SdFynKuLS5obLx8GGfq1tj5KGep14kr1/BRp3xTqKE+\n rleeWvR1fGXryJhxIV/AQ/tY2Le1ExsgLbD5dbPQKJhpQUlScz6Y1U2UsyxnMV4c7PlCNNb9\n 1ZWfxPN8c/w8XBSZDaE5UcBmxYxH9959yte9hsczuzqbMgiGa0DCN+iIgsQOYtD2csDxVQUL\n vxtD530vdTB32tdlmcumIgZCH4X7RyLhdbv1Xj6gcZ9InGf2tRLHbnd0/uPY6qTX/5teXQ7g\n 0xzVlvcWQwADBggAvXpFpXACegDPqglkroyA8+LQWNyumsFtcrlAc9mcC5WwDBqNsSeCbGcx\n TXsUckRAC3DpJkzKLbBsFki4fcYEx3tjfJGkknxInPYmOIlKRinSnIMS0qFqXdy37w7vPhqv\n KMLwbeHYronnGUAW0Z//ZXZZTl1KbEeKOEXK2dyE0aLUtoWj/aLwM1c2zuJCctI38GENtRC6\n qaqFzCHKTqxjl7aL1LILSvKQ1sZGKdKjApw5KLoKnk6WbspFIfgIirXoC2gRo/lhhd1ctVZK\n IptiyHp7dw2Rr6TEzjy+Z/rDHVf9lGCzUkMDJHm5XQB8+f/Va5kddgZ9gznRo17IPvR0jcJJ\n BBgRAgAJBQJMxnw0AhsMAAoJEEQWC1i+uhtgg90An139WxG/GTGPRFVQCaxQRkycFiI3AJ40\n aR3/xWYMOEUWfcXpCS8dzPbdDA==","In-Reply-To":"<87o7dsf46x.fsf@draig.linaro.org>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","X-Greylist":"Whitelist-UGA SMTP Authentifie (petrotf@univ-grenoble-alpes.fr)\n via submission-587 ACL (42)","Received-SPF":"pass client-ip=152.77.200.56;\n envelope-from=frederic.petrot@univ-grenoble-alpes.fr;\n helo=zm-mta-out-3.u-ga.fr","X-Spam_score_int":"-43","X-Spam_score":"-4.4","X-Spam_bar":"----","X-Spam_report":"(-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001,\n SPF_HELO_NONE=0.001, SPF_PASS=-0.001,\n T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}}]