1. 25 May, 2011 3 commits
    • Richard Kennedy's avatar
      x86: Reorder mm_context_t to remove x86_64 alignment padding and thus shrink mm_struct · af6a25f0
      Richard Kennedy authored
      Reorder mm_context_t to remove alignment padding on 64 bit
      builds shrinking its size from 64 to 56 bytes.
      
      This allows mm_struct to shrink from 840 to 832 bytes, so using
      one fewer cache lines, and getting more objects per slab when
      using slub.
      
      slabinfo mm_struct reports
      before :-
      
          Sizes (bytes)     Slabs
          -----------------------------------
          Object :     840  Total  :       7
          SlabObj:     896  Full   :       1
          SlabSiz:   16384  Partial:       4
          Loss   :      56  CpuSlab:       2
          Align  :      64  Objects:      18
      
      after :-
      
          Sizes (bytes)     Slabs
          ----------------------------------
          Object :     832  Total  :       7
          SlabObj:     832  Full   :       1
          SlabSiz:   16384  Partial:       4
          Loss   :       0  CpuSlab:       2
          Align  :      64  Objects:      19
      Signed-off-by: default avatarRichard Kennedy <richard@rsk.demon.co.uk>
      Cc: wilsons@start.ca
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Pekka Enberg <penberg@kernel.org>
      Link: http://lkml.kernel.org/r/1306244999.1999.5.camel@castor.rskSigned-off-by: default avatarIngo Molnar <mingo@elte.hu>
      af6a25f0
    • Cliff Wickman's avatar
      x86, UV: Clean up uv_tlb.c · f073cc8f
      Cliff Wickman authored
      SGI UV's uv_tlb.c driver has become rather hard to read, with overly large
      functions, non-standard coding style and (way) too long variable, constant
      and function names and non-obvious code flow sequences.
      
      This patch improves the readability and maintainability of the driver
      significantly, by doing the following strict code cleanups with no side
      effects:
      
       - Split long functions into shorter logical functions.
      
       - Shortened some variable and structure member names.
      
       - Added special functions for reads and writes of MMR regs with
         very long names.
      
       - Added the 'tunables' table to shortened tunables_write().
      
       - Added the 'stat_description' table to shorten uv_ptc_proc_write().
      
       - Pass fewer 'stat' arguments where it can be derived from the 'bcp'
         argument.
      
       - Function definitions consistent on one line, and inline in few (short) cases.
      
       - Moved some small structures and an atomic inline function to the header file.
      
       - Moved some local variables to the blocks where they are used.
      
       - Updated the copyright date.
      
       - Shortened uv_write_global_mmr64() etc. using some aliasing; no
         line breaks. Renamed many uv_.. functions that are not exported.
      
       - Aligned structure fields.
          [ note that not all structures are aligned the same way though; I'd like
            to keep the extensive commenting in some of them. ]
      
       - Shortened some long structure names.
      
       - Standard pass/fail exit from init_per_cpu()
      
       - Vertical alignment for mass initializations.
      
       - More separation between blocks of code.
      
      Tested on a 16-processor Altix UV.
      Signed-off-by: default avatarCliff Wickman <cpw@sgi.com>
      Cc: penberg@kernel.org
      Link: http://lkml.kernel.org/r/E1QOw12-0004MN-Lp@eag09.americas.sgi.comSigned-off-by: default avatarIngo Molnar <mingo@elte.hu>
      f073cc8f
    • Jack Steiner's avatar
      x86, UV: Add support for SGI UV2 hub chip · 2a919596
      Jack Steiner authored
      This patch adds support for a new version of the SGI UV hub
      chip. The hub chip is the node controller that connects multiple
      blades into a larger coherent SSI.
      
      For the most part, UV2 is compatible with UV1. The majority of
      the changes are in the addresses of MMRs and in a few cases, the
      contents of MMRs. These changes are the result in changes in the
      system topology such as node configuration, processor types,
      maximum nodes, physical address sizes, etc.
      Signed-off-by: default avatarJack Steiner <steiner@sgi.com>
      Link: http://lkml.kernel.org/r/20110511175028.GA18006@sgi.comSigned-off-by: default avatarIngo Molnar <mingo@elte.hu>
      2a919596
  2. 24 May, 2011 37 commits