Re: [PATCH v2 00/13] removing the on-stack struct request

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Thu, May 01, 2008 at 09:27:57PM +0900, FUJITA Tomonori wrote:
> This is an updated version of the patchset to clean up the asymmetry
> of blk_get/put_request usage:
> 
> http://marc.info/?l=linux-ide&m=120882410712466&w=2
> 
> This patchset removes the code calling blk_put_request against the
> requests that are not allocated via blk_get_request. They can use
> __GFP_WAIT allocation so we can easily convert them to
> use blk_get/put_request properly.
> 
> This patchset enables us to remove the following hack in
> blk_put_request:
> 
> /*
>  * Gee, IDE calls in w/ NULL q.  Fix IDE and remove the
>  * following if (q) test.
>  */
> if (q) {
> 	spin_lock_irqsave(q->queue_lock, flags);
> 	__blk_put_request(q, req);
> 	spin_unlock_irqrestore(q->queue_lock, flags);
> }
> 
> The major changes are:
> 
> - I remove the ide_wait/head_wait path in ide_do_drive_cmd(). It does
> the same thing that blk_execute_rq() does.

Are you sure about that? Not that I'm that familiar with the blk layer internals
but at a glance blk_execute_rq() calls blk_execute_rq_nowait() and in it, the
rq is added to the elevator and the device queue is being plugged (4th arg
to __elv_add_request(...,1)) and after the last returns the device is being
unplugged again: __generic_unplug_device(q). This way no rq's are getting merged
and it might hurt performance, IMHO.

-- 
Regards/Gruß,
    Boris.
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux