10 Aug, 2017

2 commits

  • As using the normal static key API under the hotplug lock is
    pretty much impossible, let's provide a variant of some of them
    that require the hotplug lock to have already been taken.

    These function are only meant to be used in CPU hotplug callbacks.

    Signed-off-by: Marc Zyngier
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Leo Yan
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-arm-kernel@lists.infradead.org
    Link: http://lkml.kernel.org/r/20170801080257.5056-4-marc.zyngier@arm.com
    Signed-off-by: Ingo Molnar

    Marc Zyngier
     
  • Any use of key->enabled (that is static_key_enabled and static_key_count)
    outside jump_label_lock should handle its own serialization. The only
    two that are not doing so are the UDP encapsulation static keys. Change
    them to use static_key_enable, which now correctly tests key->enabled under
    the jump label lock.

    Signed-off-by: Paolo Bonzini
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Eric Dumazet
    Cc: Jason Baron
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/1501601046-35683-3-git-send-email-pbonzini@redhat.com
    Signed-off-by: Ingo Molnar

    Paolo Bonzini
     

15 Jul, 2017

1 commit

  • Each text file under Documentation follows a different
    format. Some doesn't even have titles!

    Change its representation to follow the adopted standard,
    using ReST markups for it to be parseable by Sphinx:
    - Mark titles;
    - Add a warning mark;
    - Mark literals and literal blocks;
    - Adjust identation.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Jonathan Corbet

    Mauro Carvalho Chehab
     

28 Apr, 2017

1 commit

  • This commit gets rid of some minor errors in Documentation/:
    * cputopology.txt: drawes -> drawers
    * debugging-via-ohci1394.txt: remove an unnecessary line break
    * static-keys: statemnts -> statements
    * zorro.txt: busses -> buses

    Signed-off-by: Stan Drozd
    Signed-off-by: Jonathan Corbet

    Stan Drozd
     

15 Feb, 2017

1 commit

  • The static_key->next field goes mostly unused. The field is used for
    associating module uses with a static key. Most uses of struct static_key
    define a static key in the core kernel and make use of it entirely within
    the core kernel, or define the static key in a module and make use of it
    only from within that module. In fact, of the ~3,000 static keys defined,
    I found only about 5 or so that did not fit this pattern.

    Thus, we can remove the static_key->next field entirely and overload
    the static_key->entries field. That is, when all the static_key uses
    are contained within the same module, static_key->entries continues
    to point to those uses. However, if the static_key uses are not contained
    within the module where the static_key is defined, then we allocate a
    struct static_key_mod, store a pointer to the uses within that
    struct static_key_mod, and have the static key point at the static_key_mod.
    This does incur some extra memory usage when a static_key is used in a
    module that does not define it, but since there are only a handful of such
    cases there is a net savings.

    In order to identify if the static_key->entries pointer contains a
    struct static_key_mod or a struct jump_entry pointer, bit 1 of
    static_key->entries is set to 1 if it points to a struct static_key_mod and
    is 0 if it points to a struct jump_entry. We were already using bit 0 in a
    similar way to store the initial value of the static_key. This does mean
    that allocations of struct static_key_mod and that the struct jump_entry
    tables need to be at least 4-byte aligned in memory. As far as I can tell
    all arches meet this criteria.

    For my .config, the patch increased the text by 778 bytes, but reduced
    the data + bss size by 14912, for a net savings of 14,134 bytes.

    text data bss dec hex filename
    8092427 5016512 790528 13899467 d416cb vmlinux.pre
    8093205 5001600 790528 13885333 d3df95 vmlinux.post

    Link: http://lkml.kernel.org/r/1486154544-4321-1-git-send-email-jbaron@akamai.com

    Cc: Peter Zijlstra
    Cc: Ingo Molnar
    Cc: Joe Perches
    Signed-off-by: Jason Baron
    Signed-off-by: Steven Rostedt (VMware)

    Jason Baron
     

07 Sep, 2016

1 commit

  • The static key API is currently designed around single variable
    definitions. There are cases where an array of static keys is desirable,
    so extend the API to allow this rather than using the internal static
    key implementation directly.

    Cc: Jason Baron
    Cc: Jonathan Corbet
    Acked-by: Peter Zijlstra (Intel)
    Suggested-by: Dave P Martin
    Signed-off-by: Catalin Marinas
    Signed-off-by: Will Deacon

    Catalin Marinas
     

15 Sep, 2015

1 commit


08 Sep, 2015

1 commit

  • Commit:

    412758cb2670 ("jump label, locking/static_keys: Update docs")

    introduced a typo that might as well get fixed.

    Signed-off-by: Jonathan Corbet
    Cc: Andrew Morton
    Cc: Jason Baron
    Cc: Linus Torvalds
    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20150907131803.54c027e1@lwn.net
    Signed-off-by: Ingo Molnar

    Jonathan Corbet
     

03 Aug, 2015

1 commit

  • Signed-off-by: Jason Baron
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: benh@kernel.crashing.org
    Cc: bp@alien8.de
    Cc: davem@davemloft.net
    Cc: ddaney@caviumnetworks.com
    Cc: heiko.carstens@de.ibm.com
    Cc: linux-kernel@vger.kernel.org
    Cc: liuj97@gmail.com
    Cc: luto@amacapital.net
    Cc: michael@ellerman.id.au
    Cc: rabin@rab.in
    Cc: ralf@linux-mips.org
    Cc: rostedt@goodmis.org
    Cc: vbabka@suse.cz
    Cc: will.deacon@arm.com
    Link: http://lkml.kernel.org/r/6b50f2f6423a2244f37f4b1d2d6c211b9dcdf4f8.1438227999.git.jbaron@akamai.com
    Signed-off-by: Ingo Molnar

    Jason Baron
     

02 Dec, 2013

1 commit


16 Apr, 2012

1 commit


24 Feb, 2012

1 commit

  • Add better documentation for static keys.

    Signed-off-by: Jason Baron
    Cc: rostedt@goodmis.org
    Cc: mathieu.desnoyers@efficios.com
    Cc: davem@davemloft.net
    Cc: ddaney.cavm@gmail.com
    Cc: a.p.zijlstra@chello.nl
    Link: http://lkml.kernel.org/r/52570e566e5f1914f27b67e4eafb5781b8f9f9db.1329851692.git.jbaron@redhat.com
    [ Added a 'Summary' section and rewrote it to explain static keys ]
    Signed-off-by: Ingo Molnar

    Jason Baron