Currently we are using below API to initialize request queues for our device which is not calling blk_queue_split. But there is one more function blk_init_queues which is internally calling blk_queue_split. So I was thinking to replace blk_alloc_queue with blk_init_queue but since I was not aware of impact I shoot this mail. I wanted to use blk_queue_split to split BIO that block layer is sending since it it too large. Thx dev->osdev.queue = blk_alloc_queue(GFP_KERNEL); -----Original Message----- From: Christoph Hellwig [mailto:hch@xxxxxxxxxxxxx] Sent: Monday, March 13, 2017 7:06 PM To: Umesh Patel Cc: linux-block@xxxxxxxxxxxxxxx Subject: Re: blk_init_queue vs blk_alloc_queue On Mon, Mar 13, 2017 at 09:14:12AM +0000, Umesh Patel wrote: > Hello, > > I Would like to know difference between blk_init_queue and blk_alloc_queue API. > Can anyone explain when to use what ? The short answer is that you should neither. The long answer is that you should send a link to your driver source if you want anyone to help you.