19 Apr, 2008

3 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.26: (1090 commits)
    [NET]: Fix and allocate less memory for ->priv'less netdevices
    [IPV6]: Fix dangling references on error in fib6_add().
    [NETLABEL]: Fix NULL deref in netlbl_unlabel_staticlist_gen() if ifindex not found
    [PKT_SCHED]: Fix datalen check in tcf_simp_init().
    [INET]: Uninline the __inet_inherit_port call.
    [INET]: Drop the inet_inherit_port() call.
    SCTP: Initialize partial_bytes_acked to 0, when all of the data is acked.
    [netdrvr] forcedeth: internal simplifications; changelog removal
    phylib: factor out get_phy_id from within get_phy_device
    PHY: add BCM5464 support to broadcom PHY driver
    cxgb3: Fix __must_check warning with dev_dbg.
    tc35815: Statistics cleanup
    natsemi: fix MMIO for PPC 44x platforms
    [TIPC]: Cleanup of TIPC reference table code
    [TIPC]: Optimized initialization of TIPC reference table
    [TIPC]: Remove inlining of reference table locking routines
    e1000: convert uint16_t style integers to u16
    ixgb: convert uint16_t style integers to u16
    sb1000.c: make const arrays static
    sb1000.c: stop inlining largish static functions
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (137 commits)
    [SCSI] iscsi: bidi support for iscsi_tcp
    [SCSI] iscsi: bidi support at the generic libiscsi level
    [SCSI] iscsi: extended cdb support
    [SCSI] zfcp: Fix error handling for blocked unit for send FCP command
    [SCSI] zfcp: Remove zfcp_erp_wait from slave destory handler to fix deadlock
    [SCSI] zfcp: fix 31 bit compile warnings
    [SCSI] bsg: no need to set BSG_F_BLOCK bit in bsg_complete_all_commands
    [SCSI] bsg: remove minor in struct bsg_device
    [SCSI] bsg: use better helper list functions
    [SCSI] bsg: replace kobject_get with blk_get_queue
    [SCSI] bsg: takes a ref to struct device in fops->open
    [SCSI] qla1280: remove version check
    [SCSI] libsas: fix endianness bug in sas_ata
    [SCSI] zfcp: fix compiler warning caused by poking inside new semaphore (linux-next)
    [SCSI] aacraid: Do not describe check_reset parameter with its value
    [SCSI] aacraid: Fix down_interruptible() to check the return value
    [SCSI] sun3_scsi_vme: add MODULE_LICENSE
    [SCSI] st: rename flush_write_buffer()
    [SCSI] tgt: use KMEM_CACHE macro
    [SCSI] initio: fix big endian problems for auto request sense
    ...

    Linus Torvalds
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: (27 commits)
    [IA64] kdump: Add crash_save_vmcoreinfo for INIT
    [IA64] Fix NUMA configuration issue
    [IA64] Itanium Spec updates
    [IA64] Untangle sync_icache_dcache() page size determination
    [IA64] arch/ia64/kernel/: use time_* macros
    [IA64] remove redundant display of free swap space in show_mem()
    [IA64] make IOMMU respect the segment boundary limits
    [IA64] kprobes: kprobe-booster for ia64
    [IA64] fix getpid and set_tid_address fast system calls for pid namespaces
    [IA64] Replace explicit jiffies tests with time_* macros.
    [IA64] use goto to jump out do/while_each_thread
    [IA64] Fix unlock ordering in smp_callin
    [IA64] pgd_offset() constfication.
    [IA64] kdump: crash.c coding style fix
    [IA64] kdump: add kdump_on_fatal_mca
    [IA64] Minimize per_cpu reservations.
    [IA64] Correct pernodesize calculation.
    [IA64] Kernel parameter for max number of concurrent global TLB purges
    [IA64] Multiple outstanding ptc.g instruction support
    [IA64] Implement smp_call_function_mask for ia64
    ...

    Linus Torvalds
     

18 Apr, 2008

8 commits


17 Apr, 2008

1 commit

  • Semaphores are no longer performance-critical, so a generic C
    implementation is better for maintainability, debuggability and
    extensibility. Thanks to Peter Zijlstra for fixing the lockdep
    warning. Thanks to Harvey Harrison for pointing out that the
    unlikely() was unnecessary.

    Signed-off-by: Matthew Wilcox
    Acked-by: Ingo Molnar

    Matthew Wilcox
     

