On 5/31/22 15:48, Robin Murphy wrote:
On 2022-05-31 19:17, Tony Battersby wrote:The stored value is also used in patch #5, in more performance-critical
pool->name, blocks,Do we really need to store this? Sure, 4 divisions (which could possibly
- (size_t) pages *
- (pool->allocation / pool->size),
+ (size_t) pages * pool->blks_per_alloc,
pool->size, pages);
size -= temp;
next += temp;
@@ -168,6 +168,9 @@ struct dma_pool *dma_pool_create(const char *name, struct device *dev,
retval->size = size;
retval->boundary = boundary;
retval->allocation = allocation;
+ retval->blks_per_alloc =
+ (allocation / boundary) * (boundary / size) +
+ (allocation % boundary) / size;
be fewer given the constraints on boundary) isn't the absolute cheapest
calculation, but I still can't imagine anyone would be polling sysfs
stats hard enough to even notice.
code, although only when debug is enabled.