On Sun, Mar 06, 2016 at 06:20:06PM -0800, Scott Long wrote:

> 
> > On Mar 6, 2016, at 1:27 PM, Slawa Olhovchenkov <s...@zxy.spb.ru> wrote:
> > 
> > On Sun, Mar 06, 2016 at 01:10:42PM -0800, Scott Long wrote:
> > 
> >> Hi,
> >> 
> >> The message is harmless, it's a reminder that you should tune the kernel 
> >> for your workload.  When the message is triggered, it means that a 
> >> potential command was deferred, likely for only a few microseconds, and 
> >> then everything moved on as normal.  
> >> 
> >> A command uses anywhere from 0 to a few dozen chain frames per I/o, 
> >> depending on the size of the io.  The chain frame memory is allocated at 
> >> boot so that it's always available, not allocated on the fly.  When I 
> >> wrote this driver, I felt that it would be wasteful to reserve memory for 
> >> a worst case scenario of all large io's by default, so I put in this 
> >> deferral system with a console reminder to for tuning.  
> >> 
> >> Yes, you actually do have 900 io's outstanding.  The controller buffers 
> >> the io requests and allows the system to queue up much more than what sata 
> >> disks might allow on their own.  It's debatable if this is good or bad, 
> >> but it's tunable as well.
> >> 
> >> Anyways, the messages should not cause alarm.  Either tune up the chain 
> >> frame count, or tune down the max io count.
> > 
> > I am don't know depends or not, but I see dramaticaly performance drop
> > at time of this messages.
> > 
> 
> Good to know.  Part of the performance drop might be because of the slowness 
> of printing to the console.

no, on console print may be one per minute

> > How I can calculate buffers numbers?
> 
> If your system is new enough to have mpsutil, please run it ‘mpsutil
> show iocfacts’.

As I see mpsutil present only on -HEAD.
Can I compile it on 10-STABLE?

> If not, then boot your system with bootverbose and send me the output.

I can do this day ago.

> > I am have very heavy I/O.
> 
> Out of curiosity, do you redefine MAXPHYS/DFLTPHYS in your kernel config?

no

> > This allocated one for all controllers, or allocated for every controller?
> 
> It’s per-controller.
> 
> I’ve thought about making the tuning be dynamic at runtime.  I
> implemented similar dynamic tuning for other drivers, but it seemed
> overly complex for low benefit.  Implementing it for this driver
> would be possible but require some significant code changes.

What cause of chain_free+io_cmds_active << max_chains?
One cmd can use many chains?
_______________________________________________
freebsd-stable@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to