26 Jun, 2006

2 commits

  • Remove VM_LOCKED before remap_pfn range from device drivers and get rid of
    VM_SHM.

    remap_pfn_range() already sets VM_IO. There is no need to set VM_SHM since
    it does nothing. VM_LOCKED is of no use since the remap_pfn_range does not
    place pages on the LRU. The pages are therefore never subject to swap
    anyways. Remove all the vm_flags settings before calling remap_pfn_range.

    After removing all the vm_flag settings no use of VM_SHM is left. Drop it.

    Signed-off-by: Christoph Lameter
    Acked-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     
  • Convert a few stragglers over to for_each_possible_cpu(), remove
    for_each_cpu().

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

    Andrew Morton
     

24 Jun, 2006

2 commits


23 Jun, 2006

7 commits

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (65 commits)
    ACPI: suppress power button event on S3 resume
    ACPI: resolve merge conflict between sem2mutex and processor_perflib.c
    ACPI: use for_each_possible_cpu() instead of for_each_cpu()
    ACPI: delete newly added debugging macros in processor_perflib.c
    ACPI: UP build fix for bugzilla-5737
    Enable P-state software coordination via _PDC
    P-state software coordination for speedstep-centrino
    P-state software coordination for acpi-cpufreq
    P-state software coordination for ACPI core
    ACPI: create acpi_thermal_resume()
    ACPI: create acpi_fan_suspend()/acpi_fan_resume()
    ACPI: pass pm_message_t from acpi_device_suspend() to root_suspend()
    ACPI: create acpi_device_suspend()/acpi_device_resume()
    ACPI: replace spin_lock_irq with mutex for ec poll mode
    ACPI: Allow a WAN module enable/disable on a Thinkpad X60.
    sem2mutex: acpi, acpi_link_lock
    ACPI: delete unused acpi_bus_drivers_lock
    sem2mutex: drivers/acpi/processor_perflib.c
    ACPI add ia64 exports to build acpi_memhotplug as a module
    ACPI: asus_acpi_init(): propagate correct return value
    ...

    Manual resolve of conflicts in:

    arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
    arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c
    include/acpi/processor.h

    Linus Torvalds
     
  • Default values for boolean and tristate options can only be 'y', 'm' or 'n'.
    This patch removes wrong default for SCHED_SMT.

    Signed-off-by: Jean-Luc Leger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean-Luc Leger
     
  • Pass the POSIX lock owner ID to the flush operation.

    This is useful for filesystems which don't want to store any locking state
    in inode->i_flock but want to handle locking/unlocking POSIX locks
    internally. FUSE is one such filesystem but I think it possible that some
    network filesystems would need this also.

    Also add a flag to indicate that a POSIX locking request was generated by
    close(), so filesystems using the above feature won't send an extra locking
    request in this case.

    Signed-off-by: Miklos Szeredi
    Cc: Trond Myklebust
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • move_pages() is used to move individual pages of a process. The function can
    be used to determine the location of pages and to move them onto the desired
    node. move_pages() returns status information for each page.

    long move_pages(pid, number_of_pages_to_move,
    addresses_of_pages[],
    nodes[] or NULL,
    status[],
    flags);

    The addresses of pages is an array of void * pointing to the
    pages to be moved.

    The nodes array contains the node numbers that the pages should be moved
    to. If a NULL is passed instead of an array then no pages are moved but
    the status array is updated. The status request may be used to determine
    the page state before issuing another move_pages() to move pages.

    The status array will contain the state of all individual page migration
    attempts when the function terminates. The status array is only valid if
    move_pages() completed successfullly.

    Possible page states in status[]:

    0..MAX_NUMNODES The page is now on the indicated node.

    -ENOENT Page is not present

    -EACCES Page is mapped by multiple processes and can only
    be moved if MPOL_MF_MOVE_ALL is specified.

    -EPERM The page has been mlocked by a process/driver and
    cannot be moved.

    -EBUSY Page is busy and cannot be moved. Try again later.

    -EFAULT Invalid address (no VMA or zero page).

    -ENOMEM Unable to allocate memory on target node.

    -EIO Unable to write back page. The page must be written
    back in order to move it since the page is dirty and the
    filesystem does not provide a migration function that
    would allow the moving of dirty pages.

    -EINVAL A dirty page cannot be moved. The filesystem does not provide
    a migration function and has no ability to write back pages.

    The flags parameter indicates what types of pages to move:

    MPOL_MF_MOVE Move pages that are only mapped by the process.

    MPOL_MF_MOVE_ALL Also move pages that are mapped by multiple processes.
    Requires sufficient capabilities.

    Possible return codes from move_pages()

    -ENOENT No pages found that would require moving. All pages
    are either already on the target node, not present, had an
    invalid address or could not be moved because they were
    mapped by multiple processes.

    -EINVAL Flags other than MPOL_MF_MOVE(_ALL) specified or an attempt
    to migrate pages in a kernel thread.

    -EPERM MPOL_MF_MOVE_ALL specified without sufficient priviledges.
    or an attempt to move a process belonging to another user.

    -EACCES One of the target nodes is not allowed by the current cpuset.

    -ENODEV One of the target nodes is not online.

    -ESRCH Process does not exist.

    -E2BIG Too many pages to move.

    -ENOMEM Not enough memory to allocate control array.

    -EFAULT Parameters could not be accessed.

    A test program for move_pages() may be found with the patches
    on ftp.kernel.org:/pub/linux/kernel/people/christoph/pmig/patches-2.6.17-rc4-mm3

    From: Christoph Lameter

    Detailed results for sys_move_pages()

    Pass a pointer to an integer to get_new_page() that may be used to
    indicate where the completion status of a migration operation should be
    placed. This allows sys_move_pags() to report back exactly what happened to
    each page.

    Wish there would be a better way to do this. Looks a bit hacky.

    Signed-off-by: Christoph Lameter
    Cc: Hugh Dickins
    Cc: Jes Sorensen
    Cc: KAMEZAWA Hiroyuki
    Cc: Lee Schermerhorn
    Cc: Andi Kleen
    Cc: Michael Kerrisk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     
  • Modify the gen_pool allocator (lib/genalloc.c) to utilize a bitmap scheme
    instead of the buddy scheme. The purpose of this change is to eliminate
    the touching of the actual memory being allocated.

    Since the change modifies the interface, a change to the uncached allocator
    (arch/ia64/kernel/uncached.c) is also required.

    Both Andrey Volkov and Jes Sorenson have expressed a desire that the
    gen_pool allocator not write to the memory being managed. See the
    following:

    http://marc.theaimsgroup.com/?l=linux-kernel&m=113518602713125&w=2
    http://marc.theaimsgroup.com/?l=linux-kernel&m=113533568827916&w=2

    Signed-off-by: Dean Nelson
    Cc: Andrey Volkov
    Acked-by: Jes Sorensen
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dean Nelson
     
  • Consolidate the various arch-specific implementations of pxm_to_node() and
    node_to_pxm() into a single generic version.

    Signed-off-by: Yasunori Goto
    Cc: "Luck, Tony"
    Cc: Andi Kleen
    Cc: Dave Hansen
    Cc: "Brown, Len"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasunori Goto
     
  • Extend the get_sb() filesystem operation to take an extra argument that
    permits the VFS to pass in the target vfsmount that defines the mountpoint.

    The filesystem is then required to manually set the superblock and root dentry
    pointers. For most filesystems, this should be done with simple_set_mnt()
    which will set the superblock pointer and then set the root dentry to the
    superblock's s_root (as per the old default behaviour).

    The get_sb() op now returns an integer as there's now no need to return the
    superblock pointer.

    This patch permits a superblock to be implicitly shared amongst several mount
    points, such as can be done with NFS to avoid potential inode aliasing. In
    such a case, simple_set_mnt() would not be called, and instead the mnt_root
    and mnt_sb would be set directly.

    The patch also makes the following changes:

    (*) the get_sb_*() convenience functions in the core kernel now take a vfsmount
    pointer argument and return an integer, so most filesystems have to change
    very little.

    (*) If one of the convenience function is not used, then get_sb() should
    normally call simple_set_mnt() to instantiate the vfsmount. This will
    always return 0, and so can be tail-called from get_sb().

    (*) generic_shutdown_super() now calls shrink_dcache_sb() to clean up the
    dcache upon superblock destruction rather than shrink_dcache_anon().

    This is required because the superblock may now have multiple trees that
    aren't actually bound to s_root, but that still need to be cleaned up. The
    currently called functions assume that the whole tree is rooted at s_root,
    and that anonymous dentries are not the roots of trees which results in
    dentries being left unculled.

    However, with the way NFS superblock sharing are currently set to be
    implemented, these assumptions are violated: the root of the filesystem is
    simply a dummy dentry and inode (the real inode for '/' may well be
    inaccessible), and all the vfsmounts are rooted on anonymous[*] dentries
    with child trees.

    [*] Anonymous until discovered from another tree.

    (*) The documentation has been adjusted, including the additional bit of
    changing ext2_* into foo_* in the documentation.

    [akpm@osdl.org: convert ipath_fs, do other stuff]
    Signed-off-by: David Howells
    Acked-by: Al Viro
    Cc: Nathan Scott
    Cc: Roland Dreier
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     

