> - Make the synchronization token active resident on the same level as the
> spin lock. They interact with each other until the generic queue handling
> gets sanitized to not attach hardware properties like the hard sector size
> to the queue entities. This is a design mistake in ll_rw_blk biting everybody
> out there.
This does not parse. It is _not_ a design mistake in ll_rw_blk - if it
bites you, you're doing something wrong.
The queue should be a per-device thing. If you have multiple devices with
different hard-sector-sizes (or other queue attributes) on the same queue,
that's _your_ problem, not the problem of ll_rw_block.
Sure, ll_rw_block _allows_ you to use the same queue for multiple devices,
but if you do that you only have yourself to blame, and you get:
- shared values (like the hardsector-size above)
- worse elevator performance (longer queues to traverse)
- worse elevator schedules (mixing devices will caused mixed queue
contents, which makes it basically impossible to do a good ordering)
I thought the IDE layer already did the "one queue per device" thing, is
there somewhere where this isn't true?
In short, I think whatever synchronization token problem there is is
completely an internal IDE problem, and no blame should be laid at anybody
else.
Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/