22 Jun, 2005

3 commits

  • A lot of the code in arch/*/mm/hugetlbpage.c is quite similar. This patch
    attempts to consolidate a lot of the code across the arch's, putting the
    combined version in mm/hugetlb.c. There are a couple of uglyish hacks in
    order to covert all the hugepage archs, but the result is a very large
    reduction in the total amount of code. It also means things like hugepage
    lazy allocation could be implemented in one place, instead of six.

    Tested, at least a little, on ppc64, i386 and x86_64.

    Notes:
    - this patch changes the meaning of set_huge_pte() to be more
    analagous to set_pte()
    - does SH4 need s special huge_ptep_get_and_clear()??

    Acked-by: William Lee Irwin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Gibson
     
  • This patch implements a number of smp_processor_id() cleanup ideas that
    Arjan van de Ven and I came up with.

    The previous __smp_processor_id/_smp_processor_id/smp_processor_id API
    spaghetti was hard to follow both on the implementational and on the
    usage side.

    Some of the complexity arose from picking wrong names, some of the
    complexity comes from the fact that not all architectures defined
    __smp_processor_id.

    In the new code, there are two externally visible symbols:

    - smp_processor_id(): debug variant.

    - raw_smp_processor_id(): nondebug variant. Replaces all existing
    uses of _smp_processor_id() and __smp_processor_id(). Defined
    by every SMP architecture in include/asm-*/smp.h.

    There is one new internal symbol, dependent on DEBUG_PREEMPT:

    - debug_smp_processor_id(): internal debug variant, mapped to
    smp_processor_id().

    Also, i moved debug_smp_processor_id() from lib/kernel_lock.c into a new
    lib/smp_processor_id.c file. All related comments got updated and/or
    clarified.

    I have build/boot tested the following 8 .config combinations on x86:

    {SMP,UP} x {PREEMPT,!PREEMPT} x {DEBUG_PREEMPT,!DEBUG_PREEMPT}

    I have also build/boot tested x64 on UP/PREEMPT/DEBUG_PREEMPT. (Other
    architectures are untested, but should work just fine.)

    Signed-off-by: Ingo Molnar
    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • The implementation is optimal for UltraSPARC-III and later.
    It will work, however suboptimally, on UltraSPARC-II and
    be treated as a NOP on UltraSPARC-I.

    It is not worth code patching this thing as the highest cost
    is the code space, and code patching cannot eliminate that.

    Signed-off-by: David S. Miller

    David S. Miller
     

08 Jun, 2005

1 commit

  • When Linux is running on the Xen virtual machine monitor, physical
    addresses are virtualised and cannot be directly referenced by the AGP
    GART. This patch fixes the GART driver for Xen by adding a layer of
    abstraction between physical addresses and 'GART addresses'.

    Architecture-specific functions are also defined for allocating and freeing
    the GATT. Xen requires this to ensure that table really is contiguous from
    the point of view of the GART.

    These extra interface functions are defined as 'no-ops' for all existing
    architectures that use the GART driver.

    Signed-off-by: Keir Fraser
    Signed-off-by: Andrew Morton
    Signed-off-by: Dave Jones

    Keir Fraser
     

01 Jun, 2005

1 commit

  • Firstly, if the direction is TODEVICE, then dirty data in the
    streaming cache is impossible so we can elide the flush-flag
    synchronization in that case.

    Next, the context allocator is broken. It is highly likely
    that contexts get used multiple times for different dma
    mappings, which confuses the strbuf flushing code and makes
    it run inefficiently.

    Signed-off-by: David S. Miller

    David S. Miller
     

24 May, 2005

1 commit

  • Older UltraSPARC-III chips have a P-Cache bug that makes us disable it
    by default at boot time.

    However, this does hurt performance substantially, particularly with
    memcpy(), and the bug is _incredibly_ obscure. I have never seen it
    triggered in practice, ever.

    So provide a "-P" boot option that forces the P-Cache on. It taints
    the kernel, so if it does trigger and cause some data corruption or
    OOPS, we will find out in the logs that this option was on when it
    happened.

    Signed-off-by: David S. Miller

    David S. Miller
     

06 May, 2005

1 commit


04 May, 2005