22 Jun, 2006

11 commits

  • Tony Luck
     
  • Sorry I didn't notice earlier, but that BUG_ON triggers for me on the
    simulator. AFAICS the mask for itv is set in cpu_init(), which comes
    after sal_init(). Consequently on the simulator the itv still has its
    start value of zero. I've probably missed something, but I wonder why
    at this stage of the boot you even need to save and restore the itv?

    Signed-Off-By: Ian Wienand
    Signed-off-by: Tony Luck

    Ian Wienand
     
  • The following patch fixes a bug in the SGI Altix tioce_bus_fixup()
    code. ce_dre_comp_err_addr needs to be zero'd out not ~0ULL. As
    a result completion errors weren't being captured.

    Signed-off-by: Mike Habeck
    Signed-off-by: Tony Luck

    Mike Habeck
     
  • struct ia64_sal_os_state has three semi-independent sections. The code
    in mca_asm.S assumes that these three sections are contiguous, which
    makes it very awkward to add new data to this structure. Remove the
    assumption that the sections are contiguous. Define a macro to shorten
    references to offsets in ia64_sal_os_state.

    This patch does not change the way that the code behaves. It just
    makes it easier to update the code in future and to add fields to
    ia64_sal_os_state when debugging the MCA/INIT handlers.

    Signed-off-by: Keith Owens
    Signed-off-by: Tony Luck

    Keith Owens
     
  • When I tried to use PCI Express Hotplug driver on my ia64 box, I
    noticed that "PCI Express support" is not even selectable on ia64.
    This patch makes PCI Express support selectable.

    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Tony Luck

    Kenji Kaneshige
     
  • Just a trivial cleanup patch

    Signed-off-by: Tony Luck

    David Mosberger-Tang
     
  • There is an SN bug in sn_hwperf.c that affects systems with 1024n or 1024p.
    The bug manifests itself 2 ways: IO interrupts are not always
    targeted to the nearest node, and 2) the "cat /proc/sgi_sn/sn_topology"
    commands fails with "cannot allocate memory".

    The code is using the wrong macros for validating node numbers.

    Signed-off-by: Jack Steiner
    Signed-off-by: Tony Luck

    Jack Steiner
     
  • One more trivial, stand-alone patch from the Xen/ia64 review. Sanity
    check usage of the reserved region numbers.

    Signed-off-by: Alex Williamson
    Signed-off-by: Tony Luck

    Alex Williamson
     
  • This is a trivial stand-alone patch out of the Xen/ia64 patches. Add
    a vmlinuz build target to be more compatible with x86-ish targets.

    Signed-off-by: Alex Williamson
    Signed-off-by: Tony Luck

    Alex Williamson
     
  • MSI callouts for altix. Involves a fair amount of code reorg in sn irq.c
    code as well as adding some extensions to the altix PCI provider abstaction.

    Signed-off-by: Mark Maule
    Signed-off-by: Greg Kroah-Hartman

    Mark Maule
     
  • Abstract IA64_FIRST_DEVICE_VECTOR/IA64_LAST_DEVICE_VECTOR since SN platforms
    use a subset of the IA64 range. Implement this by making the above macros
    global variables which the platform can override in it setup code.

    Also add a reserve_irq_vector() routine used by SN to mark a vector's as
    in-use when that weren't allocated through assign_irq_vector().

    Signed-off-by: Mark Maule
    Signed-off-by: Greg Kroah-Hartman

    Mark Maule
     

