1. 29 1月, 2009 2 次提交
  2. 21 1月, 2009 1 次提交
    • T
      x86: uv cleanup · bdbcdd48
      Tejun Heo 提交于
      Impact: cleanup
      
      Make the following uv related cleanups.
      
      * collect visible uv related definitions and interfaces into uv/uv.h
        and use it.  this cleans up the messy situation where on 64bit, uv
        is defined properly, on 32bit generic it's dummy and on the rest
        undefined.  after this clean up, uv is defined on 64 and dummy on
        32.
      
      * update uv_flush_tlb_others() such that it takes cpumask of
        to-be-flushed cpus as argument, instead of that minus self, and
        returns yet-to-be-flushed cpumask, instead of modifying the passed
        in parameter.  this interface change will ease dummy implementation
        of uv_flush_tlb_others() and makes uv tlb flush related stuff
        defined in tlb_uv proper.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      bdbcdd48
  3. 04 1月, 2009 3 次提交
  4. 17 12月, 2008 4 次提交
  5. 19 11月, 2008 1 次提交
  6. 18 11月, 2008 2 次提交
    • Y
      x86: fix wakeup_cpu with numaq/es7000, v2, fix · 54ac14a8
      Yinghai Lu 提交于
      Impact: fix wakeup_secondary_cpu with hotplug
      
      We can not put that into x86_quirks, because that is __initdata.
      So try to move that to genapic, and add update_genapic in x86_quirks.
      
      later we even could use that stub to:
      
       1. autodetect CONFIG_ES7000_CLUSTERED_APIC
       2. more correct inquire_remote_apic with apic_verbosity setting.
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      54ac14a8
    • Y
      x86: fix wakeup_cpu with numaq/es7000, v2 · 569712b2
      Yinghai Lu 提交于
      Impact: fix secondary-CPU wakeup/init path with numaq and es7000
      
      While looking at wakeup_secondary_cpu for WAKE_SECONDARY_VIA_NMI:
      
      |#ifdef WAKE_SECONDARY_VIA_NMI
      |/*
      | * Poke the other CPU in the eye via NMI to wake it up. Remember that the normal
      | * INIT, INIT, STARTUP sequence will reset the chip hard for us, and this
      | * won't ... remember to clear down the APIC, etc later.
      | */
      |static int __devinit
      |wakeup_secondary_cpu(int logical_apicid, unsigned long start_eip)
      |{
      |        unsigned long send_status, accept_status = 0;
      |        int maxlvt;
      |...
      |        if (APIC_INTEGRATED(apic_version[phys_apicid])) {
      |                maxlvt = lapic_get_maxlvt();
      
      I noticed that there is no warning about undefined phys_apicid...
      
      because WAKE_SECONDARY_VIA_NMI and WAKE_SECONDARY_VIA_INIT can not be
      defined at the same time. So NUMAQ is using wrong wakeup_secondary_cpu.
      
      WAKE_SECONDARY_VIA_NMI, WAKE_SECONDARY_VIA_INIT and
      WAKE_SECONDARY_VIA_MIP are variants of a weird and fragile
      preprocessor-driven "HAL" mechanisms to specify the kind of secondary-CPU
      wakeup strategy a given x86 kernel will use.
      
      The vast majority of systems want to use INIT for secondary wakeup - NUMAQ
      uses an NMI, (old-style-) ES7000 uses 'MIP' (a firmware driven in-memory
      flag to let secondaries continue).
      
      So convert these mechanisms to x86_quirks and add a
      ->wakeup_secondary_cpu() method to specify the rare exception
      to the sane default.
      
      Extend genapic accordingly as well, for 32-bit.
      
      While looking further, I noticed that functions in wakecup.h for numaq
      and es7000 are different to the default in mach_wakecpu.h - but smpboot.c
      will only use default mach_wakecpu.h with smphook.h.
      
      So we need to add mach_wakecpu.h for mach_generic, to properly support
      numaq and es7000, and vectorize the following SMP init methods:
      
      	int trampoline_phys_low;
      	int trampoline_phys_high;
      	void (*wait_for_init_deassert)(atomic_t *deassert);
      	void (*smp_callin_clear_local_apic)(void);
      	void (*store_NMI_vector)(unsigned short *high, unsigned short *low);
      	void (*restore_NMI_vector)(unsigned short *high, unsigned short *low);
      	void (*inquire_remote_apic)(int apicid);
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      569712b2
  7. 23 10月, 2008 2 次提交
  8. 16 10月, 2008 1 次提交
    • Y
      x86: make 32bit support per_cpu vector · 497c9a19
      Yinghai Lu 提交于
      so we can merge io_apic_32.c and io_apic_64.c
      
      v2: Use cpu_online_map as target cpus for bigsmp, just like 64-bit is doing.
      
      Also remove some unused TARGET_CPUS macro.
      
      v3: need to check if desc is null in smp_irq_move_cleanup
      
      also migration needs to reset vector too, so copy __target_IO_APIC_irq
      from 64bit.
      
      (the duplication will go away once the two files are unified.)
      Signed-off-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      497c9a19
  9. 22 8月, 2008 1 次提交
    • M
      x86: fix section mismatch warning - uv_cpu_init · c4bd1fda
      Marcin Slusarz 提交于
      WARNING: vmlinux.o(.cpuinit.text+0x3cc4): Section mismatch in reference from the function uv_cpu_init() to the function .init.text:uv_system_init()
      The function __cpuinit uv_cpu_init() references
      a function __init uv_system_init().
      If uv_system_init is only used by uv_cpu_init then
      annotate uv_system_init with a matching annotation.
      
      uv_system_init was ment to be called only once, so do it from codepath
      (native_smp_prepare_cpus) which is called once, right before activation
      of other cpus (smp_init).
      
      Note: old code relied on uv_node_to_blade being initialized to 0,
      but it'a not initialized from anywhere.
      Signed-off-by: NMarcin Slusarz <marcin.slusarz@gmail.com>
      Acked-by: NJack Steiner <steiner@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c4bd1fda
  10. 23 7月, 2008 1 次提交
    • V
      x86: consolidate header guards · 77ef50a5
      Vegard Nossum 提交于
      This patch is the result of an automatic script that consolidates the
      format of all the headers in include/asm-x86/.
      
      The format:
      
      1. No leading underscore. Names with leading underscores are reserved.
      2. Pathname components are separated by two underscores. So we can
         distinguish between mm_types.h and mm/types.h.
      3. Everything except letters and numbers are turned into single
         underscores.
      Signed-off-by: NVegard Nossum <vegard.nossum@gmail.com>
      77ef50a5
  11. 13 7月, 2008 1 次提交
  12. 10 7月, 2008 1 次提交
  13. 09 7月, 2008 1 次提交
    • R
      x86: fix C1E && nx6325 stability problem · e2079c43
      Rafael J. Wysocki 提交于
      The problems are that, with the ACPI vs timer overring issue _fixed_,
      after using the box for some time (between several seconds and 1 hour, at
      random) processes get very high CPU loads (once I've got X using 107% of
      the CPU, for example) and the system becomes unresponsive, as though there
      were interrupts lost or something similar.
      
      Andreas Herrman reproduced similar problems:
      
      > Ok, now I've reproduced the stability problem.
      > - Using tip/master,
      > - reverting e38502eb8aa82314d5ab0eba45f50e6790dadd88 and
      > - applying your patch from this posting
      >   http://marc.info/?l=linux-kernel&m=121539354224562&w=4
      >
      > Starting X, firefox, gimp, tuxpaint and doing some drawing in tuxpaint
      > results in a slow system. Drawing is almost not possible anymore --
      > Selections of new colors, cursors etc. is performed with huge delay
      > if it's performed at all.
      >
      > BTW, the code sets up timer IRQ as Virtual Wire IRQ:
      >
      > Jul  8 14:57:58 kodscha IO-APIC (apicid-pin) 2-22, 2-23 not connected.
      > Jul  8 14:57:58 kodscha ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
      > Jul  8 14:57:58 kodscha ...trying to set up timer as Virtual Wire IRQ... works.
      >
      > and both INT0 and INT2 of IOAPIC are masked:
      >
      > Jul  8 14:57:58 kodscha NR Dst Mask Trig IRR Pol Stat Dmod Deli Vect:
      > Jul  8 14:57:58 kodscha 00 000 1    0    0   0   0    0    0    00
      > Jul  8 14:57:58 kodscha 01 003 0    0    0   0   0    1    1    31
      > Jul  8 14:57:58 kodscha 02 003 1    0    0   0   0    0    0    30
      >
      > I've also seen strange CPU utilization -- with syslog-ng:
      >
      > top - 15:33:06 up 35 min,  4 users,  load average: 1.70, 0.68, 0.37
      > Tasks:  64 total,   4 running,  60 sleeping,   0 stopped,   0 zombie
      > Cpu0  :  0.0%us,100.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
      > Cpu1  :  6.4%us, 87.2%sy,  0.0%ni,  5.8%id,  0.0%wa,  0.6%hi,  0.0%si,  0.0%st
      > Mem:    895384k total,   283568k used,   611816k free,    35492k buffers
      > Swap:  1959920k total,        0k used,  1959920k free,   163044k cached
      >
      >   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
      >  4632 root      20   0 17216  800  580 S  104  0.1   0:34.22 syslog-ng
      > 28505 root      20   0  205m  11m 4024 S    6  1.3   0:21.16 X
      > 28518 root      20   0 56292 5652 4492 S    1  0.6   0:01.80 fluxbox
      >     1 root      20   0  3724  608  508 S    0  0.1   0:00.36 init
      >
      > So far I have no clue why C1E-idle in conjunction with virtual wire
      > mode causes this strange behaviour.
      >
      > ... and I start to think about the root cause of all this.
      >
      > I've performed similar tests under X with the IRQ0/INT0 configuration and
      > I did not see above symptoms.
      
      So lets fall back to the IRQ0/INT0 configuration on this box.
      
      This basically restores the dont-use-the-lapic-timer exception mechanism
      that was unconditional on this box prior commit 8750bf5 ("x86: add C1E
      aware idle function").
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e2079c43
  14. 20 4月, 2008 1 次提交
  15. 17 4月, 2008 6 次提交
  16. 11 10月, 2007 1 次提交
  17. 03 5月, 2007 2 次提交
  18. 07 12月, 2006 1 次提交
  19. 26 9月, 2006 1 次提交
    • A
      [PATCH] i386: Allow to use GENERICARCH for UP kernels · 874c4fe3
      Andi Kleen 提交于
      There are some machines around (large xSeries or Unisys ES7000) that
      need physical IO-APIC destination mode to access all of their IO
      devices. This currently doesn't work in UP kernels as used in
      distribution installers.
      
      This patch allows to compile even UP kernels as GENERICARCH which
      allows to use physical or clustered APIC mode.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      874c4fe3
  20. 24 6月, 2005 1 次提交
  21. 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