mirror of
https://github.com/clearlinux/kvmtool.git
synced 2026-06-15 18:05:49 +00:00
kvm tools: Specify names for VM internal threads
Give threads a meaningful name. This makes debugging much easier, and everything else much prettier. Suggested-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Sasha Levin <sasha.levin@oracle.com> [ penberg@kernel.org: specify vcpu names ] Signed-off-by: Pekka Enberg <penberg@kernel.org>
This commit is contained in:
+6
-1
@@ -171,7 +171,12 @@ static void handle_sigalrm(int sig, siginfo_t *si, void *uc)
|
||||
|
||||
static void *kvm_cpu_thread(void *arg)
|
||||
{
|
||||
current_kvm_cpu = arg;
|
||||
char name[16];
|
||||
|
||||
current_kvm_cpu = arg;
|
||||
|
||||
sprintf(name, "kvm-vcpu-%lu", current_kvm_cpu->cpu_id);
|
||||
kvm__set_thread_name(name);
|
||||
|
||||
if (kvm_cpu__start(current_kvm_cpu))
|
||||
goto panic_kvm;
|
||||
|
||||
@@ -63,6 +63,8 @@ static void *disk_image__thread(void *param)
|
||||
int nr, i;
|
||||
u64 dummy;
|
||||
|
||||
kvm__set_thread_name("disk-image-io");
|
||||
|
||||
while (read(disk->evt, &dummy, sizeof(dummy)) > 0) {
|
||||
nr = io_getevents(disk->ctx, 1, ARRAY_SIZE(event), event, ¬ime);
|
||||
for (i = 0; i < nr; i++)
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <linux/types.h>
|
||||
#include <time.h>
|
||||
#include <signal.h>
|
||||
#include <sys/prctl.h>
|
||||
|
||||
#define SIGKVMEXIT (SIGRTMIN + 0)
|
||||
#define SIGKVMPAUSE (SIGRTMIN + 1)
|
||||
@@ -118,4 +119,9 @@ static inline void *guest_flat_to_host(struct kvm *kvm, unsigned long offset)
|
||||
|
||||
bool kvm__supports_extension(struct kvm *kvm, unsigned int extension);
|
||||
|
||||
static inline void kvm__set_thread_name(const char *name)
|
||||
{
|
||||
prctl(PR_SET_NAME, name);
|
||||
}
|
||||
|
||||
#endif /* KVM__KVM_H */
|
||||
|
||||
@@ -24,6 +24,8 @@ static void *ioeventfd__thread(void *param)
|
||||
{
|
||||
u64 tmp = 1;
|
||||
|
||||
kvm__set_thread_name("ioeventfd-worker");
|
||||
|
||||
for (;;) {
|
||||
int nfds, i;
|
||||
|
||||
|
||||
@@ -260,6 +260,8 @@ static void *kvm_ipc__thread(void *param)
|
||||
struct epoll_event event;
|
||||
struct kvm *kvm = param;
|
||||
|
||||
kvm__set_thread_name("kvm-ipc");
|
||||
|
||||
for (;;) {
|
||||
int nfds;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "kvm/uip.h"
|
||||
|
||||
#include <kvm/kvm.h>
|
||||
#include <linux/virtio_net.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/list.h>
|
||||
@@ -176,6 +177,8 @@ static void *uip_tcp_socket_thread(void *p)
|
||||
int len, left, ret;
|
||||
u8 *payload, *pos;
|
||||
|
||||
kvm__set_thread_name("uip-tcp");
|
||||
|
||||
sk = p;
|
||||
|
||||
payload = malloc(UIP_MAX_TCP_PAYLOAD);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "kvm/uip.h"
|
||||
|
||||
#include <kvm/kvm.h>
|
||||
#include <linux/virtio_net.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/list.h>
|
||||
@@ -160,6 +161,8 @@ static void *uip_udp_socket_thread(void *p)
|
||||
int nfds;
|
||||
int i;
|
||||
|
||||
kvm__set_thread_name("uip-udp");
|
||||
|
||||
info = p;
|
||||
|
||||
do {
|
||||
|
||||
@@ -206,6 +206,8 @@ static void *sdl__thread(void *p)
|
||||
SDL_Event ev;
|
||||
Uint32 flags;
|
||||
|
||||
kvm__set_thread_name("kvm-sdl-worker");
|
||||
|
||||
if (SDL_Init(SDL_INIT_VIDEO) != 0)
|
||||
die("Unable to initialize SDL");
|
||||
|
||||
|
||||
@@ -185,6 +185,8 @@ static void *vnc__thread(void *p)
|
||||
char argv[1][1] = {{0}};
|
||||
int argc = 1;
|
||||
|
||||
kvm__set_thread_name("kvm-vnc-worker");
|
||||
|
||||
server = rfbGetScreen(&argc, (char **) argv, fb->width, fb->height, 8, 3, 4);
|
||||
server->frameBuffer = fb->mem;
|
||||
server->alwaysShared = TRUE;
|
||||
|
||||
@@ -78,6 +78,8 @@ static void *thread_pool__threadfunc(void *param)
|
||||
{
|
||||
pthread_cleanup_push(thread_pool__threadfunc_cleanup, NULL);
|
||||
|
||||
kvm__set_thread_name("threadpool-worker");
|
||||
|
||||
while (running) {
|
||||
struct thread_pool__job *curjob = NULL;
|
||||
|
||||
|
||||
@@ -179,6 +179,8 @@ static void *virtio_blk_thread(void *dev)
|
||||
u64 data;
|
||||
int r;
|
||||
|
||||
kvm__set_thread_name("virtio-blk-io");
|
||||
|
||||
while (1) {
|
||||
r = read(bdev->io_efd, &data, sizeof(u64));
|
||||
if (r < 0)
|
||||
|
||||
@@ -79,6 +79,8 @@ static void *virtio_net_rx_thread(void *p)
|
||||
u16 head;
|
||||
int len;
|
||||
|
||||
kvm__set_thread_name("virtio-net-rx");
|
||||
|
||||
kvm = ndev->kvm;
|
||||
vq = &ndev->vqs[VIRTIO_NET_RX_QUEUE];
|
||||
|
||||
@@ -115,6 +117,8 @@ static void *virtio_net_tx_thread(void *p)
|
||||
u16 head;
|
||||
int len;
|
||||
|
||||
kvm__set_thread_name("virtio-net-tx");
|
||||
|
||||
kvm = ndev->kvm;
|
||||
vq = &ndev->vqs[VIRTIO_NET_TX_QUEUE];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user