Date: Sun, 11 Jan 2015 20:55:17 +0000 (UTC) From: Ian Lepore <ian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r277026 - head/sys/dev/mmc Message-ID: <201501112055.t0BKtHVJ042530@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ian Date: Sun Jan 11 20:55:16 2015 New Revision: 277026 URL: https://svnweb.freebsd.org/changeset/base/277026 Log: Rate-limit error logging to 5 lines per second, so that when an sdcard goes bad it doesn't lock up the console with continuous output. Modified: head/sys/dev/mmc/mmcsd.c Modified: head/sys/dev/mmc/mmcsd.c ============================================================================== --- head/sys/dev/mmc/mmcsd.c Sun Jan 11 20:48:29 2015 (r277025) +++ head/sys/dev/mmc/mmcsd.c Sun Jan 11 20:55:16 2015 (r277026) @@ -64,6 +64,7 @@ __FBSDID("$FreeBSD$"); #include <sys/malloc.h> #include <sys/module.h> #include <sys/mutex.h> +#include <sys/time.h> #include <geom/geom_disk.h> #include <dev/mmc/mmcbrvar.h> @@ -86,6 +87,8 @@ struct mmcsd_softc { daddr_t eblock, eend; /* Range remaining after the last erase. */ int running; int suspend; + int log_count; + struct timeval log_time; }; static const char *errmsg[] = @@ -99,6 +102,8 @@ static const char *errmsg[] = "NO MEMORY" }; +#define LOG_PPS 5 /* Log no more than 5 errors per second. */ + /* bus entry points */ static int mmcsd_attach(device_t dev); static int mmcsd_detach(device_t dev); @@ -389,8 +394,10 @@ mmcsd_rw(struct mmcsd_softc *sc, struct } MMCBUS_WAIT_FOR_REQUEST(mmcbr, dev, &req); if (req.cmd->error != MMC_ERR_NONE) { - device_printf(dev, "Error indicated: %d %s\n", - req.cmd->error, mmcsd_errmsg(req.cmd->error)); + if (ppsratecheck(&sc->log_time, &sc->log_count, LOG_PPS)) { + device_printf(dev, "Error indicated: %d %s\n", + req.cmd->error, mmcsd_errmsg(req.cmd->error)); + } break; } block += numblocks;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201501112055.t0BKtHVJ042530>