1. 18 4月, 2008 1 次提交
    • J
      kgdb: add x86 HW breakpoints · 64e9ee30
      Jason Wessel 提交于
      Add HW breakpoints into the arch specific portion of x86 kgdb.  In the
      current x86 kernel.org kernels HW breakpoints are changed out in lazy
      fashion because there is no infrastructure around changing them when
      changing to a kernel task or entering the kernel mode via a system
      call.  This lazy approach means that if a user process uses HW
      breakpoints the kgdb will loose out.  This is an acceptable trade off
      because the developer debugging the kernel is assumed to know what is
      going on system wide and would be aware of this trade off.
      
      There is a minor bug fix to the kgdb core so as to correctly call the
      hw breakpoint functions with a valid value from the enum.
      
      There is also a minor change to the x86_64 startup code when using
      early HW breakpoints.  When the debugger is connected, the cpu startup
      code must not zero out the HW breakpoint registers or you cannot hit
      the breakpoints you are interested in, in the first place.
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      64e9ee30
  2. 17 4月, 2008 2 次提交
    • J
      x86: support for new UV apic · ac23d4ee
      Jack Steiner 提交于
      UV supports really big systems. So big, in fact, that the APICID register
      does not contain enough bits to contain an APICID that is unique across all
      cpus.
      
      The UV BIOS supports 3 APICID modes:
      
      	- legacy mode. This mode uses the old APIC mode where
      	  APICID is in bits [31:24] of the APICID register.
      
      	- x2apic mode. This mode is whitebox-compatible. APICIDs
      	  are unique across all cpus. Standard x2apic APIC operations
      	  (Intel-defined) can be used for IPIs. The node identifier
      	  fits within the Intel-defined portion of the APICID register.
      
      	- x2apic-uv mode. In this mode, the APICIDs on each node have
      	  unique IDs, but IDs on different node are not unique. For example,
      	  if each mode has 32 cpus, the APICIDs on each node might be
      	  0 - 31. Every node has the same set of IDs.
      	  The UV hub is used to route IPIs/interrupts to the correct node.
      	  Traditional APIC operations WILL NOT WORK.
      
      In x2apic-uv mode, the ACPI tables all contain a full unique ID (note:
      exact bit layout still changing but the following is close):
      
      	nnnnnnnnnnlc0cch
      		n = unique node number
      		l = socket number on board
      		c = core
      		h = hyperthread
      
      Only the "lc0cch" bits are written to the APICID register. The remaining bits are
      supplied by having the get_apic_id() function "OR" the extra bits into the value
      read from the APICID register. (Hmmm.. why not keep the ENTIRE APICID register
      in per-cpu data....)
      
      The x2apic-uv mode is recognized by the MADT table containing:
      	  oem_id = "SGI"
      	  oem_table_id = "UV-X"
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ac23d4ee
    • G
      x86: use specialized routine for setup per-cpu area · 4fe29a85
      Glauber de Oliveira Costa 提交于
      We use the same routing as x86_64, moved now to setup.c.
      Just with a few ifdefs inside.
      Note that this routing uses prefill_possible_map().
      It has the very nice side effect of allowing hotplugging of
      cpus that are marked as present but disabled by acpi bios.
      Signed-off-by: NGlauber Costa <gcosta@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4fe29a85
  3. 22 3月, 2008 1 次提交
  4. 30 1月, 2008 7 次提交
  5. 20 10月, 2007 2 次提交
  6. 17 10月, 2007 1 次提交
  7. 11 10月, 2007 1 次提交
  8. 23 6月, 2007 1 次提交
  9. 03 5月, 2007 2 次提交
  10. 13 2月, 2007 1 次提交
  11. 26 9月, 2006 6 次提交
    • A
      [PATCH] Don't leak NT bit into next task · 658fdbef
      Andi Kleen 提交于
      SYSENTER can cause a NT to be set which might cause crashes on the IRET
      in the next task.
      
      Following similar i386 patch from Linus.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      658fdbef
    • K
      [PATCH] Remove most of the special cases for the debug IST stack · f5741644
      Keith Owens 提交于
      Remove most of the special cases for the debug IST stack.  This is a
      follow on clean up patch, it requires the bug fix patch that adds
      orig_ist.
      Signed-off-by: NKeith Owens <kaos@ocs.com.au>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      f5741644
    • A
      [PATCH] Optimize PDA accesses slightly · 53ee11ae
      Andi Kleen 提交于
      Based on a idea by Jeremy Fitzhardinge:
      
      Replace the volatiles and memory clobbers in the PDA access with
      telling gcc about access to a proxy PDA structure that doesn't
      actually exist. But the dummy accesses give a defined ordering for
      read/write accesses.
      
      Also add some memory barriers to the early GS initialization to
      make sure no PDA access is moved before it.
      
      Advantage is some .text savings (probably most from better
      code for accessing "current"):
      
         text    data     bss     dec     hex filename
      4845647 1223688  615864 6685199  66020f vmlinux
      4837780 1223688  615864 6677332  65e354 vmlinux-pda
      
      1.2% smaller code
      
      Cc:  Jeremy Fitzhardinge <jeremy@goop.org>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      53ee11ae
    • E
      [PATCH] Auto size the per cpu area. · ba4d40bb
      Eric W. Biederman 提交于
      Now for a completely different but trivial approach.
      I just boot tested it with 255 CPUS and everything worked.
      
      Currently everything (except module data) we place in
      the per cpu area we know about at compile time.  So
      instead of allocating a fixed size for the per_cpu area
      allocate the number of bytes we need plus a fixed constant
      for to be used for modules.
      
      It isn't perfect but it is much less of a pain to
      work with than what we are doing now.
      
      AK: fixed warning
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      ba4d40bb
    • A
      [PATCH] Make boot_param_data pure BSS · 2717941c
      Andi Kleen 提交于
      Since it's all zero.
      
      Actually I think gcc 4+ will do that automatically, but earlier compilers won't
      Signed-off-by: NAndi Kleen <ak@suse.de>
      2717941c
    • A
      [PATCH] Convert x86-64 to early param · 2c8c0e6b
      Andi Kleen 提交于
      Instead of hackish manual parsing
      
      Requires earlier i386 patchkit, but also fixes i386 early_printk again.
      
      I removed some obsolete really early parameters which didn't do anything useful.
      Also made a few parameters that needed it early (mostly oops printing setup)
      
      Also removed one panic check that wasn't visible without
      early console anyways (the early console is now initialized after that
      panic)
      
      This cleans up a lot of code.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      2c8c0e6b
  12. 31 8月, 2006 1 次提交
  13. 01 7月, 2006 1 次提交
  14. 27 6月, 2006 2 次提交
  15. 01 4月, 2006 1 次提交
    • O
      [PATCH] Don't pass boot parameters to argv_init[] · 9b41046c
      OGAWA Hirofumi 提交于
      The boot cmdline is parsed in parse_early_param() and
      parse_args(,unknown_bootoption).
      
      And __setup() is used in obsolete_checksetup().
      
      	start_kernel()
      		-> parse_args()
      			-> unknown_bootoption()
      				-> obsolete_checksetup()
      
      If __setup()'s callback (->setup_func()) returns 1 in
      obsolete_checksetup(), obsolete_checksetup() thinks a parameter was
      handled.
      
      If ->setup_func() returns 0, obsolete_checksetup() tries other
      ->setup_func().  If all ->setup_func() that matched a parameter returns 0,
      a parameter is seted to argv_init[].
      
      Then, when runing /sbin/init or init=app, argv_init[] is passed to the app.
      If the app doesn't ignore those arguments, it will warning and exit.
      
      This patch fixes a wrong usage of it, however fixes obvious one only.
      Signed-off-by: NOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9b41046c
  16. 26 3月, 2006 4 次提交
  17. 19 1月, 2006 1 次提交
  18. 17 1月, 2006 1 次提交
  19. 12 1月, 2006 4 次提交