Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Dec 2003 02:11:08 +0800
From:      Clive Lin <clive@tongi.org>
To:        Scott Long <scottl@freebsd.org>
Cc:        YONETANI Tomokazu <t-yonetani@ergobrains.co.jp>
Subject:   Re: ServeRAID semi show stopper (was Re: lots of "exclusive sleep mutex")
Message-ID:  <20031203181108.GA29680@fatpipi.cirx.org>
In-Reply-To: <3FCE1D6F.30708@freebsd.org>
References:  <20031029161647.GA42024@fatpipi.cirx.org> <20031031010904.GA81366@ergobrains.co.jp> <20031031082550.GA35838@ergobrains.co.jp> <20031203165020.GA29007@fatpipi.cirx.org> <3FCE1D6F.30708@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Dec 03, 2003 at 10:29:19AM -0700, Scott Long wrote:
> Clive Lin wrote:
> >Hi,
> >
> >    Here comes more helpful ServeRAID related warnings:
> >
> >Bad malloc flags: 0
> >Stack backtrace:
> >malloc() of "16" with the following non-sleepable locks held:
> >exclusive sleep mutex g_xdown r = 0 (0xe1f31cbc) locked @ 
> >/usr/src/sys/geom/geom_io.c:355
> >Bad uma_zalloc flags: 0
> >Stack backtrace:
> >malloc() of "16" with the following non-sleepable locks held:
> >exclusive sleep mutex g_xdown r = 0 (0xe1f31cbc) locked @ 
> >/usr/src/sys/geom/geom_io.c:355
> >malloc() of "16" with the following non-sleepable locks held:
> >exclusive sleep mutex g_xdown r = 0 (0xe1f31cbc) locked @ 
> >/usr/src/sys/geom/geom_io.c:355
> >malloc() of "16" with the following non-sleepable locks held:
> >exclusive sleep mutex g_xdown r = 0 (0xe1f31cbc) locked @ 
> >/usr/src/sys/geom/geom_io.c:355
> >( ... repeats ... )
> The patch below will silence this warning.  However, the real solution
> is a lot more complicated and will have to wait for after 5.2.
> 
> Scott
> 
> 
> --- ips_commands.c      27 Nov 2003 08:37:36 -0000      1.7
> +++ ips_commands.c      3 Dec 2003 17:26:28 -0000
> @@ -165,7 +165,7 @@
> 
>  void ips_start_io_request(ips_softc_t *sc, struct bio *iobuf)
>  {
> -       if(ips_get_free_cmd(sc, ips_send_io_request, iobuf, 0)){
> +       if(ips_get_free_cmd(sc, ips_send_io_request, iobuf, 
> IPS_NOWAIT_FLAG)){
>                 device_printf(sc->dev, "no mem for command slots!\n");
>                 iobuf->bio_flags |= BIO_ERROR;
>                 iobuf->bio_error = ENOMEM;

Hi,

    It helps a lot to reduce my serial console traffic :)
    Now only few warns below appears under heavy disk access:

ipsd0: iobuf error 12
ips0: no mem for command slots!

Clive



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031203181108.GA29680>