1. 09 7月, 2008 12 次提交
    • 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
    • Y
      x86: make max_pfn cover acpi table below 4g · 2dc807b3
      Yinghai Lu 提交于
      When system have 4g less ram installed, and acpi table sit
      near end of ram, make max_pfn cover them too,
      so 64bit kernel don't need to mess up fixmap.
      Signed-off-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Cc: "Suresh Siddha" <suresh.b.siddha@intel.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2dc807b3
    • I
      x86, uv: build fix #2 for "x86, uv: update x86 mmr list for SGI uv" · 26e9e57b
      Ingo Molnar 提交于
      fix:
      
       In file included from arch/x86/kernel/tlb_uv.c:14:
       include/asm/uv/uv_mmrs.h:986: error: redefinition of ‘union uvh_rh_gam_cfg_overlay_config_mmr_u’
       include/asm/uv/uv_mmrs.h:988: error: redefinition of ‘struct uvh_rh_gam_cfg_overlay_config_mmr_s’
       include/asm/uv/uv_mmrs.h:1064: error: redefinition of ‘union uvh_rh_gam_mmioh_overlay_config_mmr_u’
       include/asm/uv/uv_mmrs.h:1066: error: redefinition of ‘struct uvh_rh_gam_mmioh_overlay_config_mmr_s’
      
      caused by another duplicate section (cut & paste error) in commit
      5d061e39 "x86, uv: update x86 mmr list for SGI uv".
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      26e9e57b
    • I
      x86, uv: build fix for "x86, uv: update x86 mmr list for SGI uv" · e407dffd
      Ingo Molnar 提交于
      fix:
      
      In file included from arch/x86/kernel/genx2apic_uv_x.c:25:
      include/asm/uv/uv_mmrs.h:986: error: redefinition of ‘union uvh_rh_gam_cfg_overlay_config_mmr_u’
      include/asm/uv/uv_mmrs.h:988: error: redefinition of ‘struct uvh_rh_gam_cfg_overlay_config_mmr_s’
      include/asm/uv/uv_mmrs.h:1064: error: redefinition of ‘union uvh_rh_gam_mmioh_overlay_config_mmr_u’
      include/asm/uv/uv_mmrs.h:1066: error: redefinition of ‘struct uvh_rh_gam_mmioh_overlay_config_mmr_s’
      
      caused by duplicate section (cut & paste error) in commit
      5d061e39 "x86, uv: update x86 mmr list for SGI uv".
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e407dffd
    • A
      x86: rename paravirtualized TSC functions · e93ef949
      Alok Kataria 提交于
      Rename the paravirtualized calculate_cpu_khz to calibrate_tsc.
      In all cases, we actually calibrate_tsc and use that as the cpu_khz value.
      Signed-off-by: NAlok N Kataria <akataria@vmware.com>
      Signed-off-by: NDan Hecht <dhecht@vmware.com>
      Cc: Dan Hecht <dhecht@vmware.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e93ef949
    • A
      x86: merge tsc_init and clocksource code · 8fbbc4b4
      Alok Kataria 提交于
      Unify the clocksource code.
      Unify the tsc_init code.
      Signed-off-by: NAlok N Kataria <akataria@vmware.com>
      Signed-off-by: NDan Hecht <dhecht@vmware.com>
      Cc: Dan Hecht <dhecht@vmware.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8fbbc4b4
    • A
      x86: merge tsc calibration · bfc0f594
      Alok Kataria 提交于
      Merge the tsc calibration code for the 32bit and 64bit kernel.
      The paravirtualized calculate_cpu_khz for 64bit now points to the correct
      tsc_calibrate code as in 32bit.
      Original native_calculate_cpu_khz for 64 bit is now called as calibrate_cpu.
      
      Also moved the recalibrate_cpu_khz function in the common file.
      Note that this function is called only from powernow K7 cpu freq driver.
      Signed-off-by: NAlok N Kataria <akataria@vmware.com>
      Signed-off-by: NDan Hecht <dhecht@vmware.com>
      Cc: Dan Hecht <dhecht@vmware.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      bfc0f594
    • D
      x86, uv: update x86 mmr list for SGI uv · 5d061e39
      Dimitri Sivanich 提交于
      This patch updates the X86 mmr list for SGI uv.
      Signed-off-by: NDimitri Sivanich <sivanich@sgi.com>
      Cc: Jack Steiner <steiner@sgi.com>
      Cc: Russ Anderson <rja@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      5d061e39
    • J
      x86: map UV chipset space - UV support · 83f5d894
      Jack Steiner 提交于
      Create page table entries to map the SGI UV chipset GRU. local MMR &
      global MMR ranges.
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      Cc: linux-mm@kvack.org
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      83f5d894
    • J
      x86: map UV chipset space - pagetable · 3a9e189d
      Jack Steiner 提交于
      Add boot-time function for creating additional 2MB page table entries for
      mapping chipset specific cached/uncached ranges.
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      Cc: linux-mm@kvack.org
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      3a9e189d
    • B
      ide: add __ide_default_irq() inline helper · a861beb1
      Bartlomiej Zolnierkiewicz 提交于
      Add __ide_default_irq() inline helper and use it instead of
      ide_default_irq() in ide-probe.c and ns87415.c (all host drivers
      except IDE PCI ones always setup hwif->irq so it is enough to
      check only for I/O bases 0x1f0 and 0x170).
      
      This fixes post-2.6.25 regression since ide_default_irq()
      define could shadow ide_default_irq() inline.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      a861beb1
    • D
      Correct hash flushing from huge_ptep_set_wrprotect() · 86df8642
      David Gibson 提交于
      As Andy Whitcroft recently pointed out, the current powerpc version of
      huge_ptep_set_wrprotect() has a bug.  It just calls ptep_set_wrprotect()
      which in turn calls pte_update() then hpte_need_flush() with the 'huge'
      argument set to 0.  This will cause hpte_need_flush() to flush the wrong
      hash entries (of any).  Andy's fix for this is already in the powerpc
      tree as commit 016b33c4.
      
      I have confirmed this is a real bug, not masked by some other
      synchronization, with a new testcase for libhugetlbfs.  A process write
      a (MAP_PRIVATE) hugepage mapping, fork(), then alter the mapping and
      have the child incorrectly see the second write.
      
      Therefore, this should be fixed for 2.6.26, and for the stable tree.
      Here is a suitable patch for 2.6.26, which I think will also be suitable
      for the stable tree (neither of the headers in question has been changed
      much recently).
      
      It is cut down slighlty from Andy's original version, in that it does
      not include a 32-bit version of huge_ptep_set_wrprotect().  Currently,
      hugepages are not supported on any 32-bit powerpc platform.  When they
      are, a suitable 32-bit version can be added - the only 32-bit hardware
      which supports hugepages does not use the conventional hashtable MMU and
      so will have different needs anyway.
      Signed-off-by: NAndy Whitcroft <apw@shadowen.org>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      86df8642
  2. 08 7月, 2008 28 次提交