From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 0FC8743D8B;
	Sat, 30 Mar 2024 04:05:52 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 29167427E9;
	Sat, 30 Mar 2024 04:05:00 +0100 (CET)
Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com
 [209.85.210.179])
 by mails.dpdk.org (Postfix) with ESMTP id 5A517406B6
 for <dev@dpdk.org>; Sat, 30 Mar 2024 04:04:49 +0100 (CET)
Received: by mail-pf1-f179.google.com with SMTP id
 d2e1a72fcca58-6ea9a60f7f5so2098737b3a.3
 for <dev@dpdk.org>; Fri, 29 Mar 2024 20:04:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1711767888;
 x=1712372688; darn=dpdk.org; 
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=DyES1Rd7PjLKXezWsT8D1+VxR7yrYboVhk48nlLmRG0=;
 b=ratFwOhLtjFbbdWQIAhBPXrlztlxAkNKpEq8510lim0vwS9OqvlQ+7HRtkR474nQdQ
 IPpdxWNY+wtNnbJMVljrIfuZFiFQ5iDFoUmCDlLofu1hg9nj+E0egkkglAzIZXUE1qEw
 RiUUAQ79y5EA6tEVsbDNmp5uheN2CeHjOk8E6ayviTNuUKBl21N8noBVCp8KbsfG8mL1
 vO7OdwlMx20rD4z2K1ooAIyLzjMjw1Kw0soQiGcTKUHN2cFRQnH2sx+kwdSL+EpMrHC8
 A1BpiFVW0W0XPUDu/OU+CVQVOTpakEZZjs8LN4Ci0QG+pRkkagA1IqNZu0XVw9nrgZZa
 8X8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1711767888; x=1712372688;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=DyES1Rd7PjLKXezWsT8D1+VxR7yrYboVhk48nlLmRG0=;
 b=hE7h2//+UCp2NT9uuJW87nN6gvybXBMh4JbpIOYQxCK/2a8S0O0ESgxdIZm9c16DF4
 k6ZcPGQfoaj55DX4GadNXYhSblmGCcmXBZ+EeprdEcnB/reAxGZPHZK9zGDUvCA2a29i
 rcsiUVtIZDk18PfZnQ/BzoouOHhIG1E+UkhWDqYuHP7kQrTRY8qlPBgGHr4HiPoxTUy2
 Gat+qPl0GGtVeHXyoh8SeSdFmPuNpUK95zcCnjMkZ+WsPxBa/wLcdpGz8h8CGADCJcX5
 qgiqe8gFE7GSOn928XAPF6/STxcq8LUrTIDuxunUu/J7H1iuUhGEnMW3Q1t3Bjy8j0E+
 iEmQ==
X-Gm-Message-State: AOJu0YwgoECPOhHUsyWrAb9TCTGUDUweAButurqnXGprJDsZkigVeNvl
 Om7PNWHH1NdP2zKR1dlOeQaya60wRNancEKjiZRldCurFRnXK3dZLR2EKpBRc0i5SODLe9XfcF+
 O
X-Google-Smtp-Source: AGHT+IHUyJ35ukuB9xNZJdGT34qqiVQt2PxTJmei+EvRYKqcCAUJWVKkzSF+M3ME7jhQQjZBjsWifQ==
X-Received: by 2002:a05:6a00:1705:b0:6ea:baf6:5720 with SMTP id
 h5-20020a056a00170500b006eabaf65720mr4229586pfc.3.1711767888506; 
 Fri, 29 Mar 2024 20:04:48 -0700 (PDT)
Received: from hermes.local (204-195-123-203.wavecable.com. [204.195.123.203])
 by smtp.gmail.com with ESMTPSA id
 o3-20020a056a00214300b006e6288ef4besm3655486pfk.54.2024.03.29.20.04.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Mar 2024 20:04:48 -0700 (PDT)
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>
Subject: [PATCH v19 10/15] log: drop syslog support, and make code common
Date: Fri, 29 Mar 2024 20:00:53 -0700
Message-ID: <20240330030429.4630-11-stephen@networkplumber.org>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20240330030429.4630-1-stephen@networkplumber.org>
References: <20200814173441.23086-1-stephen@networkplumber.org>
 <20240330030429.4630-1-stephen@networkplumber.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