16 Jun, 2006

3 commits


17 May, 2006

3 commits


15 May, 2006

1 commit


13 May, 2006

1 commit

  • When building sim_defconfig, which does not define CONFIG_ACPI
    arch/ia64/kernel/acpi.c:71: warning: 'acpi_madt_rev' defined but not used

    really acpi.c should not be built when CONFIG_ACPI=n...

    Signed-off-by: Len Brown

    Len Brown
     

09 May, 2006

1 commit

  • This closes a couple holes in our attribute aliasing avoidance scheme:

    - The current kernel fails mmaps of some /dev/mem MMIO regions because
    they don't appear in the EFI memory map. This keeps X from working
    on the Intel Tiger box.

    - The current kernel allows UC mmap of the 0-1MB region of
    /sys/.../legacy_mem even when the chipset doesn't support UC
    access. This causes an MCA when starting X on HP rx7620 and rx8620
    boxes in the default configuration.

    There's more detail in the Documentation/ia64/aliasing.txt file this
    adds, but the general idea is that if a region might be covered by
    a granule-sized kernel identity mapping, any access via /dev/mem or
    mmap must use the same attribute as the identity mapping.

    Otherwise, we fall back to using an attribute that is supported
    according to the EFI memory map, or to using UC if the EFI memory
    map doesn't mention the region.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Tony Luck

    Bjorn Helgaas
     

