04 Oct, 2006

1 commit


30 Sep, 2006

2 commits


26 Sep, 2006

2 commits


29 Jul, 2006

1 commit


27 Jun, 2006

1 commit

  • This patch hooks Calgary into the build, the x86-64 IOMMU
    initialization paths, and introduces the Calgary specific bits. The
    implementation draws inspiration from both PPC (which has support for
    the same chip but requires firmware support which we don't have on
    x86-64) and gart. Calgary is different from gart in that it support a
    translation table per PHB, as opposed to the single gart aperture.

    Changes from previous version:
    * Addition of boot-time disablement for bus-level translation/isolation
    (e.g, enable userspace DMA for things like X)
    * Usage of newer IOMMU abstraction functions

    Signed-off-by: Muli Ben-Yehuda
    Signed-off-by: Jon Mason
    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Jon Mason
     

10 Apr, 2006

1 commit

  • From: Keith Mannthey, Andi Kleen

    Implement memory hotadd without sparsemem. The memory in the SRAT
    hotadd area is just preserved instead and can be activated later.

    There are a few restrictions:
    - Only one continuous hotadd area allowed per node

    The main problem is dealing with the many buggy SRAT tables
    that are out there. The strategy here is to reject anything
    suspicious.

    Originally from Keith Mannthey, with several hacks and changes by AK
    and also contributions from Andrew Morton

    [ TBD: Problems pointed out by KAMEZAWA Hiroyuki :

    1) Goto's rebuild_zonelist patch will not work if CONFIG_MEMORY_HOTPLUG=n.

    Rebuilding zonelist is necessary when the system has just memory <
    4G at boot, and hot add memory > 4G. because x86_64 has DMA32,
    ZONE_NORAML is not included into zonelist at boot time if system
    doesn't have memory >4G at boot.

    [AK: should just force the higher zones at boot time when SRAT tells us]

    2) zone and node's spanned_pages and present_pages are not incremented.
    They should be.

    For example, our server (ia64/Fujitsu PrimeQuest) can equip memory
    from 4G to 1T(maybe 2T in future), and SRAT will *always* say we have
    possible 1T +memory. (Microsoft requires "write all possible memory
    in SRAT") When we reserve memmap for possible 1T memory, Linux will
    not work well in +minimum 4G configuraion ;)

    [AK: needs limiting to 5-10% of max memory]
    ]

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     

27 Feb, 2006

1 commit

  • The previous experiment for using apicmaintimer on ATI systems didn't
    work out very well. In particular laptops with C2/C3 support often
    don't let it tick during idle, which makes it useless. There were also
    some other bugs that made the apicmaintimer often not used at all.

    I tried some other experiments - running timer over RTC and some other
    things but they didn't really work well neither.

    I rechecked the specs now and it turns out this simple change is
    actually enough to avoid the double ticks on the ATI systems. We just
    turn off IRQ 0 in the 8254 and only route it directly using the IO-APIC.

    I tested it on a few ATI systems and it worked there. In fact it worked
    on all chipsets (NVidia, Intel, AMD, ATI) I tried it on.

    According to the ACPI spec routing should always work through the
    IO-APIC so I think it's the correct thing to do anyways (and most of the
    old gunk in check_timer should be thrown away for x86-64).

    But for 2.6.16 it's best to do a fairly minimal change:
    - Use the known to be working everywhere-but-ATI IRQ0 both over 8254
    and IO-APIC setup everywhere
    - Except on ATI disable IRQ0 in the 8254
    - Remove the code to select apicmaintimer on ATI chipsets
    - Add some boot options to allow to override this (just paranoia)

    In 2.6.17 I hope to switch the default over to this for everybody.

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     

05 Feb, 2006

2 commits

  • On some broken motherboards (at least one NForce3 based AMD64 laptop)
    the PIT timer runs at a incorrect frequency. This patch adds a new
    option "apicpmtimer" that allows to use the APIC timer and calibrate it
    using the PMTimer. It requires the earlier patch that allows to run the
    main timer from the APIC.

    Specifying apicpmtimer implies apicmaintimer.

    The option defaults to off for now.

    I tested it on a few systems and the resulting APIC timer frequencies
    were usually a bit off, but always
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • Another piece from the no-idle-tick patch.

    This can be enabled with the "apicmaintimer" option.

    This is mainly useful when the PIT/HPET interrupt is unreliable.
    Note there are some systems that are known to stop the APIC
    timer in C3. For those it will never work, but this case
    should be automatically detected.

    It also only works with PM timer right now. When HPET is used
    the way the main timer handler computes the delay doesn't work.

    It should be a bit more efficient because there is one less
    regular interrupt to process on the boot processor.

    Requires earlier bugfix from Venkatesh

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     

15 Jan, 2006

1 commit


12 Jan, 2006

2 commits


15 Nov, 2005

4 commits

  • CONFIG_CHECKING covered some debugging code used in the early times
    of the port. But it wasn't even SMP safe for quite some time
    and the bugs it checked for seem to be gone.

    This patch removes all the code to verify GS at kernel entry. There
    haven't been any new bugs in this area for a long time.

    Previously it also covered the sysctl for the page fault tracing.
    That didn't make much sense because that code was unconditionally
    compiled in. I made that a boot option now because it is typically
    only useful at boot.

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • The logging for boot errors was turned off because it was broken
    on some AMD systems. But give Intel EM64T systems a chance because they are
    supposed to be correct there.

    The advantage is that there is a chance to actually log uncorrected
    machine checks after the reset.

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • With a NR_CPUS==128 kernel with CPU hotplug enabled we would waste 4MB
    on per CPU data of all possible CPUs. The reason was that HOTPLUG
    always set up possible map to NR_CPUS cpus and then we need to allocate
    that much (each per CPU data is roughly ~32k now)

    The underlying problem is that ACPI didn't tell us how many hotplug CPUs
    the platform supports. So the old code just assumed all, which would
    lead to this memory wastage.

    This implements some new heuristics:

    - If the BIOS specified disabled CPUs in the ACPI/mptables assume they
    can be enabled later (this is bending the ACPI specification a bit,
    but seems like a obvious extension)
    - The user can overwrite it with a new additionals_cpus=NUM option
    - Otherwise use half of the available CPUs or 2, whatever is more.

    Cc: ashok.raj@intel.com
    Cc: len.brown@intel.com

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • I got some questions on this, so just fix up the documentation.

    Signed-off-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Andi Kleen
     

13 Sep, 2005

1 commit


08 Aug, 2005

1 commit

  • Don't log machine check events left over from boot. Too many BIOSes leave
    bogus events in there.

    This unfortunately also makes it impossible to log events that caused a
    reboot. For people with non broken BIOS there is mce=bootlog

    Signed-off-by: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andi Kleen
     

29 Jul, 2005

1 commit


21 May, 2005

1 commit

  • This works around the too fast timer seen on some ATI boards.

    I don't feel confident enough about it yet to enable it by default, but give
    users the option.

    Patch and debugging from Christopher Allen Wing , with
    minor tweaks (renamed the option and documented it)

    Signed-off-by: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andi Kleen
     

17 Apr, 2005

1 commit

  • 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!

    Linus Torvalds