This patch makes the log setup code common across all platforms.

Drops syslog support for now, will come back in later patch.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 app/test/test_eal_flags.c           |  11 ++-
 lib/eal/common/eal_common_options.c |   3 -
 lib/log/log.c                       |  41 +++++------
 lib/log/log_freebsd.c               |  11 ---
 lib/log/log_internal.h              |   6 --
 lib/log/log_linux.c                 | 102 ----------------------------
 lib/log/log_windows.c               |  22 ------
 lib/log/meson.build                 |   5 +-
 lib/log/version.map                 |   1 -
 9 files changed, 23 insertions(+), 179 deletions(-)
 delete mode 100644 lib/log/log_freebsd.c
 delete mode 100644 lib/log/log_linux.c
 delete mode 100644 lib/log/log_windows.c

diff --git a/app/test/test_eal_flags.c b/app/test/test_eal_flags.c
index 6cb4b06757..36e3185a10 100644
--- a/app/test/test_eal_flags.c
+++ b/app/test/test_eal_flags.c
@@ -984,11 +984,10 @@ test_misc_flags(void)
 	const char *argv1[] = {prgname, prefix, mp_flag, "--no-pci"};
 	/* With -v */
 	const char *argv2[] = {prgname, prefix, mp_flag, "-v"};
+	/* With empty --syslog */
+	const char *argv3[] = {prgname, prefix, mp_flag, "--syslog"};
 	/* With valid --syslog */
-	const char *argv3[] = {prgname, prefix, mp_flag,
-			"--syslog", "syslog"};
-	/* With empty --syslog (should fail) */
-	const char *argv4[] = {prgname, prefix, mp_flag, "--syslog"};
+	const char *argv4[] = {prgname, prefix, mp_flag, "--syslog", "always"};
 	/* With invalid --syslog */
 	const char *argv5[] = {prgname, prefix, mp_flag, "--syslog", "error"};
 	/* With no-sh-conf, also use no-huge to ensure this test runs on BSD */
@@ -1083,8 +1082,8 @@ test_misc_flags(void)
 		printf("Error - process did not run ok with --syslog flag\n");
 		goto fail;
 	}
