From patchwork Wed Dec 22 19:05:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Sistare X-Patchwork-Id: 1572326 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oracle.com header.i=@oracle.com header.a=rsa-sha256 header.s=corp-2021-07-09 header.b=u6+EsmaW; dkim=pass (1024-bit key; unprotected) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-oracle-onmicrosoft-com header.b=Uy1i2JV1; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JK3rs0f4gz9s3q for ; Thu, 23 Dec 2021 06:52:45 +1100 (AEDT) Received: from localhost ([::1]:51376 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n07fG-0005Eh-ST for incoming@patchwork.ozlabs.org; Wed, 22 Dec 2021 14:52:42 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55544) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n07V7-0004aw-QE for qemu-devel@nongnu.org; Wed, 22 Dec 2021 14:42:13 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:14728) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n07V4-0008Kn-K4 for qemu-devel@nongnu.org; Wed, 22 Dec 2021 14:42:13 -0500 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BMJXsAa013618; Wed, 22 Dec 2021 19:42:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=75zZ/yjfc+FBxgEI3tCsey3+RfhAFPqgNxlIO52HzAY=; b=u6+EsmaWcRQVzSrSXEnR4fyyhuLHlX+9smMRaZVq70Fjy5iGycpryBsBOrF+GpaK+MIK yF+tFVGYgmDQRRgT2xIWoE1VFRzjyIHkg2mRds1WywV/2+MEeZj7vvfBDZ6SYqfmxbn8 fDmJ5FAmKlLsmXrduVL5Uqf3pzanVmBtSxx6aZGkpKh9Dp4le4ABmwmLq8aP83e2pAMZ inxtNCpWhAz3ebkZUgZnAJYXqozWTb9gg9yy2km95RAWS5RWMWEtSXMN8pqvL6W4ggiy ZFd34pROvfEM8MNChiChtkVu9RgSFkHZFpqeYORlc0S8Vkpgf/w66srbtkONY3LxcGVp SA== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3d46rm0tkf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 22 Dec 2021 19:42:05 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1BMJfCEx049078; Wed, 22 Dec 2021 19:42:04 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2171.outbound.protection.outlook.com [104.47.55.171]) by aserp3020.oracle.com with ESMTP id 3d17f5rftb-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 22 Dec 2021 19:42:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lnhw3N7T57mZZN3UWfQEGbhvixLfzF+5vte7nbrcw+r4R6Hz0E/c+ugDZxGPrXz3wG1lbzJ1l7LKdVzHrAUTy8R0PNFdpg4hT6kldUU/kFsqFOssWx3EshVT2lERmqKv/EGZiNa1HWqzWfk/teoTF0jc1fwGUdcM8QexXo8IbIczKi0e/fLF19j6F0s5qaqPux2CeJztMBg6ahkFowdqszFv2eYI7eAThXNVdkFqtT6sRYWSkzYBTvTNAwIE6wM3byP+3ocRsyFcOdUyBArQ3gSGcxWgOj7Wgw3Oj1JI6LoyepfrQz0WyQaegBdPQ6jAMl807Ufkd4ylEeV35qbQnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=75zZ/yjfc+FBxgEI3tCsey3+RfhAFPqgNxlIO52HzAY=; b=bBWRsM/jfAHP0KK7xaULaTeOhBz2AYIcP1wzN6mG7RXqOxv4d12sCmLHnBJHCGwe+avvxfVfFkriy2508Zfb9s9va3Wlop6tt86ut6/jOFwdd7VnsY6D4tQyfwiHbnhMb1zqJT8R/Gecp/VPZBRx/9p2UvfYlpHx+BK2jbyv6UZtSyjXVfwl5LWMSWkrzeA7rId7SF1Ir0vFCWd5y9qirq2BuNjDAFI+CeJrWT89EPyUzXOMkhG+O5gWWip1dqHjgjGpIbeA0KzYanbY+hRhslbz1Lr8S9PLje5uC7TCcXt3kxZmL2gfvbk78v2YtoQ4wChVMUoyHElSJrnlrC73DQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=75zZ/yjfc+FBxgEI3tCsey3+RfhAFPqgNxlIO52HzAY=; b=Uy1i2JV1xZliwhlVBki/kbkw7H8c8d6phx86t031sf+/yqdYpZ0k+oSFeCbIyniPo/5Wr22vLBavxAfU2LLIWID/UaAvTZUP3JMgAmXWlzc371fBSY+U7StuEAi12kzazeaLIljbaaYYOyOHilnAMv+9czzmgcwFr7Xl8DGIIDc= Received: from BYAPR10MB3240.namprd10.prod.outlook.com (2603:10b6:a03:155::17) by BY5PR10MB3746.namprd10.prod.outlook.com (2603:10b6:a03:1b5::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.16; Wed, 22 Dec 2021 19:42:01 +0000 Received: from BYAPR10MB3240.namprd10.prod.outlook.com ([fe80::d91d:1a8b:56bd:6623]) by BYAPR10MB3240.namprd10.prod.outlook.com ([fe80::d91d:1a8b:56bd:6623%4]) with mapi id 15.20.4801.020; Wed, 22 Dec 2021 19:42:01 +0000 From: Steve Sistare To: qemu-devel@nongnu.org Subject: [PATCH V7 12/29] vl: helper to request re-exec Date: Wed, 22 Dec 2021 11:05:17 -0800 Message-Id: <1640199934-455149-13-git-send-email-steven.sistare@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1640199934-455149-1-git-send-email-steven.sistare@oracle.com> References: <1640199934-455149-1-git-send-email-steven.sistare@oracle.com> X-ClientProxiedBy: SJ0PR13CA0196.namprd13.prod.outlook.com (2603:10b6:a03:2c3::21) To BYAPR10MB3240.namprd10.prod.outlook.com (2603:10b6:a03:155::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 20385d3e-1f6f-443b-644c-08d9c5831f87 X-MS-TrafficTypeDiagnostic: BY5PR10MB3746:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:108; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sD34zostAiWWdgp+6uvH0/uZ5gJXK4LII4FYIPq5S1eDYV8tg9UMnPkzE7RNPh+YUrbgRFqGBxg73l9w8vllwM7618NbQ1aRkpYPzOR7ObLbXu5Ep+BuWPu8lTlntnQwZszSdu13vhiaayDvBJ3+JhZpNojS3DJ/H5kuacEpAxxcQVR3aPYRksbKsO2N9zD16NhAn2t1XA4AlZQJAYPqNWQWST9tT0zKogZKxo8Qppl87uYTSBhId4tM74jlLL5KmO+TjNMUdIUDRH4eSW9AURUY7ugcI6aLKBytnsN1maWNgNaT2IP0ttwk7Gm2rWX6PCl67ANsCP0/GcDjLjUWXtyMwH35C0VE0I3+21d2lBP2OZYZTLiXPhwuefGsx+oLt7JolbIeZqoFcPXnQ1ji6y+daj6mYQZUSJR7opnGh3WqNMsG6/Dl9Dm35XkarmRd07nOnHqqHyaXsZS22538Wgmed/soPKv6jMtD/LJdmNLxKd8PMfRC234+KYjDMlsKyna61bN++PLTPucaA/XBU/FvkaZRhlAZOcz+2eH4CU1CTo77iqmSCiby5CiEC1f62F3Aih5gcLTzGPi42Qyfh9M7ppNp09ZjItv0w2SpY0F4LON3yzOn494LpNjFb0tfw4Youdxab0FtbjEZ8MADi7RhQDf7OQlzgSz97MLH5LvOA4Upgu1e766lp/6hiyk8fa+lnfdF0p/9LYpt8zZMWw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR10MB3240.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(66556008)(66946007)(66476007)(508600001)(83380400001)(38350700002)(38100700002)(4326008)(2616005)(52116002)(107886003)(5660300002)(36756003)(186003)(2906002)(8936002)(7416002)(8676002)(6486002)(26005)(86362001)(54906003)(6666004)(6916009)(6512007)(316002)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: pRg9n9vmOg2mudz4Kpnz5vvHffljcJe/NmOJ1pFNLRMEZRDkl8U2Iy0VnRgT5Heg+4bNWRhMA6jiYKzjx+9UfrFANlgy1cK0XA1td0i3dVOJYECWNTP/9Ub20GicRUVQIwvNlv9kTRh2GQhyTtubRu/0Q+zr4Z1wNA/IZNTKoG8N+Xu65lEilXP2p6Jly0aVq7WICFgjjVg6SKkUEm8BKBnfE5z8+QiicQdi84TF5hx5rxeWlFaDkACNr78ROc90N6rawWyk6IwlypXn4AYP0TPtmy2gUL0JCVRg8I21opnvTF9Ci1ceSZwk7m4pk0MlQb8qkHGOheMfxjJp1cH2kzXy2eOVWUrqZXMEI0+8p3VwlHWcr07XCjG7MpUqiBJ99RNWp9KQLHSSuS7org/5m9LA62xFBbUsB8CRJ6If9fiLeuqXBvZ0CasPhf70GHwHSQTVTG1VH5hrkjZTkEKZFuPixBgGaLTQA8YYlc8rX3N3yRsH3eoqlINcxN4fr/r6XJQlldEeOEcsg9LHoFvibdg02YV10wd8sP/2L6Lmr6OoHRpPt9wr5SXmYNfeGLVSFCo67pikyzrHgkykVh1+jH+/Tkn0J6AMCs8aWyZQFdG1hpMDDqtyOR4368nTHi9tSrU5DXu41/mx3oNh3o+WHaosrAoC7THnEP7NNZEn8VwxfrwiagZX8YsSuzTsaT1gyV88OIAah8UEWOwWZ8kDUp4PvSZcySKzNKQwacvPizqxHUTxhnwaoiN8sBeoXHd45IuxC0FRPO7yxP5ylarC79u0NNxiOeZiOxKSU+dGUDIfkt4b/ROc6ofyHVnYm5/OjjQCBm8Cv6ImK2kwaEn+hoASrcUmnUfbKIsPpZV7K6WvlNme/cRhqPPArdOFo3z7b1jpHfZXSbMIsK5syojD25KcsJeVOM7y2wXOO0flEdSmUXKRGMIVew1RLT7ApLtt1OlS05y0yvIM5x+a9UB7WqPH6xv4oDt76Dpfozqk5J6uTr6cW0nuqUaQKimpjgqpjZO+dEg5BARVB01OJwGfe7Lu0sTL72r8Og+Dbs7R/XbdWAbQa90EuldnOCj0TCjVZmzfklyUfrrb7yUWZ1+P2KDVJyr7ez1I8X3MFbGXmMKtO7sya2r8bW3fZK0HEwiy1w3ME/LacKNkNbwVMmruOtLEu0PIsl/lJZGbyhmbwb0E5lafY0QUDRYLcE8IflYVtjGhRgUX438p9GHU6OT3STg1HuPx8i9tZ6zwPVqF6o50szQVOrHkXo9UUAe682ARThwZozjbjQZlDBy4ougYOjmgf/Yq3Lmso1bztOoKkyDcb1sl1mEVowtthLV6SmeTmHp7AG+tdHzgmV9SQEUbbWDqwfmRWZV2k6OWkX7Yt20y2rIl35JJeNNyl/i9r0BdF6IGuMPcBtgU7KM6EF4+RDjuTT/PQte/FLZ8ZjmN78dOziuZ4V1huSFL7KtN/T64aZ0or5EY/mpz386NbRYmvP9vLir9+K0sEhFFFq6w9jV9l90k7+ZxL5b4buCT3T/PV+MH1A6HzmQNcA0ll4kMAQxVvzHIi2EDxIQO30qQvWUkiHZBmnYjFFEHitn8ff4oHic/8+i9Cfd653xuZ5ZKqUZ1VyGoFdnInECMWcnU8HvyJWGvy4E44t2mgVvnoSXtHvlKXQw50aH634Cf5WSEKA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20385d3e-1f6f-443b-644c-08d9c5831f87 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3240.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Dec 2021 19:42:01.1240 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: c0WTCX2IE/vFC5nw9OiBXORn1fK57yvUrDSmkzEZZaSUiY4ElqlDDCC2KKU6wif09C2ztuSAn/Jr+MmsjXypBsCN9NdmhvjbEL6PI7+CP1w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB3746 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10206 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 malwarescore=0 spamscore=0 phishscore=0 mlxscore=0 bulkscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112220107 X-Proofpoint-GUID: fN7Io5OyRsvEslpXSdNYOh57C6GugG6A X-Proofpoint-ORIG-GUID: fN7Io5OyRsvEslpXSdNYOh57C6GugG6A Received-SPF: pass client-ip=205.220.177.32; envelope-from=steven.sistare@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Daniel P. Berrange" , "Michael S. Tsirkin" , Jason Zeng , =?utf-8?q?Alex_Benn=C3=A9e?= , Juan Quintela , "Dr. David Alan Gilbert" , Eric Blake , Markus Armbruster , Zheng Chuan , Alex Williamson , Steve Sistare , Stefan Hajnoczi , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Paolo Bonzini , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Add a qemu_system_exec_request() hook that causes the main loop to exit and re-exec qemu using the specified arguments. Signed-off-by: Steve Sistare --- include/sysemu/runstate.h | 1 + softmmu/runstate.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/include/sysemu/runstate.h b/include/sysemu/runstate.h index b655c7b..198211b 100644 --- a/include/sysemu/runstate.h +++ b/include/sysemu/runstate.h @@ -57,6 +57,7 @@ void qemu_system_wakeup_enable(WakeupReason reason, bool enabled); void qemu_register_wakeup_notifier(Notifier *notifier); void qemu_register_wakeup_support(void); void qemu_system_shutdown_request(ShutdownCause reason); +void qemu_system_exec_request(const strList *args); void qemu_system_powerdown_request(void); void qemu_register_powerdown_notifier(Notifier *notifier); void qemu_register_shutdown_notifier(Notifier *notifier); diff --git a/softmmu/runstate.c b/softmmu/runstate.c index 3d344c9..309a4bf 100644 --- a/softmmu/runstate.c +++ b/softmmu/runstate.c @@ -38,6 +38,7 @@ #include "monitor/monitor.h" #include "net/net.h" #include "net/vhost_net.h" +#include "qapi/util.h" #include "qapi/error.h" #include "qapi/qapi-commands-run-state.h" #include "qapi/qapi-events-run-state.h" @@ -355,6 +356,7 @@ static NotifierList wakeup_notifiers = static NotifierList shutdown_notifiers = NOTIFIER_LIST_INITIALIZER(shutdown_notifiers); static uint32_t wakeup_reason_mask = ~(1 << QEMU_WAKEUP_REASON_NONE); +static char **exec_argv; ShutdownCause qemu_shutdown_requested_get(void) { @@ -371,6 +373,11 @@ static int qemu_shutdown_requested(void) return qatomic_xchg(&shutdown_requested, SHUTDOWN_CAUSE_NONE); } +static int qemu_exec_requested(void) +{ + return exec_argv != NULL; +} + static void qemu_kill_report(void) { if (!qtest_driver() && shutdown_signal) { @@ -641,6 +648,13 @@ void qemu_system_shutdown_request(ShutdownCause reason) qemu_notify_event(); } +void qemu_system_exec_request(const strList *args) +{ + exec_argv = strv_from_strList(args); + shutdown_requested = 1; + qemu_notify_event(); +} + static void qemu_system_powerdown(void) { qapi_event_send_powerdown(); @@ -689,6 +703,13 @@ static bool main_loop_should_exit(void) } request = qemu_shutdown_requested(); if (request) { + + if (qemu_exec_requested()) { + execvp(exec_argv[0], exec_argv); + error_report("execvp %s failed: %s", exec_argv[0], strerror(errno)); + g_strfreev(exec_argv); + exec_argv = NULL; + } qemu_kill_report(); qemu_system_shutdown(request); if (shutdown_action == SHUTDOWN_ACTION_PAUSE) {