16 Apr, 2008

2 commits

  • http://bugzilla.kernel.org/show_bug.cgi?id=10124

    this change:

    commit 08f1c192c3c32797068bfe97738babb3295bbf42
    Author: Muli Ben-Yehuda
    Date: Sun Jul 22 00:23:39 2007 +0300

    x86-64: introduce struct pci_sysdata to facilitate sharing of ->sysdata

    This patch introduces struct pci_sysdata to x86 and x86-64, and
    converts the existing two users (NUMA, Calgary) to use it.

    This lays the groundwork for having other users of sysdata, such as
    the PCI domains work.

    The Calgary bits are tested, the NUMA bits just look ok.

    replaces pcibios_scan_root by pci_scan_bus_parented...

    but in pcibios_scan_root we have a check about scanned busses.

    Cc:
    Cc: Stian Jordet
    Cc: Len Brown
    Cc: Greg KH
    Cc: Ingo Molnar
    Cc: "Yinghai Lu"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    yakui.zhao@intel.com
     
  • This patch fixes the problem that kdump by INIT does not work if we use
    makedumpfile. The problem is that after INIT is issued, 2nd kernel
    starts and makedumpfile fails with the following error message.

    /proc/vmcore doesn't contain vmcoreinfo.
    '-x' or '-i' must be specified.

    makedumpfile Failed.

    The cause of this problem is that kernel does not call
    crash_save_vmcoreinfo. When kdump starts by panic or sysrq-trigger,
    crash_save_vmcoreinfo is called by crash_kexec. But this function is not
    called when kdump starts by INIT. The Attached patch fixes this.

    This patch just adds crash_save_vmcoreinfo into machine_kdump_on_init so
    that crash_save_vmcoreinfo can be called when kdump starts by INIT.
    I tested this patch with linux-2.6.25-rc9 and I confirmed it worked.

    Signed-off-by: Takao Indoh
    Signed-off-by: Tony Luck

    Takao Indoh
     

12 Apr, 2008

1 commit

  • There is a NUMA memory configuration issue in 2.6.24:

    A 2-node machine of ours has got the following memory layout:

    Node 0: 0 - 2 Gbytes
    Node 0: 4 - 8 Gbytes
    Node 1: 8 - 16 Gbytes
    Node 0: 16 - 18 Gbytes

    "efi_memmap_init()" merges the three last ranges into one.

    "register_active_ranges()" is called as follows:

    efi_memmap_walk(register_active_ranges, NULL);

    i.e. once for the 4 - 18 Gbytes range. It picks up the node
    number from the start address, and registers all the memory for
    the node #0.

    "register_active_ranges()" should be called as follows to
    make sure there is no merged address range at its entry:

    efi_memmap_walk(filter_memory, register_active_ranges);

    "filter_memory()" is similar to "filter_rsvd_memory()",
    but the reserved memory ranges are not filtered out.

    Signed-off-by: Zoltan Menyhart
    Signed-off-by: Tony Luck

    Zoltan Menyhart
     

10 Apr, 2008

