• Noam Camus's avatar
    lib/bitmap.c: enhance bitmap syntax · 2d13e6ca
    Noam Camus authored
    Today there are platforms with many CPUs (up to 4K).  Trying to boot only
    part of the CPUs may result in too long string.
    
    For example lets take NPS platform that is part of arch/arc.  This
    platform have SMP system with 256 cores each with 16 HW threads (SMT
    machine) where HW thread appears as CPU to the kernel.  In this example
    there is total of 4K CPUs.  When one tries to boot only part of the HW
    threads from each core the string representing the map may be long...  For
    example if for sake of performance we decided to boot only first half of
    HW threads of each core the map will look like:
    0-7,16-23,32-39,...,4080-4087
    
    This patch introduce new syntax to accommodate with such use case.  I
    added an optional postfix to a range of CPUs which will choose according
    to given modulo the desired range of reminders i.e.:
    
        <cpus range>:sed_size/group_size
    
    For example, above map can be described in new syntax like this:
    0-4095:8/16
    
    Note that this patch is backward compatible with current syntax.
    
    [akpm@linux-foundation.org: rework documentation]
    Link: http://lkml.kernel.org/r/1473579629-4283-1-git-send-email-noamca@mellanox.comSigned-off-by: 's avatarNoam Camus <noamca@mellanox.com>
    Cc: David Decotigny <decot@googlers.com>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: Pan Xinhui <xinhui@linux.vnet.ibm.com>
    Signed-off-by: 's avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: 's avatarLinus Torvalds <torvalds@linux-foundation.org>
    2d13e6ca