Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 May 2022 07:12:37 +0900
From:      Tomoaki AOKI <junchoon@dec.sakura.ne.jp>
To:        Warner Losh <imp@bsdimp.com>
Cc:        FreeBSD Current <freebsd-current@freebsd.org>, Warner Losh <imp@freebsd.org>
Subject:   Re: Massive "Found bio_cmd = 0x5" with options CAM_IOSCHED_DYNAMIC
Message-ID:  <20220506071237.31a11f26398bcd5a698cac85@dec.sakura.ne.jp>
In-Reply-To: <CANCZdfrahNQVaJA6kaTFxEDNUXHzNFSU=7vcHQziOuOBG8eong@mail.gmail.com>
References:  <20220505090316.1df9a1bc2e07e69b1da8cb64@dec.sakura.ne.jp> <CANCZdfrahNQVaJA6kaTFxEDNUXHzNFSU=7vcHQziOuOBG8eong@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 4 May 2022 20:37:41 -0600
Warner Losh <imp@bsdimp.com> wrote:

> On Wed, May 4, 2022 at 6:03 PM Tomoaki AOKI <junchoon@dec.sakura.ne.jp>
> wrote:
> 
> > Hi.
> >
> > After updating src main git: f44280bf5fbb to git: 1599fc904d35,
> > with options CAM_IOSCHED_DYNAMIC on kernel config file,
> > A plenty of "Found bio_cmd = 0x5" appear on console and dmesg.
> >
> > With quick look under src/sys/, bio_cmd = 0x5 means BIO_FLUSH,
> > and the printf() only appears on src/sys/cam/cam_iosched.c line 1621.[1]
> >
> > Maybe it actually wouldn't be harmful (just annoying), but possibly
> > any conditions blocking BIO_FLUSH to reach there would be lost.
> > (The printf() itself was already there at git: f44280bf5fbb.)
> >
> > If it's actualy not at all harmful, and BIO_FLUSH case is coming
> > through here is intentional change, is it really needed to be printed?
> >
> 
> It's a useless printf. I've removed it and posted an analysis in the commit
> message. Basically, read_bias == 0 will queue other operations to bio_queue
> now, so the printf is a false positive to find transactions that shouldn't
> be
> on the queue.
> 
> If you set read_bias = 1, then the messages will go away until you can
> recompile.
> 
> I also don't need to know the storage, since this is independent of the
> periphs...
> 
> Warner

Thanks!

Confirmed that...
  *Setting kern.cam.iosched.read_bias to any value from 1 to 100
   via sysctl command didn't stop the flood.
   Even though it's defined via SYSCTL_INT() [not TUNABLE_INT()],
   it seems to act as pure tunable.

  *Setting kern.cam.iosched.read_bias=1 on /boot/loader.conf stopped
   the flood BEFORE rebuild.

  *Updating after git: a85fea31c5cb (actually, git: 9f580526e45a for me)
   stopped the flood even if kern.cam.iosched.read_bias=0 on boot.
   (Obvious from git: a85fea31c5cb.)

> 
> 
> > There were 4 commits to cam_iosched.c within the span.
> >
> >   cc1572ddeb8cd82879ce0cca634bf6a8830c0f40    [2]
> >     cam iosched: Remove write bias when read bias = 0
> >   b65803ba5773d5fb37fa2403105db199569a5811    [3]
> >     cam iosched: default to no read bias in dynamic ioscheduling
> >   d592c0db8ba773c143eeea28610288f800fa651a    [4]
> >     cam: add hw.cam.iosched.read_bias
> >   1599fc904d35cfa8eecad92818d1f4b55de6818f    [5]
> >     iosched: Move bio_next() inside of the CAM_IOSCHED_DYNAMIC ifdef
> >
> >
> > [1] https://cgit.freebsd.org/src/tree/sys/cam/cam_iosched.c#n1621
> >
> > [2]
> >
> > https://cgit.freebsd.org/src/commit/?id=cc1572ddeb8cd82879ce0cca634bf6a8830c0f40
> >
> > [3]
> >
> > https://cgit.freebsd.org/src/commit/?id=b65803ba5773d5fb37fa2403105db199569a5811
> >
> > [4]
> >
> > https://cgit.freebsd.org/src/commit/?id=d592c0db8ba773c143eeea28610288f800fa651a
> >
> > [5]
> >
> > https://cgit.freebsd.org/src/commit/?id=1599fc904d35cfa8eecad92818d1f4b55de6818f
> >
> >
> > Regards.
> >
> > --
> > Tomoaki AOKI    <junchoon@dec.sakura.ne.jp>
> >


-- 
Tomoaki AOKI    <junchoon@dec.sakura.ne.jp>



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