Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Aug 2013 15:40:09 -0600
From:      Scott Long <scott4long@yahoo.com>
To:        Alexander Motin <mav@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Scott Long <scottl@FreeBSD.org>
Subject:   Re: svn commit: r253460 - head/sys/dev/mps
Message-ID:  <E28B06A7-D09C-4CFB-ABCA-CD9FC43E89E6@yahoo.com>
In-Reply-To: <52077D0D.8090607@FreeBSD.org>
References:  <201307190012.r6J0Cg1r027645@svn.freebsd.org> <52077D0D.8090607@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Thanks, I'll look into it.

Scott

On Aug 11, 2013, at 6:01 AM, Alexander Motin <mav@FreeBSD.org> wrote:

> On 19.07.2013 03:12, Scott Long wrote:
>> Author: scottl
>> Date: Fri Jul 19 00:12:41 2013
>> New Revision: 253460
>> URL: http://svnweb.freebsd.org/changeset/base/253460
>>=20
>> Log:
>>   Overhaul error, information, and debug logging.
>>=20
>>   Obtained from:	Netflix
>>   MFC after:	3 days
>>=20
>> Modified:
>>   head/sys/dev/mps/mps.c
>>   head/sys/dev/mps/mps_mapping.c
>>   head/sys/dev/mps/mps_pci.c
>>   head/sys/dev/mps/mps_sas.c
>>   head/sys/dev/mps/mps_sas_lsi.c
>>   head/sys/dev/mps/mps_table.c
>>   head/sys/dev/mps/mps_user.c
>>   head/sys/dev/mps/mpsvar.h
>=20
> This change created significant CPU overhead under high I/O rate (350K =
IOPS) because several functions inside mpssas_log_command() are now =
writing into the buffer that is just discarded after that. The following =
simple patch seems fixes the situation for me:
>=20
> Index: mps_sas.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- mps_sas.c   (revision 254181)
> +++ mps_sas.c   (working copy)
> @@ -304,7 +304,7 @@ mpssas_log_command(struct mps_command *cm, u_int l
>        char str[192];
>        char path_str[64];
>=20
> -       if (cm =3D=3D NULL)
> +       if (cm =3D=3D NULL || (cm->cm_sc->mps_debug & level) =3D=3D 0)
>                return;
>=20
>        sbuf_new(&sb, str, sizeof(str), 0);
>=20
>=20
> --=20
> Alexander Motin




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E28B06A7-D09C-4CFB-ABCA-CD9FC43E89E6>