[lkml]   [2018]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH 0/6] lib/scatterlist: Small SGL tidy
From: Tvrtko Ursulin <>

I spotted a few small issues in the recent added SGL code so am sending some
patches to tidy this.

My motivation was looking at sgl_alloc_order to potentially use from the i915
driver, with a small addition to support fall-back to smaller order allocation
if so was requested.

But then I realized scatterlist table allocated with sgl_alloc_order is not
compatible with being put into the sg_table container due different allocator
being used.

If it had used the standard chained scatterlist allocation, it would benefit
from less memory pressure for small-order large length allocations (in other
words large nent - as it stands it can request really large kmalloc allocations
for those cases), but to convert it to use that looks to would require some
refactoring of the SGL API users. So I wasn't sure how feasible would that be.

There were some other unclear bits to me in the SGL API, like why so much API
some of which is unused, so I tried to trim that as well.

So don't know - comments are welcome.

Tvrtko Ursulin (6):
lib/scatterlist: Tidy types and fix overflow checking in
lib/scatterlist: Skip requesting zeroed allocations in sgl_alloc_order
lib/scatterlist: Do not leak pages when high-order allocation fails
lib/scatterlist: Unexport some trivial wrappers
lib/scatterlist: Drop unused sgl_free_order
lib/scatterlist: Drop order argument from sgl_free_n_order

drivers/target/target_core_transport.c | 2 +-
include/linux/scatterlist.h | 36 +++++++++++---
lib/scatterlist.c | 91 +++++++++++-----------------------
3 files changed, 57 insertions(+), 72 deletions(-)

Cc: Bart Van Assche <>
Cc: Hannes Reinecke <>
Cc: Johannes Thumshirn <>
Cc: Jens Axboe <>


 \ /
  Last update: 2018-03-07 13:47    [W:0.144 / U:1.096 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site