06 May, 2006

1 commit

  • Bob Picco noted that 6edfba1b33c701108717f4e036320fc39abe1912
    dropped the -ffreestanding compiler flag from the top level
    Makefile, which allows the compiler to substitute memcpy() in
    places where strcpy() is used with a known size source string.
    But the ia64 memcpy() returns 0 for success, and "bytes copied"
    for failure.

    Fix to return the address of the destination string (like
    stdlibc version, and other architectures). There are no
    places where ia64 specific code makes use of the non-standard
    return value.

    Signed-off-by: Ken Chen
    Signed-off-by: Tony Luck

    Chen, Kenneth W
     

01 May, 2006

1 commit


28 Apr, 2006

6 commits

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] update sn2 defconfig
    [IA64] Add mca recovery failure messages
    [IA64-SGI] fix SGI Altix tioce_reserve_m32() bug
    [IA64] enable dumps to capture second page of kernel stack
    [IA64-SGI] - Reduce overhead of reading sn_topology
    [IA64-SGI] - Fix discover of nearest cpu node to IO node
    [IA64] IOC4 config option ordering
    [IA64] Setup an IA64 specific reclaim distance
    [IA64] eliminate compile time warnings
    [IA64] eliminate compile time warnings
    [IA64-SGI] SN SAL call to inject memory errors
    [IA64] - Fix MAX_PXM_DOMAINS for systems with > 256 nodes
    [IA64] Remove unused variable in sn_sal.h
    [IA64] Remove redundant NULL checks before kfree
    [IA64] wire up compat_sys_adjtimex()

    Linus Torvalds
     
  • Update SN2 defconfig to latest kernel and add QLA FC drivers commonly
    found in SN2 boxes.

    Signed-off-by: Jes Sorensen
    Signed-off-by: Tony Luck

    Jes Sorensen
     
  • When the mca recovery code encounters a condition that makes
    the MCA non-recoverable, print the reason it could not recover.
    This will make it easier to identify why the recovery code did
    not recover.

    Signed-off-by: Russ Anderson
    Signed-off-by: Tony Luck

    Russ Anderson
     
  • The following patch fixes a bug in the SGI Altix tioce_reserve_m32()
    code. The bug was that we could walking past the end of the CE ASIC
    32/40bit PMU ATE Buffer, resulting in a PIO Reply Error.

    Signed-off-by: Mike Habeck
    Signed-off-by: Tony Luck

    Mike Habeck
     
  • MPI programs using certain debug options have a long
    startup time. This was traced to a "vmalloc/vfree" in
    the code that reads /proc/sgi_sn/sn_topology. On large
    systems, vfree requires an IPI to all cpus to do TLB
    purging.

    Replace the vmalloc/vfree with kmalloc/kfree. Although
    the size of the structure being allocated is unknown, it
    will not not exceed 96 bytes.

    Signed-off-by: Jack Steiner
    Signed-off-by: Tony Luck

    Jack Steiner
     
  • Fix a bug that causes discovery of the nearest node/cpu to
    a TIO (IO node) to fail.

    Signed-off-by: Jack Steiner
    Signed-off-by: Tony Luck

    Jack Steiner
     

26 Apr, 2006

1 commit