11 commits

  • Untangle the chaos of page size determination in this function by
    simply using PAGE_SIZE << compound_order().

    Signed-off-by: Christoph Lameter
    Signed-off-by: Tony Luck

    Christoph Lameter
     
  • The functions time_before, time_before_eq, time_after, and time_after_eq are
    more robust for comparing jiffies against other values.

    So use the time_after() & time_before() macros, defined at linux/jiffies.h,
    which deal with wrapping correctly

    [akpm@linux-foundation.org: coding-style fixes]

    Signed-off-by: S.Caglar Onur
    Reviewed-by: KOSAKI Motohiro
    Signed-off-by: Andrew Morton
    Signed-off-by: Tony Luck

    S.Caglar Onur
     
  • show_mem() has no need to print the amount of free swap space manually because
    show_free_areas() does this already and is called by the former.

    The two outputs only differ in text formatting:

    printk("Free swap = %lukB\n", ...);
    printk("Free swap: %6ldkB\n", ...);

    Signed-off-by: Johannes Weiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Tony Luck

    Johannes Weiner
     
  • IA64's IOMMU implementation allocates memory areas spanning LLD's segment
    boundary limit. It forces low level drivers to have a workaround to adjust
    scatter lists that the IOMMU builds.

    We are in the process of making all the IOMMUs respect the segment boundary
    limits to remove such work around in LLDs. This patch is for IA64's IOMMU.

    Signed-off-by: FUJITA Tomonori
    Signed-off-by: Andrew Morton
    Signed-off-by: Tony Luck

    FUJITA Tomonori
     
  • Add kprobe-booster support on ia64.

    Kprobe-booster improves the performance of kprobes by eliminating single-step,
    where possible. Currently, kprobe-booster is implemented on x86 and x86-64.
    This is an ia64 port.

    On ia64, kprobe-booster executes a copied bundle directly, instead of single
    stepping. Bundles which have B or X unit and which may cause an exception
    (including break) are not executed directly. And also, to prevent hitting
    break exceptions on the copied bundle, only the hindmost kprobe is executed
    directly if several kprobes share a bundle and are placed in different slots.
    Note: set_brl_inst() is used for preparing an instruction buffer(it does not
    modify any active code), so it does not need any atomic operation.

    Signed-off-by: Masami Hiramatsu
    Cc: Anil S Keshavamurthy
    Cc: Ananth N Mavinakayanahalli
    Cc: bibo,mao
    Cc: Rusty Lynch
    Cc: Prasanna S Panchamukhi
    Cc: Jim Keniston
    Cc: Shaohua Li
    Signed-off-by: Andrew Morton
    Signed-off-by: Tony Luck

    Masami Hiramatsu
     
  • The sys_getpid() and sys_set_tid_address() behavior changed from

    return current->tgid

    to

    struct pid *pid;
    pid = current->pids[PIDTYPE_PID].pid;
    return pid->numbers[pid->level].nr;

    But the fast system calls on ia64 still operate the old way. Patch them
    appropriately to let ia64 work with pid namespaces. Besides, this is one more
    step in deprecating of pid and tgid on task_struct.

    The fsys_getppid() is to be patched as well, but its logic is much
    more complex now, so I will make it later.

    One thing I'm not 100% sure is the trick with the IA64_UPID_SHIFT. On order
    to access the pid->level's element of an array I have to perform the following
    calculations

    pid + sizeof(struct upid) * pid->level

    The problem is that ia64 can only multiply float point registers, while all
    the offsets I have in code are in rXX ones. Fortunately, the sizeof(struct
    upid) is 32 bytes on ia64 (and is very unlikely to ever change), so the
    calculations get simpler:

    pid + pid->level << 5

    So, I introduce the IA64_UPID_SHIFT and use the shl instruction. I also
    looked at how gcc compiles the similar place and found that it makes it with
    shift as well. Is this OK to do so?

    Tested with ski emulator with 2.6.24 kernel, but fits 2.6.25-rc4 and
    2.6.25-rc4-mm1 as well.

    Signed-off-by: Pavel Emelyanov
    Cc: David Mosberger-Tang
    Cc: Hidetoshi Seto
    Cc: Fenghua Yu
    Cc: Amy Griffis
    Signed-off-by: Andrew Morton
    Signed-off-by: Tony Luck

    Pavel Emelyanov
     
  • In arch/ia64/sn/kernel/xpc_{main,partition}.c

    Signed-off-by: Robert P. J. Day
    Signed-off-by: Tony Luck

    Robert P. J. Day
     
  • do_each_thread/while_each_thread is a double loop, so
    should use 'goto' rather than 'break' to break out
    the loop.

    Signed-off-by: Li Zefan
    Signed-off-by: Tony Luck

    Li Zefan
     
  • One should normally unlock in the reverse order of the lock calls,
    and in this case there certainly is no reason not to.

    Signed-off-by: Alan D. Brunelle
    Signed-off-by: Tony Luck

    Alan D. Brunelle
     
  • Fix indenting of switch statement to follow Documentation/CodingStyle.

    Signed-off-by: Hidetoshi Seto
    Signed-off-by: Tony Luck

    Hidetoshi Seto
     
  • While it is convenient that we can invoke kdump by asserting INIT
    via button on chassis etc., there are some situations that invoking
    kdump on fatal MCA is not welcomed rather than rebooting fast without
    dump.

    This patch adds a new flag 'kdump_on_fatal_mca' that is independent
    from 'kdump_on_init' currently available. Adding this flag enable
    us to turning on/off of kdump depend on the event, INIT and/or fatal
    MCA. Default for this flag is to take the dump.

    Signed-off-by: Hidetoshi Seto
    Signed-off-by: Tony Luck

    Hidetoshi Seto
     

09 Apr, 2008

2 commits

  • This attached patch significantly shrinks boot memory allocation on ia64.
    It does this by not allocating per_cpu areas for cpus that can never
    exist.

    In the case where acpi does not have any numa node description of the
    cpus, I defaulted to assigning the first 32 round-robin on the known
    nodes.. For the !CONFIG_ACPI I used for_each_possible_cpu().

    Signed-off-by: Robin Holt
    Signed-off-by: Tony Luck

    holt@sgi.com
     
  • A simple fix. The existing pernodesize reservation is not taking into
    account a second array of pg_data_t structures. This is normally not
    important because the PAGE_ALIGN macro reserves adequate space.

    I made the compute_pernodesize steps in the same order as the fill_pernode
    steps to make the correlation more clear.

    Signed-off-by: Robin Holt
    Signed-off-by: Tony Luck

    holt@sgi.com
     

08 Apr, 2008

1 commit


05 Apr, 2008

2 commits

  • The patch defines kernel parameter "nptcg=". The parameter overrides max number
    of concurrent global TLB purges which is reported from either PAL_VM_SUMMARY or
    SAL PALO.

    Signed-off-by: Fenghua Yu
    Signed-off-by: Tony Luck

    Fenghua Yu
     
  • According to SDM2.2, Itanium supports multiple outstanding ptc.g instructions.
    But current kernel function ia64_global_tlb_purge() uses a spinlock to serialize
    ptc.g instructions issued by multiple processors. This serialization might have
    scalability issue on a big SMP machine where many processors could purge TLB
    in parallel.

    The patch fixes this problem by issuing multiple ptc.g instructions in
    ia64_global_tlb_purge(). It also adds support for the "PALO" table to get
    a platform view of the max number of outstanding ptc.g instructions (which
    may be different from the processor view found from PAL_VM_SUMMARY).

    PALO specification can be found at: http://www.dig64.org/home/DIG64_PALO_R1_0.pdf

    spinaphore implementation by Matthew Wilcox.

    Signed-off-by: Fenghua Yu
    Signed-off-by: Tony Luck

    Fenghua Yu
     

04 Apr, 2008

2 commits


26 Mar, 2008

1 commit


13 Mar, 2008

4 commits


11 Mar, 2008

1 commit

  • This patch does:

    - Remove outdated comments (which someday I marked with "?").
    - Reassemble instructions to fit them in fewer bundles.
    - If McKinley Errata 9 workaround is not needed, the workaround
    bundles will be patched out with NOPs. However it also not
    needed to have a totally NOP bundle (nop * 3) before branch.

    As a result, this makes the code path 3 (or 2) bundles shorter
    (and remove 1 unnecessary stop bit). It seems to be 1% faster.

    (10sec loop test, with nojitter @ Madison 1.5GHz x 4)
    Before:
    CPU 0: 0.14 (usecs) (0 errors / 69598875 iterations)
    CPU 1: 0.14 (usecs) (0 errors / 69630721 iterations)
    CPU 2: 0.14 (usecs) (0 errors / 69607850 iterations)
    CPU 3: 0.14 (usecs) (0 errors / 69619832 iterations)

    After:
    CPU 0: 0.14 (usecs) (0 errors / 70257728 iterations)
    CPU 1: 0.14 (usecs) (0 errors / 70309498 iterations)
    CPU 2: 0.14 (usecs) (0 errors / 70280639 iterations)
    CPU 3: 0.14 (usecs) (0 errors / 70260682 iterations)

    Signed-off-by: Hidetoshi Seto
    Signed-off-by: Tony Luck

    Hidetoshi Seto
     

07 Mar, 2008

1 commit