diff options
| author | Richard Henderson <richard.henderson@linaro.org> | 2024-08-01 07:31:49 +1000 |
|---|---|---|
| committer | Richard Henderson <richard.henderson@linaro.org> | 2024-08-01 07:31:49 +1000 |
| commit | e9d2db818ff934afb366aea566d0b33acf7bced1 (patch) | |
| tree | f770f5f28f3ce3d39617693af8b9286b2dfd9776 /tools/i386/qemu-vmsr-helper.c | |
| parent | 4e56e89d6c81589cc47cf5811f570c67889bd18a (diff) | |
| parent | 2a99c2ba822ef9758d739ffdefbe6252520c1719 (diff) | |
| download | focaccia-qemu-e9d2db818ff934afb366aea566d0b33acf7bced1.tar.gz focaccia-qemu-e9d2db818ff934afb366aea566d0b33acf7bced1.zip | |
Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging
* target/i386: qemu-vmsr-helper fixes * target/i386: mask off SGX/SGX_LC feature words for non-PC machine * tests/vm/openbsd: Install tomli * fix issue with 64-bit features (vmx kvm-unit-tests) # -----BEGIN PGP SIGNATURE----- # # iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmaqHL4UHHBib256aW5p # QHJlZGhhdC5jb20ACgkQv/vSX3jHroPuuwgAhZwTHl1MkjIbIX7IRq39ORmOmk9a # vNqn32MLsUnSpV1JYrwzLgsNciTDhNkEL56Y4XwFbSUUyen0vvmcEH+/bCVKWb98 # jBk0iHXzfkk3GBd/ZLd4NW/LEeOZY4YBFNzyfhQGP47vSUAle/+VDdqukfJ9rj3J # o8Mx3YJjYcvoI21WZyhyLGdJtj/yBPwCfxrmhhJAWctIES78/sp1tP0UfmFcysss # nd7PrAoAXPc2MhBTJk7IwyXSJCnGnDsE4rQXqiVV+TN0S60Zcz+1jzqx0vgzHAk4 # 2oFKdnqxwSO8A2LVDdFpkSAM9F+LFv5a1hrHPikuBjIad9WdDIoPNU6qiw== # =9vso # -----END PGP SIGNATURE----- # gpg: Signature made Wed 31 Jul 2024 09:15:10 PM AEST # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full] * tag 'for-upstream' of https://gitlab.com/bonzini/qemu: qemu-vmsr-helper: implement --verbose/-v qemu-vmsr-helper: fix socket loop breakage target/i386: Clean up error cases for vmsr_read_thread_stat() target/i386: Fix typo that assign same value twice target/i386/cpu: Mask off SGX/SGX_LC feature words for non-PC machine target/i386/cpu: Add dependencies of CPUID 0x12 leaves target/i386/cpu: Explicitly express SGX_LC and SGX feature words dependency target/i386/cpu: Remove unnecessary SGX feature words checks target/i386: Change unavail from u32 to u64 tests/vm/openbsd: Install tomli Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'tools/i386/qemu-vmsr-helper.c')
| -rw-r--r-- | tools/i386/qemu-vmsr-helper.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/tools/i386/qemu-vmsr-helper.c b/tools/i386/qemu-vmsr-helper.c index ebf562c3ff..a35dcb88a3 100644 --- a/tools/i386/qemu-vmsr-helper.c +++ b/tools/i386/qemu-vmsr-helper.c @@ -54,6 +54,7 @@ static enum { RUNNING, TERMINATE, TERMINATING } state; static QIOChannelSocket *server_ioc; static int server_watch; static int num_active_sockets = 1; +static bool verbose; #ifdef CONFIG_LIBCAP_NG static int uid = -1; @@ -227,19 +228,17 @@ static void coroutine_fn vh_co_entry(void *opaque) &peer_pid, &local_err); if (r < 0) { - error_report_err(local_err); goto out; } - while (r < 0) { + for (;;) { /* * Read the requested MSR * Only RAPL MSR in rapl-msr-index.h is allowed */ - r = qio_channel_read_all(QIO_CHANNEL(client->ioc), - (char *) &request, sizeof(request), &local_err); - if (r < 0) { - error_report_err(local_err); + r = qio_channel_read_all_eof(QIO_CHANNEL(client->ioc), + (char *) &request, sizeof(request), &local_err); + if (r <= 0) { break; } @@ -261,11 +260,19 @@ static void coroutine_fn vh_co_entry(void *opaque) sizeof(vmsr), &local_err); if (r < 0) { - error_report_err(local_err); break; } } + out: + if (local_err) { + if (!verbose) { + error_free(local_err); + } else { + error_report_err(local_err); + } + } + object_unref(OBJECT(client->ioc)); g_free(client); } @@ -429,6 +436,9 @@ int main(int argc, char **argv) case 'd': daemonize = true; break; + case 'v': + verbose = true; + break; case 'T': trace_opt_parse(optarg); break; |