Hi Ming; thanks for reviewing. I've not seen anything in 5.x. Currently, we have a RHEL case for kernel 3.x where we've hit this error, but we've yet to identify root cause. As part of debugging, the techs involved are having to grab the values via systemtap (which the end-user is resisting). Please feel free to contact me off-list if you want the details on the case. If the patch is approved here, I was planning to see if you would pull it into the RHEL stream for 4.x so we would not have to mess w/ systemtap next time. Generally, in support, when we see this error it's from an admin or script setting bad stacking values. On Thu, May 23, 2019 at 9:58 PM Ming Lei <tom.leiming@xxxxxxxxx> wrote: > > On Fri, May 24, 2019 at 5:50 AM John Pittman <jpittman@xxxxxxxxxx> wrote: > > > > While troubleshooting issues where cloned request limits have been > > exceeded, it is often beneficial to know the actual values that > > have been breached. Print these values, assisting in ease of > > identification of root cause of the breach. > > > > Signed-off-by: John Pittman <jpittman@xxxxxxxxxx> > > --- > > block/blk-core.c | 7 +++++-- > > 1 file changed, 5 insertions(+), 2 deletions(-) > > > > diff --git a/block/blk-core.c b/block/blk-core.c > > index 419d600e6637..af62150bb1ba 100644 > > --- a/block/blk-core.c > > +++ b/block/blk-core.c > > @@ -1199,7 +1199,9 @@ static int blk_cloned_rq_check_limits(struct request_queue *q, > > struct request *rq) > > { > > if (blk_rq_sectors(rq) > blk_queue_get_max_sectors(q, req_op(rq))) { > > - printk(KERN_ERR "%s: over max size limit.\n", __func__); > > + printk(KERN_ERR "%s: over max size limit. (%u > %u)\n", > > + __func__, blk_rq_sectors(rq), > > + blk_queue_get_max_sectors(q, req_op(rq))); > > return -EIO; > > } > > > > @@ -1211,7 +1213,8 @@ static int blk_cloned_rq_check_limits(struct request_queue *q, > > */ > > blk_recalc_rq_segments(rq); > > if (rq->nr_phys_segments > queue_max_segments(q)) { > > - printk(KERN_ERR "%s: over max segments limit.\n", __func__); > > + printk(KERN_ERR "%s: over max segments limit. (%hu > %hu)\n", > > + __func__, rq->nr_phys_segments, queue_max_segments(q)); > > return -EIO; > > } > > Reviewed-by: Ming Lei <ming.lei@xxxxxxxxxx> > > BTW, do you still see such kind of warning since v5.1? If yes, could > you share something > more? > > Thanks, > Ming Lei