* Added a new kernel setting "syslog_buffer_size" to change the size of the
internal syslog ring buffer. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28280 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -19,9 +19,13 @@
|
|||||||
# disables syslog debug output - all debug output is also sent to
|
# disables syslog debug output - all debug output is also sent to
|
||||||
# the syslog service by default.
|
# the syslog service by default.
|
||||||
|
|
||||||
|
#syslog_buffer_size 131768
|
||||||
|
# The default size of the internal syslog ring buffer - if you often see
|
||||||
|
# <DROP> or <TRUNC> messages in your syslog, you might want to increase
|
||||||
|
# this value. Defaults to 65536 bytes.
|
||||||
|
|
||||||
#syslog_time_stamps true
|
#syslog_time_stamps true
|
||||||
# Include time stamps in syslog debug output,
|
# Include time stamps in syslog debug output, defaults to false.
|
||||||
# you don't get them by default
|
|
||||||
|
|
||||||
#syslog_max_size 20MB
|
#syslog_max_size 20MB
|
||||||
# change maximum syslog file size, default is 512kB
|
# change maximum syslog file size, default is 512kB
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ static bool sSyslogDropped = false;
|
|||||||
|
|
||||||
static const char* sCurrentKernelDebuggerMessage;
|
static const char* sCurrentKernelDebuggerMessage;
|
||||||
|
|
||||||
#define SYSLOG_BUFFER_SIZE 65536
|
#define DEFAULT_SYSLOG_BUFFER_SIZE 65536
|
||||||
#define OUTPUT_BUFFER_SIZE 1024
|
#define OUTPUT_BUFFER_SIZE 1024
|
||||||
static char sOutputBuffer[OUTPUT_BUFFER_SIZE];
|
static char sOutputBuffer[OUTPUT_BUFFER_SIZE];
|
||||||
static char sLastOutputBuffer[OUTPUT_BUFFER_SIZE];
|
static char sLastOutputBuffer[OUTPUT_BUFFER_SIZE];
|
||||||
@@ -1021,7 +1021,7 @@ syslog_init_post_threads(void)
|
|||||||
|
|
||||||
|
|
||||||
static status_t
|
static status_t
|
||||||
syslog_init(struct kernel_args *args)
|
syslog_init(struct kernel_args* args)
|
||||||
{
|
{
|
||||||
status_t status;
|
status_t status;
|
||||||
int32 length = 0;
|
int32 length = 0;
|
||||||
@@ -1035,7 +1035,25 @@ syslog_init(struct kernel_args *args)
|
|||||||
goto err1;
|
goto err1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sSyslogBuffer = create_ring_buffer(SYSLOG_BUFFER_SIZE);
|
{
|
||||||
|
size_t bufferSize = DEFAULT_SYSLOG_BUFFER_SIZE;
|
||||||
|
void* handle = load_driver_settings("kernel");
|
||||||
|
if (handle != NULL) {
|
||||||
|
const char* sizeString = get_driver_parameter(handle,
|
||||||
|
"syslog_buffer_size", NULL, NULL);
|
||||||
|
if (sizeString != NULL) {
|
||||||
|
bufferSize = strtoul(sizeString, NULL, 0);
|
||||||
|
if (bufferSize > 262144)
|
||||||
|
bufferSize = 262144;
|
||||||
|
else if (bufferSize < SYSLOG_MESSAGE_BUFFER_SIZE)
|
||||||
|
bufferSize = SYSLOG_MESSAGE_BUFFER_SIZE;
|
||||||
|
}
|
||||||
|
|
||||||
|
unload_driver_settings(handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
sSyslogBuffer = create_ring_buffer(bufferSize);
|
||||||
|
}
|
||||||
if (sSyslogBuffer == NULL) {
|
if (sSyslogBuffer == NULL) {
|
||||||
status = B_NO_MEMORY;
|
status = B_NO_MEMORY;
|
||||||
goto err2;
|
goto err2;
|
||||||
|
|||||||
Reference in New Issue
Block a user