1. 30 9月, 2006 1 次提交
    • V
      [PATCH] Re-positioning the bss segment · 120b1142
      Vivek Goyal 提交于
      [AK: This apparently broke some systems, but we need it to fix
      a compile problem with old binutils and in theory the patch
      is correct. So let's trying reenabling it again.]
      
      o Currently bss segment is being placed somewhere in the middle (after .data)
        section and after bss lots of init section and data sections are coming.
        Is it intentional?
      
      o One side affect of placing bss in the middle is that objcopy keeps the
        bss in raw binary image (vmlinux.bin) hence unnecessarily increasing
        the size of raw binary image. (In my case ~600K). It also increases
        the size of generated bzImage, though the increase is very small
        (896 bytes), probably a very high compression ratio for stream
        of zeros.
      
      o This patch moves the bss at the end hence reducing the size of
        bzImage by 896 bytes and size of vmlinux.bin by 600K.
      
      o This change benefits in the context of relocatable kernel patches. If
        kernel bss is not part of compressed data (vmlinux.bin) then it does
        not have to be decompressed and this area can be used by the decompressor
        for its execution hence keeping the memory requirements bounded and
        decompressor code does not stomp over any other data loaded beyond
        kernel image (As might be the case with bootloaders like kexec).
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      120b1142
  2. 26 9月, 2006 3 次提交
    • A
      [PATCH] Mark per cpu data initialization __initdata again · b38337a6
      Andi Kleen 提交于
      Before 2.6.16 this was changed to work around code that accessed
      CPUs not in the possible map. But that code should be all fixed now,
      so mark it __initdata again.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      b38337a6
    • I
      [PATCH] Put .note.* sections into a PT_NOTE segment · f2a9e1de
      Ian Campbell 提交于
      This patch updates x86_64 linker script to pack any .note.* sections
      into a PT_NOTE segment in the output file.
      
      To do this, we tell ld that we need a PT_NOTE segment.  This requires
      us to start explicitly mapping sections to segments, so we also need
      to explicitly create PT_LOAD segments for text and data, and map the
      sections to them appropriately.  Fortunately, each section will
      default to its previous section's segment, so it doesn't take many
      changes to vmlinux.lds.S.
      
      The corresponding change is already made for i386 in -mm and I'd like
      this patch to join it. The section to segment mappings do change as do
      the segment flags so some time in -mm would be good for that reason as
      well, just in case.
      
      In particular .data and .bss move from the text segment to the data
      segment and .data.cacheline_aligned .data.read_mostly are put in the
      data segment instead of a separate one.
      
      I think that it would be possible to exactly match the existing section
      to segment mapping and flags but it would be a more intrusive change and
      I'm not sure there is a reason for the existing layout other than it is
      what you get by default if you don't explicitly specify something else.
      If there is a reason for the existing layout then I will of course make
      the more intrusive change. If there is no reason we could probably drop
      the executable or writable flags from some segments but I don't know how
      much attention is paid to them anyway so it might not be worth the
      effort.
      
      The vsyscall related sections need to go in a different segment to the
      normal data segment and so I invented a "user" segment to contain them.
      I believe this should appear to be another data segment as far as the
      kernel is concerned so the flags are setup accordingly.
      
      The notes will be used in the Xen paravirt_ops backend to provide
      additional information to the domain builder. I am in the process of
      converting the xen-unstable kernels and tools over to this scheme at the
      moment to support this in the future.
      
      It has been suggested to me that the notes segment should have flags 0
      (i.e. not readable) since it is only used by the loader and is not used
      at runtime. For now I went with a readable segment since that is what
      the i386 patch uses.
      
      AK: dropped NOTES addition right now because the needed infrastructure
      for that is not merged yet
      Signed-off-by: NIan Campbell <ian.campbell@xensource.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      f2a9e1de
    • V
      [PATCH] Add the vgetcpu vsyscall · c08c8205
      Vojtech Pavlik 提交于
      This patch adds a vgetcpu vsyscall, which depending on the CPU RDTSCP
      capability uses either the RDTSCP or CPUID to obtain a CPU and node
      numbers and pass them to the program.
      
      AK: Lots of changes over Vojtech's original code:
      Better prototype for vgetcpu()
      It's better to pass the cpu / node numbers as separate arguments
      to avoid mistakes when going from SMP to NUMA.
      Also add a fast time stamp based cache using a user supplied
      argument to speed things more up.
      Use fast method from Chuck Ebbert to retrieve node/cpu from
      GDT limit instead of CPUID
      Made sure RDTSCP init is always executed after node is known.
      Drop printk
      Signed-off-by: NVojtech Pavlik <vojtech@suse.cz>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      c08c8205
  3. 01 7月, 2006 1 次提交
  4. 27 6月, 2006 2 次提交
    • J
      [PATCH] x86_64: reliable stack trace support (x86-64) · b538ed27
      Jan Beulich 提交于
      These are the x86_64-specific pieces to enable reliable stack traces. The
      only restriction with this is that it currently cannot unwind across the
      interrupt->normal stack boundary, as that transition is lacking proper
      annotation.
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b538ed27
    • G
      [PATCH] x86_64: x86_64 version of the smp alternative patch. · d167a518
      Gerd Hoffmann 提交于
      Changes are largely identical to the i386 version:
      
       * alternative #define are moved to the new alternative.h file.
       * one new elf section with pointers to the lock prefixes which can be
         nop'ed out for non-smp.
       * two new elf sections simliar to the "classic" alternatives to
         replace SMP code with simpler UP code.
       * fixup headers to use alternative.h instead of defining their own
         LOCK / LOCK_PREFIX macros.
      
      The patch reuses the i386 version of the alternatives code to avoid code
      duplication.  The code in alternatives.c was shuffled around a bit to
      reduce the number of #ifdefs needed.  It also got some tweaks needed for
      x86_64 (vsyscall page handling) and new features (noreplacement option
      which was x86_64 only up to now).  Debug printk's are changed from
      compile-time to runtime.
      
      Loosely based on a early version from Bastian Blank <waldi@debian.org>
      Signed-off-by: NGerd Hoffmann <kraxel@suse.de>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d167a518
  5. 10 4月, 2006 1 次提交
  6. 26 3月, 2006 2 次提交
    • A
      [PATCH] x86_64: Basic reorder infrastructure · 4bdc3b7f
      Arjan van de Ven 提交于
      This patch puts the infrastructure in place to allow for a reordering of
      functions based inside the vmlinux. The general idea is that it is possible
      to put all "common" functions into the first 2Mb of the code, so that they
      are covered by one TLB entry. This as opposed to the current situation where
      a typical vmlinux covers about 3.5Mb (on x86-64) and thus 2 TLB entries.
      
      This is done by enabling the -ffunction-sections flag in gcc, which puts
      each function in its own ELF section, so that the linker can then order them
      in a way defined by the linker script.
      
      As per previous discussions, Linus said he wanted a "static" list for this,
      eg a list provided by the kernel tarbal, so that most people have the same
      ordering at least. A script is provided to create this list based on
      readprofile(1) output. The included list is provisional, and entirely biased
      on my own testbox and me running a few kernel compiles and some other
      things.
      
      I think that to get to a better list we need to invite people to submit
      their own profiles, and somehow add those all up and base the final list on
      that. I'm willing to do that effort if this is ends up being the prefered
      approach. Such an effort probably needs to be repeated like once a year or
      so to adopt to the changing nature of the kernel.
      
      Made it a CONFIG with default n because it increases link times
      dramatically.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4bdc3b7f
    • A
      [PATCH] x86_64: Patch to make the head.S-must-be-first-in-vmlinux order explicit · eaeae0cc
      Arjan van de Ven 提交于
      This patch puts the code from head.S in a special .bootstrap.text
      section.
      
      I'm working on a patch to reorder the functions in the kernel (I'll post
      that later), but for x86-64 at least the kernel bootstrap requires that
      the head.S functions are on the very first page/pages of the kernel
      text.  This is understandable since the bootstrap is complex enough
      already and not a problem at all, it just means they aren't allowed to
      be reordered.  This patch puts these special functions into a separate
      section to document this, and to guarantee this in the light of possibly
      reordering the rest later.
      
      (So this patch doesn't fix a bug per se, but makes things more robust by
      making the order of these functions explicit)
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      eaeae0cc
  7. 05 2月, 2006 2 次提交
  8. 12 1月, 2006 2 次提交
  9. 15 11月, 2005 1 次提交
  10. 11 9月, 2005 1 次提交
  11. 08 9月, 2005 1 次提交
  12. 13 7月, 2005 1 次提交
  13. 08 7月, 2005 1 次提交
  14. 26 6月, 2005 1 次提交
  15. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4