From nobody Tue Sep 22 09:01:08 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1783842134; cv=none; d=zohomail.com; s=zohoarc; b=LCkhnPAfiUo4syZN1tIky8dTydVzhTgybD9qcl/UnRyahsAOKvH1BI4+tXSeTBlOmXkeWXigEfS5ICVGIIKQDOSNKOUQ+WwsD2eaColfxHR3L1EQD8FkZterTMqiJWZcv7TexHNJ3vYJ62bzOSeyOwLginbzxrYlStLYydA3zKk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783842134; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=/cZO1BHWYWelpxuvwm3vpovDoTUqP59SCUJ1TkDm0uw=; b=XY2/t0s4hPcB1cRRJOW8HagdfhI+d3sYTHHvE9GREApGiQEBW5p2x1HBFUQ1RwkcqTMXEZhgQx0XEIEccHuvOu85kYmtH8xkIQBjjzP2RV3y22AFgGvwHoW4Zmag7+C7s7OtAkY9vcm920b4AeLL7C8ed85DcPkrECWukbAw17M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1783842134739146.18464897630145; Sun, 12 Jul 2026 00:42:14 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 2960341C9A; Sun, 12 Jul 2026 03:42:12 -0400 (EDT) Received: from [172.19.199.10] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 8F65141E66; Sun, 12 Jul 2026 03:38:42 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 7A70C41BB4; Sun, 12 Jul 2026 03:38:00 -0400 (EDT) Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 08D4A41D86 for ; Sun, 12 Jul 2026 03:36:29 -0400 (EDT) Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-c15ca7a7ca9so216081566b.0 for ; Sun, 12 Jul 2026 00:36:28 -0700 (PDT) Received: from tulp.my.domain (2001-1c02-1a15-3000-ee82-4536-a8f2-9e22.cable.dynamic.v6.ziggo.nl. [2001:1c02:1a15:3000:ee82:4536:a8f2:9e22]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15cfac0f76sm646490466b.33.2026.07.12.00.36.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jul 2026 00:36:27 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783841788; x=1784446588; darn=lists.libvirt.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=/cZO1BHWYWelpxuvwm3vpovDoTUqP59SCUJ1TkDm0uw=; b=szR00yNLAE4beKqT4rDsfGBK90OnIxjmlVIi3bTzEYsNuIFtPQwt4TffLwD9cxYESt 2e7TeJ9OoGaE6+WQVaONDlf0viB3eHQVgY6MG0wnsF6JnzUPGphbqOmdREiH8WoDbWmC 4a1Ivn7HYGwvgZggG4XERJ/EwA1aYB1CMJmXfHX3gf06hgNVPGX3vdenImam5kaGFwhR G8B6mlY3KbKudQ9GybFEXJwnFF+masamOG5QyAkcheD+4Znf/o8JY8zSzMFRo/jIV5Gq qsAU/R7S7Jj/x9cHOp33fSTKFkTJ7BuMtCkZ/dJr0qF5zG1aDNdHgdBXwW9zomgvXzc/ MvGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783841788; x=1784446588; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=/cZO1BHWYWelpxuvwm3vpovDoTUqP59SCUJ1TkDm0uw=; b=DuLBiNomBjN3tV+ibGgbov+kikqhGX8gusRDJrp6lry2d7Hs5frkxaZQx1jNGK1r+D eJHTFb1xt0Ua1xLmOsAZOQACq8POfzESBf7okzvciQZO/EYegh6RCvxSllp4ngHVCoV7 0kaGxN452lYqSRCVGymgfsWddd7j/BBw9lBCdohFrxC+iSrPI4pqX611/xhCdm9oAnli 2wwL8i9dC/9hI/T1I8YCLefZ2kjYV4kCqljvYGqSvoX4JTtYxVKILrv8dWj8Pyy64aIo sM+uCe2bn0Cvjn3LJFegc065xmZdJuHmKAfmeHAeNgzSc/sdyeyPN+6METyhcZ7i7hPj /HAA== X-Gm-Message-State: AOJu0Yz+nsEYr/lu95JtOh9ZkVan5EHnxLm/Xr+wLAmpm0ueMZ5cB/ux 2EtnLxC8cpBMhv6174OTJIgYH/Eqc/rulGi2TfO9awpOTme91BVR3F5rM/F5QDhr X-Gm-Gg: AfdE7cm9tEToPIoCBtaj5bR4OKFA9rcaJsqzIqHq0A9yhpCE+5bC9jau0EWK0q7tlw0 5paZYaCT9Usfu8z5bJBk023WHrWdJh5fUWfpEJkCgIi93eBr70grbuZHtyVv5uIvvf5XPJ4xKw7 T8vJDoD8IlX2MtqepKNZucyej5kbxd/bQUeEU4Hx22XdcPoW+LuZigG0JH/t0cYpjbvmXIvY6FJ M/QWBRhm7upy2/tWG3fLENDA4hI7OJgoK1JLhkG9KfKVS01aGP5yjuytIYB0zcNf2Ln6QkK1tQB qrlEZHr8zAjuv7FNfGg96NkQILv73D0wwfziqVEdw3Mpu+lVc119zNN4UXIoIDb8UAxECjH1quT iBisUwlzAlYj/3SU4VjP1xB+hjkCEIxm3ZmU7CvTDiaVUy5B3kq0iEF7iwggrkkw6bNkCRU3bmo VmkqZoNQPdBR4bIluBp96KJaCF5tkZJmI7N2xLsNA2IVLt11c9E44M2YRTbXGhEYScKTKw3b4sU hvz0iEHhKZRxzsCRWgLJuQmWUI= X-Received: by 2002:a17:906:9fce:b0:c16:11b2:ae9b with SMTP id a640c23a62f3a-c161e98c3ecmr195973666b.17.1783841787635; Sun, 12 Jul 2026 00:36:27 -0700 (PDT) From: Roman Bogorodskiy To: devel@lists.libvirt.org Subject: [PATCH 2/3] bhyve: monitor: respect on_poweroff / on_reboot settings Date: Sun, 12 Jul 2026 09:36:07 +0200 Message-ID: <20260712073608.6547-3-bogorodskiy@gmail.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260712073608.6547-1-bogorodskiy@gmail.com> References: <20260712073608.6547-1-bogorodskiy@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: TPVZNM7VKSOOJXUVQEDMAPM7GMEHGPOY X-Message-ID-Hash: TPVZNM7VKSOOJXUVQEDMAPM7GMEHGPOY X-MailFrom: bogorodskiy@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Roman Bogorodskiy X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1783842135344158500 Content-Type: text/plain; charset="utf-8" Currently, the bhyve driver respects domain's on_poweroff and on_reboot settings for when shutdown and reboot are triggered via libvirt API. However, they are not respected when the event is triggered within the guest. Address that by updating monitor to execute the configured action. Signed-off-by: Roman Bogorodskiy --- src/bhyve/bhyve_monitor.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/bhyve/bhyve_monitor.c b/src/bhyve/bhyve_monitor.c index 8cf4b41ca3..3be5ae89ad 100644 --- a/src/bhyve/bhyve_monitor.c +++ b/src/bhyve/bhyve_monitor.c @@ -157,12 +157,24 @@ bhyveMonitorIO(int watch, int kq, int events G_GNUC_U= NUSED, void *opaque) } else if (WIFEXITED(status)) { if (WEXITSTATUS(status) =3D=3D 0 || mon->reboot) { /* 0 - reboot */ - VIR_INFO("Guest %s rebooted; restarting domain.", name); - virBhyveProcessRestart(driver, vm); + if (vm->def->onReboot =3D=3D VIR_DOMAIN_LIFECYCLE_ACTION_D= ESTROY || + vm->def->onReboot =3D=3D VIR_DOMAIN_LIFECYCLE_ACTION_P= RESERVE) { + VIR_INFO("Guest %s rebooted; domain on_reboot setting = overridden, shutting down.", name); + virBhyveProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_SHU= TDOWN); + } else { + VIR_INFO("Guest %s rebooted; restarting domain.", name= ); + virBhyveProcessRestart(driver, vm); + } } else if (WEXITSTATUS(status) < 3) { /* 1 - shutdown, 2 - halt, 3 - triple fault. others - erro= r */ - VIR_INFO("Guest %s shut itself down; destroying domain.", = name); - virBhyveProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_SHUTDOW= N); + if (vm->def->onPoweroff =3D=3D VIR_DOMAIN_LIFECYCLE_ACTION= _RESTART || + vm->def->onPoweroff =3D=3D VIR_DOMAIN_LIFECYCLE_ACTION= _RESTART_RENAME) { + VIR_INFO("Guest %s shut itself down; domain on_powerof= f setting overridden, attempting reboot.", name); + virBhyveProcessRestart(driver, vm); + } else { + VIR_INFO("Guest %s shut itself down; destroying domain= .", name); + virBhyveProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_SHU= TDOWN); + } } else { VIR_INFO("Guest %s had an error and exited with status %d;= destroying domain.", name, WEXITSTATUS(status)); --=20 2.52.0