-	if (launch_proc(argv4) == 0) {
-		printf("Error - process run ok with empty --syslog flag\n");
+	if (launch_proc(argv4) != 0) {
+		printf("Error - process did not with --syslog always flag\n");
 		goto fail;
 	}
 	if (launch_proc(argv5) == 0) {
diff --git a/lib/eal/common/eal_common_options.c b/lib/eal/common/eal_common_options.c
index 661b2db211..9ab512e8a1 100644
--- a/lib/eal/common/eal_common_options.c
+++ b/lib/eal/common/eal_common_options.c
@@ -2212,9 +2212,6 @@ eal_common_usage(void)
 	       "                      (can be used multiple times)\n"
 	       "  --"OPT_VMWARE_TSC_MAP"    Use VMware TSC map instead of native RDTSC\n"
 	       "  --"OPT_PROC_TYPE"         Type of this process (primary|secondary|auto)\n"
-#ifndef RTE_EXEC_ENV_WINDOWS
-	       "  --"OPT_SYSLOG"            Set syslog facility\n"
-#endif
 	       "  --"OPT_LOG_LEVEL"=<level> Set global log level\n"
 	       "  --"OPT_LOG_LEVEL"=<type-match>:<level>\n"
 	       "                      Set specific log level\n"
diff --git a/lib/log/log.c b/lib/log/log.c
index 4b24e145b6..3fe86ddcd7 100644
--- a/lib/log/log.c
+++ b/lib/log/log.c
@@ -57,9 +57,6 @@ TAILQ_HEAD(rte_eal_opt_loglevel_list, rte_eal_opt_loglevel);
 static struct rte_eal_opt_loglevel_list opt_loglevel_list =
 	TAILQ_HEAD_INITIALIZER(opt_loglevel_list);
 
-/* Stream to use for logging if rte_logs.file is NULL */
-static FILE *default_log_stream;
-
 /**
  * This global structure stores some information about the message
  * that is currently being processed by one lcore
@@ -72,8 +69,6 @@ struct log_cur_msg {
  /* per core log */
 static RTE_DEFINE_PER_LCORE(struct log_cur_msg, log_cur_msg);
 
-/* default logs */
-
 /* Change the stream that will be used by logging system */
 int
 rte_openlog_stream(FILE *f)
@@ -87,17 +82,7 @@ rte_log_get_stream(void)
 {
 	FILE *f = rte_logs.file;
 
-	if (f == NULL) {
-		/*
-		 * Grab the current value of stderr here, rather than
-		 * just initializing default_log_stream to stderr. This
-		 * ensures that we will always use the current value
-		 * of stderr, even if the application closes and
-		 * reopens it.
-		 */
-		return default_log_stream != NULL ? default_log_stream : stderr;
-	}
-	return f;
+	return (f == NULL) ? stderr : f;
 }
 
 /* Set global log level */
@@ -507,14 +492,19 @@ rte_log(uint32_t level, uint32_t logtype, const char *format, ...)
 	return ret;
 }
 
+/* Placeholder */
+int
+eal_log_syslog(const char *mode __rte_unused)
+{
+	return -1;
+}
+
 /*
- * Called by environment-specific initialization functions.
+ * Called by rte_eal_init
  */
 void
-eal_log_set_default(FILE *default_log)
+eal_log_init(const char *id __rte_unused)
 {
-	default_log_stream = default_log;
-
 #if RTE_LOG_DP_LEVEL >= RTE_LOG_DEBUG
 	RTE_LOG(NOTICE, EAL,
 		"Debug dataplane logs available - lower performance\n");
@@ -527,8 +517,11 @@ eal_log_set_default(FILE *default_log)
 void
 rte_eal_log_cleanup(void)
 {
-	if (default_log_stream) {
-		fclose(default_log_stream);
-		default_log_stream = NULL;
-	}
+	FILE *log_stream = rte_logs.file;
+
+	/* don't close stderr on the application */
+	if (log_stream != NULL)
+		fclose(log_stream);
+
+	rte_logs.file = NULL;
 }
diff --git a/lib/log/log_freebsd.c b/lib/log/log_freebsd.c
deleted file mode 100644
index 33a0925c43..0000000000
--- a/lib/log/log_freebsd.c
+++ /dev/null
@@ -1,11 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2023 Intel Corporation
- */
-
-#include <rte_common.h>
-#include "log_internal.h"
-
-void
-eal_log_init(__rte_unused const char *id)
-{
-}
diff --git a/lib/log/log_internal.h b/lib/log/log_internal.h
index d5fabd7ef7..3c46328e7b 100644
--- a/lib/log/log_internal.h
+++ b/lib/log/log_internal.h
@@ -16,12 +16,6 @@
 __rte_internal
 void eal_log_init(const char *id);
 
-/*
- * Determine where log data is written when no call to rte_openlog_stream.
- */
-__rte_internal
-void eal_log_set_default(FILE *default_log);
-
 /*
  * Save a log option for later.
  */
diff --git a/lib/log/log_linux.c b/lib/log/log_linux.c
deleted file mode 100644
index 6d7dc8f3ab..0000000000
--- a/lib/log/log_linux.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2010-2014 Intel Corporation
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <syslog.h>
-
-#include <rte_common.h>
-#include <rte_log.h>
-
-#include "log_internal.h"
-
-static int log_facility = LOG_DAEMON;
-
-static const struct {
-	const char *name;
-	int value;
-} facilitys[] = {
-	{ "auth", LOG_AUTH },
-	{ "cron", LOG_CRON },
-	{ "daemon", LOG_DAEMON },
-	{ "ftp", LOG_FTP },
-	{ "kern", LOG_KERN },
-	{ "lpr", LOG_LPR },
-	{ "mail", LOG_MAIL },
-	{ "news", LOG_NEWS },
-	{ "syslog", LOG_SYSLOG },
-	{ "user", LOG_USER },
-	{ "uucp", LOG_UUCP },
-	{ "local0", LOG_LOCAL0 },
-	{ "local1", LOG_LOCAL1 },
-	{ "local2", LOG_LOCAL2 },
-	{ "local3", LOG_LOCAL3 },
-	{ "local4", LOG_LOCAL4 },
-	{ "local5", LOG_LOCAL5 },
-	{ "local6", LOG_LOCAL6 },
-	{ "local7", LOG_LOCAL7 },
-};
-
-int
-eal_log_syslog(const char *name)
-{
-	unsigned int i;
-
-	for (i = 0; i < RTE_DIM(facilitys); i++) {
-		if (!strcmp(name, facilitys[i].name)) {
-			log_facility = facilitys[i].value;
-			return 0;
-		}
-	}
-	return -1;
-}
-
-/*
- * default log function
- */
-static ssize_t
-console_log_write(__rte_unused void *c, const char *buf, size_t size)
-{
-	ssize_t ret;
-
-	/* write on stderr */
-	ret = fwrite(buf, 1, size, stderr);
-	fflush(stderr);
-
-	/* Syslog error levels are from 0 to 7, so subtract 1 to convert */
-	syslog(rte_log_cur_msg_loglevel() - 1, "%.*s", (int)size, buf);
-
-	return ret;
-}
-
-static int
-console_log_close(__rte_unused void *c)
-{
-	closelog();
-	return 0;
-}
-
-static cookie_io_functions_t console_log_func = {
-	.write = console_log_write,
-	.close = console_log_close,
-};
-
-/*
- * set the log to default function, called during eal init process,
- * once memzones are available.
- */
-void
-eal_log_init(const char *id)
-{
-	FILE *log_stream;
-
-	openlog(id, LOG_NDELAY | LOG_PID, log_facility);
-
-	log_stream = fopencookie(NULL, "w+", console_log_func);
-	if (log_stream != NULL)
-		eal_log_set_default(log_stream);
-	else
-		eal_log_set_default(stderr);
-}
diff --git a/lib/log/log_windows.c b/lib/log/log_windows.c
deleted file mode 100644
index d7c30e4cfa..0000000000
--- a/lib/log/log_windows.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2017-2018 Intel Corporation
- */
-
-#include <rte_common.h>
-#include <rte_log.h>
-#include "log_internal.h"
-
-int
-eal_log_syslog(const char *name __rte_unused)
-{
-	return -1; /* not used */
-}
-
-/* set the log to default function, called during eal init process. */
-void
-eal_log_init(__rte_unused const char *id)
-{
-	rte_openlog_stream(stderr);
-
-	eal_log_set_default(stderr);
-}
diff --git a/lib/log/meson.build b/lib/log/meson.build
index 0d4319b36f..891f77a237 100644
--- a/lib/log/meson.build
+++ b/lib/log/meson.build
@@ -2,8 +2,5 @@
 # Copyright(c) 2023 Intel Corporation
 
 includes += global_inc
-sources = files(
-        'log.c',
-        'log_' + exec_env + '.c',
-)
+sources = files('log.c')
 headers = files('rte_log.h')
diff --git a/lib/log/version.map b/lib/log/version.map
index 9c6c49bf06..32b9680c31 100644
--- a/lib/log/version.map
+++ b/lib/log/version.map
@@ -29,7 +29,6 @@ INTERNAL {
 	eal_log_level2str;
 	eal_log_save_pattern;
 	eal_log_save_regexp;
-	eal_log_set_default;
 	eal_log_syslog;
 	rte_eal_log_cleanup;
 };
-- 
2.43.0