2 commits

  • New file - asm-generic/signal.h. Contains declarations of
    __sighandler_t, __sigrestore_t, SIG_DFL, SIG_IGN, SIG_ERR and default
    definitions of SIG_BLOCK, SIG_UNBLOCK and SIG_SETMASK.

    asm-*/signal.h switched to including it. The only exception is
    asm-parisc/signal.h that wants its own declaration of __sighandler_t;
    that one is left as-is.

    asm-ppc64/signal.h required one more thing - unlike everybody else it
    used __sigrestorer_t instead of usual __sigrestore_t. PPC64 switched to
    common spelling.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • Part of parport_pc that uses ISA DMA helpers made conditional on
    CONFIG_ISA_DMA_API. As the result, driver got usable for boxen that do
    not have ISA DMA stuff and have normal PCI parport card stuck into
    them - these never use DMA anyway.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     

01 May, 2005

4 commits

  • Discussing with Matthew Wilcox some of his outstanding patches lead me to
    this patch (among others).

    The preamble in struct sigevent can be expressed independently of the
    architecture.

    Also use __ARCH_SI_PREAMBLE_SIZE on ia64.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • Add EOWNERDEAD and ENOTRECOVERABLE to all architectures. This is to
    support the upcoming patches for robust mutexes.

    We normally don't reserve parts of the name/number space for external
    patches, but robust mutexes are sufficiently popular and important to
    justify it in this case.

    Signed-off-by: Joe Korty
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Korty
     
  • The attached patch moves the IRQ-related SA_xxx flags (namely, SA_PROBE,
    SA_SAMPLE_RANDOM and SA_SHIRQ) from all the arch-specific headers to
    linux/signal.h. This looks like a left-over after the irq-handling code
    was consolidated. The code was moved to kernel/irq/*, but the flags are
    still left per-arch.

    Right now, adding a new IRQ flag to the arch-specific header, like this
    patch does:
    http://cvs.sourceforge.net/viewcvs.py/*checkout*/alsa/alsa-driver/utils/patches/pcsp-kernel-2.6.10-03.diff?rev=1.1
    no longer works, it breaks the compilation for all other arches, unless you
    add that flag to all the other arch-specific headers too. So I think such
    a clean-up makes sense.

    Signed-off-by: Stas Sergeev
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stas Sergeev
     
  • This patch eliminates all kernel BUGs, trims about 35k off the typical
    kernel, and makes the system slightly faster.

    Signed-off-by: Matt Mackall
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Mackall
     

25 Apr, 2005

2 commits


22 Apr, 2005

2 commits


21 Apr, 2005

1 commit


20 Apr, 2005

2 commits

  • Replace misleading definition of FIRST_USER_PGD_NR 0 by definition of
    FIRST_USER_ADDRESS 0 in all the MMU architectures beyond arm and arm26.

    Signed-off-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • ia64 and sparc64 hurriedly had to introduce their own variants of
    pgd_addr_end, to leapfrog over the holes in their virtual address spaces which
    the final clear_page_range suddenly presented when converted from pgd_index to
    pgd_addr_end. But now that free_pgtables respects the vma list, those holes
    are never presented, and the arch variants can go.

    Signed-off-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     

19 Apr, 2005

1 commit

  • Like Alpha, sparc64's struct stat was defined before we had the
    nanosecond et al. fields added. So like Alpha I have to cons up a
    struct stat64 to get this stuff. I'll work on the glibc bits soon.

    Also, we were forgetting to fill in the nanosecond fields in the sparc
    compat stat64 syscalls.

    Signed-off-by: David S. Miller
    Signed-off-by: Linus Torvalds

    David S. Miller
     

18 Apr, 2005

1 commit

  • We were flushing the D-cache excessively for ptrace() processing
    and this makes debugging threads so slow as to be totally unusable.

    All process page accesses via ptrace() go via access_process_vm().
    This routine, for each process page, uses get_user_pages(). That
    in turn does a flush_dcache_page() on the child pages before we
    copy in/out the ptrace request data.

    Therefore, all we need to do after the data movement is:

    1) Flush the D-cache pages if the kernel maps the page to a different
    color than userspace does.
    2) If we wrote to the page, we need to flush the I-cache on older cpus.

    Previously we just flushed the entire cache at the end of a ptrace()
    request, and that was beyond stupid.

    Signed-off-by: David S. Miller
    Signed-off-by: Linus Torvalds

    David S. Miller
     

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