• Tejun Heo's avatar
    ida: implement idr based id allocator · 72dba584
    Tejun Heo authored
    Implement idr based id allocator.  ida is used the same way idr is
    used but lacks id -> ptr translation and thus consumes much less
    memory.  struct ida_bitmap is attached as leaf nodes to idr tree which
    is managed by the idr code.  Each ida_bitmap is 128bytes long and
    contains slightly less than a thousand slots.
    
    ida is more aggressive with releasing extra resources acquired using
    ida_pre_get().  After every successful id allocation, ida frees one
    reserved idr_layer if possible.  Reserved ida_bitmap is not freed
    automatically but only one ida_bitmap is reserved and it's almost
    always used right away.  Under most circumstances, ida won't hold on
    to memory for too long which isn't actively used.
    Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    72dba584
idr.c 17.1 KB