Commit e2912397 authored by Pavel Emelyanov's avatar Pavel Emelyanov

log: Set log level in parasite

Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 3ef0d973
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
enum { enum {
PARASITE_CMD_INIT, PARASITE_CMD_INIT,
PARASITE_CMD_SET_LOGFD, PARASITE_CMD_CFG_LOG,
PARASITE_CMD_FINI, PARASITE_CMD_FINI,
PARASITE_CMD_DUMPPAGES_INIT, PARASITE_CMD_DUMPPAGES_INIT,
...@@ -44,6 +44,10 @@ struct parasite_init_args { ...@@ -44,6 +44,10 @@ struct parasite_init_args {
struct sockaddr_un p_addr; struct sockaddr_un p_addr;
}; };
struct parasite_log_args {
int log_level;
};
struct parasite_dump_pages_args { struct parasite_dump_pages_args {
VmaEntry vma_entry; VmaEntry vma_entry;
unsigned long nrpages_dumped; /* how many pages are dumped */ unsigned long nrpages_dumped; /* how many pages are dumped */
......
...@@ -360,12 +360,15 @@ static int parasite_prep_file(int fd, struct parasite_ctl *ctl) ...@@ -360,12 +360,15 @@ static int parasite_prep_file(int fd, struct parasite_ctl *ctl)
static int parasite_set_logfd(struct parasite_ctl *ctl, pid_t pid) static int parasite_set_logfd(struct parasite_ctl *ctl, pid_t pid)
{ {
int ret; int ret;
struct parasite_log_args a;
ret = parasite_send_fd(ctl, log_get_fd()); ret = parasite_send_fd(ctl, log_get_fd());
if (ret) if (ret)
return ret; return ret;
ret = parasite_execute(PARASITE_CMD_SET_LOGFD, ctl, NULL, 0); a.log_level = log_get_loglevel();
ret = parasite_execute(PARASITE_CMD_CFG_LOG, ctl, &a, sizeof(a));
if (ret < 0) if (ret < 0)
return ret; return ret;
......
...@@ -419,13 +419,14 @@ out_send_fd: ...@@ -419,13 +419,14 @@ out_send_fd:
return ret; return ret;
} }
static int parasite_set_logfd() static int parasite_cfg_log(struct parasite_log_args *args)
{ {
int ret; int ret;
ret = recv_fd(tsock); ret = recv_fd(tsock);
if (ret >= 0) { if (ret >= 0) {
log_set_fd(ret); log_set_fd(ret);
log_set_loglevel(args->log_level);
ret = 0; ret = 0;
} }
...@@ -459,8 +460,8 @@ int __used parasite_service(unsigned int cmd, void *args) ...@@ -459,8 +460,8 @@ int __used parasite_service(unsigned int cmd, void *args)
return init((struct parasite_init_args *) args); return init((struct parasite_init_args *) args);
case PARASITE_CMD_FINI: case PARASITE_CMD_FINI:
return fini(); return fini();
case PARASITE_CMD_SET_LOGFD: case PARASITE_CMD_CFG_LOG:
return parasite_set_logfd(); return parasite_cfg_log((struct parasite_log_args *) args);
case PARASITE_CMD_DUMPPAGES_INIT: case PARASITE_CMD_DUMPPAGES_INIT:
return dump_pages_init(); return dump_pages_init();
case PARASITE_CMD_DUMPPAGES_FINI: case PARASITE_CMD_DUMPPAGES_FINI:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment