[PATCH v3 1/6] iommu/core: split mapping to page sizes as supported by the hardware
From: Ohad Ben-Cohen <hidden>
Date: 2011-09-27 13:29:00
Also in:
kvm, linux-omap, lkml
From: Ohad Ben-Cohen <hidden>
Date: 2011-09-27 13:29:00
Also in:
kvm, linux-omap, lkml
On Tue, Sep 27, 2011 at 4:12 PM, Roedel, Joerg [off-list ref] wrote:
You pass a pointer to an unsigned long for the page-size bitmap. This allows to use an array of unsigned long. But a single unsigned long is sufficient
This is fine; I can change that if you like it better (though without doing the change below this is probably moot).
and you can use functions like ffs() and fls() together with shifting. These functions often translate to a single intruction in the binary. The find_next_bit function has much more overhead because it needs to handle the array-of-ulong case.
So you're suggesting to re-implement find_next_bit() using ffs()/fls() and shifting ? What's the point ? Sure, if we'll have a proven performance issue while using find_next_bit() we can think of doing this, but at this stage, this sounds to me like a premature optimization which isn't too elegant. At this point I strongly prefer readable, maintainable and easier to debug code over optimization which isn't proven to be necessary. Thanks, Ohad.