Disable the communication socket when UI is disabled

The communication socket is added to support the UI, when UI is not
built, also disable the socket.

Signed-off-by: Kairui Song <kasong@redhat.com>
This commit is contained in:
Kairui Song 2021-07-22 03:05:59 +08:00
parent 99ae256d02
commit 4342acd8d7
3 changed files with 27 additions and 11 deletions

View file

@ -41,10 +41,13 @@ AC_C_INLINE
AM_PROG_CC_C_O
AC_ARG_WITH([irqbalance-ui],
[AC_HELP_STRING([--without-irqbalance-ui],
[Dont build the irqbalance ui component])],
[with_irqbalanceui=$withval], [with_irqbalanceui=yes])
[AS_HELP_STRING([--without-irqbalance-ui],
[Dont build the irqbalance ui component])],
[with_irqbalanceui=$withval], [with_irqbalanceui=yes])
AS_IF(
[test "x$with_irqbalanceui" = "xyes"], [
AC_DEFINE([HAVE_IRQBALANCEUI], 1, [Build irqbalance ui component.])
])
AM_CONDITIONAL([IRQBALANCEUI], [test x$with_irqbalanceui = xyes])
AC_ARG_WITH([systemd],

View file

@ -39,7 +39,9 @@
#include "irqbalance.h"
#ifdef HAVE_IRQBALANCEUI
extern char *banned_cpumask_from_ui;
#endif
extern char *cpu_ban_string;
GList *cpus;
@ -113,12 +115,14 @@ static void setup_banned_cpus(void)
cpumask_t isolated_cpus;
char *env = NULL;
#ifdef HAVE_IRQBALANCEUI
/* A manually specified cpumask overrides auto-detection. */
if (cpu_ban_string != NULL && banned_cpumask_from_ui != NULL) {
cpulist_parse(banned_cpumask_from_ui,
strlen(banned_cpumask_from_ui), banned_cpus);
goto out;
}
#endif
/*
* Notes:

View file

@ -31,22 +31,21 @@
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <fcntl.h>
#include <inttypes.h>
#ifdef HAVE_GETOPT_LONG
#include <getopt.h>
#endif
#ifdef HAVE_LIBCAP_NG
#include <cap-ng.h>
#endif
#ifdef HAVE_IRQBALANCEUI
#include <sys/un.h>
#include <sys/socket.h>
#endif
#include "irqbalance.h"
volatile int keep_going = 1;
int socket_fd;
char socket_name[64];
int one_shot_mode;
int debug_mode;
int foreground_mode;
@ -67,9 +66,14 @@ int last_interval;
GMainLoop *main_loop;
char *cpu_ban_string = NULL;
char *banned_cpumask_from_ui = NULL;
unsigned long migrate_ratio = 0;
#ifdef HAVE_IRQBALANCEUI
int socket_fd;
char socket_name[64];
char *banned_cpumask_from_ui = NULL;
#endif
static void sleep_approx(int seconds)
{
struct timespec ts;
@ -405,6 +409,7 @@ void get_object_stat(struct topo_obj *object, void *data)
}
}
#ifdef HAVE_IRQBALANCEUI
gboolean sock_handle(gint fd, GIOCondition condition, gpointer user_data __attribute__((unused)))
{
char buff[500];
@ -585,6 +590,7 @@ int init_socket()
g_unix_fd_add(socket_fd, G_IO_IN, sock_handle, NULL);
return 0;
}
#endif
int main(int argc, char** argv)
{
@ -688,10 +694,12 @@ int main(int argc, char** argv)
parse_proc_interrupts();
parse_proc_stat();
#ifdef HAVE_IRQBALANCEUI
if (init_socket()) {
ret = EXIT_FAILURE;
goto out;
}
#endif
main_loop = g_main_loop_new(NULL, FALSE);
last_interval = sleep_interval;
g_timeout_add_seconds(sleep_interval, scan, NULL);
@ -707,11 +715,12 @@ out:
/* Remove pidfile */
if (!foreground_mode && pidfile)
unlink(pidfile);
#ifdef HAVE_IRQBALANCEUI
/* Remove socket */
if (socket_fd > 0)
close(socket_fd);
if (socket_name[0])
unlink(socket_name);
#endif
return ret;
}