|
|
Log in / Subscribe / Register

Improvements in the block layer

Improvements in the block layer

Posted Oct 9, 2017 16:35 UTC (Mon) by axboe (subscriber, #904)
In reply to: Improvements in the block layer by willy
Parent article: Improvements in the block layer

I've never claimed that the blk-mq version of the nvme driver was any faster, that's not what that conversion was about. It was about reducing the complexity and features that fast drivers had to implement on their own, implementing all of those in a scalable and efficient manner. The goal for the nvme conversion back then was just performance parity. Some things were faster in blk-mq, like the tag generation, and some things obviously made us take a small hit.

> I'm still not sure that the request based version of the nvme driver is actually an improvement. It's certainly more complicated!

IMHO, that statement is obviously false. If you look at the initial conversion, it removed far more lines than it added. It's utilizing shared code in blk-mq that other drivers get to use as well. These days the driver is obviously more complex than the initial version, but that's due to all of the new features that have been added. Years later at this point, I'd say that was definitely the right decision and an improvement. The simpler we can make drivers, the better off we are. Core code is much more heavily scrutinized than driver code, and shared code means we only have to fix bugs once.


to post comments


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds