From owner-freebsd-bugs@FreeBSD.ORG Thu Feb 26 05:20:13 2004 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C5FF416A4CE for ; Thu, 26 Feb 2004 05:20:13 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id A8CE243D1D for ; Thu, 26 Feb 2004 05:20:13 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) i1QDKDbv027194 for ; Thu, 26 Feb 2004 05:20:13 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i1QDKD0w027193; Thu, 26 Feb 2004 05:20:13 -0800 (PST) (envelope-from gnats) Resent-Date: Thu, 26 Feb 2004 05:20:13 -0800 (PST) Resent-Message-Id: <200402261320.i1QDKD0w027193@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Phil Regnauld Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 048C016A4CE for ; Thu, 26 Feb 2004 05:10:36 -0800 (PST) Received: from chef.catpipe.net (chef.catpipe.net [195.249.214.145]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8F01043D41 for ; Thu, 26 Feb 2004 05:10:35 -0800 (PST) (envelope-from regnauld@catpipe.net) Received: by chef.catpipe.net (Postfix, from userid 1001) id 990E276317; Thu, 26 Feb 2004 14:10:33 +0100 (CET) Message-Id: <20040226131033.990E276317@chef.catpipe.net> Date: Thu, 26 Feb 2004 14:10:33 +0100 (CET) From: Phil Regnauld To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: bin/63388: Patch to make syslogd optionally not fsync kernel messages X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Phil Regnauld List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Feb 2004 13:20:14 -0000 >Number: 63388 >Category: bin >Synopsis: Patch to make syslogd optionally not fsync kernel messages >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Thu Feb 26 05:20:13 PST 2004 >Closed-Date: >Last-Modified: >Originator: Phil Regnauld >Release: FreeBSD 4.9-RELEASE i386 >Organization: catpipe Systems ApS >Environment: System: gw.catpipe.net 4.9-RELEASE FreeBSD 4.9-RELEASE #0: Sat Jan 17 15:37:54 CET 2004 regnauld@gw.catpipe.net:/data/src/sys/compile/GW i386 >Description: By default, the syslogd will call fsync after every write when logging message coming from the kernel. This can be problematic in the event that many kernel messages are being logged to disk in a rapid succession (i.e.: firewall logging). This patch implements a new option for syslogd, -K, which disables fsyncing upon reception kernel messages. >How-To-Repeat: n/a >Fix: --- syslogd.c.orig Tue Jan 20 16:12:43 2004 +++ syslogd.c Tue Jan 20 16:16:53 2004 @@ -286,6 +286,7 @@ static int LogFacPri; /* Put facility and priority in log message: */ /* 0=no, 1=numeric, 2=names */ static int KeepKernFac; /* Keep remotely logged kernel facility */ +static int NoSyncKern; /* Don't fsync on /dev/klog messages */ volatile sig_atomic_t MarkSet, WantDie; @@ -367,6 +368,9 @@ case 'k': /* keep remote kern fac */ KeepKernFac = 1; break; + case 'K': /* no sync on /dev/klog */ + NoSyncKern = 1; + break; case 'l': if (nfunix < MAXFUNIX) funixn[nfunix++] = optarg; @@ -732,7 +736,7 @@ { int pri, flags; - flags = ISKERNEL | SYNC_FILE | ADDDATE; /* fsync after write */ + flags = ISKERNEL | ( NoSyncKern ? 0x000 : SYNC_FILE) | ADDDATE; /* fsync after write */ pri = DEFSPRI; if (*p == '<') { pri = 0; --- syslogd.8.orig Tue Jan 20 16:19:33 2004 +++ syslogd.8 Tue Jan 20 16:21:17 2004 @@ -181,6 +181,9 @@ .Dq kern facility is reserved for messages read directly from .Pa /dev/klog . +.It Fl K +Disable fsync after write (the default) on messages read from +.Pa /dev/klog . .It Fl m Select the number of minutes between .Dq mark >Release-Note: >Audit-Trail: >Unformatted: