On Mon, Jul 22, 2019 at 09:09:36PM +0800, Baolin Wang wrote: > Some SD/MMC host controllers can support packed command or packed request, > that means we can package several requests to host controller at one time > to improve performence. And this patch set will introduce MMC packed function > to support this feature by following patches. > > To support MMC packed function, the MMC layer need to know if there are > requests are pending now in hardware queue to help to combine requests > as much as possible. If we know there are requests pending in hardware > queue, then we should not package requests to host controller immediately, > instead we should collect more requests into MMC packed queue to be packed > to host controller with packed condition. > > Thus export this function for MMC packed function. > > Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxx> > --- > block/blk-mq.c | 3 ++- > include/linux/blk-mq.h | 1 + > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/block/blk-mq.c b/block/blk-mq.c > index b038ec6..5bd4ef9 100644 > --- a/block/blk-mq.c > +++ b/block/blk-mq.c > @@ -63,12 +63,13 @@ static int blk_mq_poll_stats_bkt(const struct request *rq) > * Check if any of the ctx, dispatch list or elevator > * have pending work in this hardware queue. > */ > -static bool blk_mq_hctx_has_pending(struct blk_mq_hw_ctx *hctx) > +bool blk_mq_hctx_has_pending(struct blk_mq_hw_ctx *hctx) > { > return !list_empty_careful(&hctx->dispatch) || > sbitmap_any_bit_set(&hctx->ctx_map) || > blk_mq_sched_has_work(hctx); > } > +EXPORT_SYMBOL_GPL(blk_mq_hctx_has_pending); Just wondering why you don't use the 'last' field of 'struct blk_mq_queue_data', which is passed to .queue_rq(), and supposed for implementing batch submission. Thanks, Ming