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>