22 Mar, 2006

2 commits


18 Mar, 2006

3 commits


16 Mar, 2006

1 commit


15 Mar, 2006

1 commit

  • Update the documentation for page migration.

    - Fix up bits and pieces in cpusets.txt

    - Rework text in vm/page-migration to be clearer and reflect the final
    version of page migration in 2.6.16. Mention Andi Kleen's numactl
    package that contains user space tools for page migration via
    libnuma. Add reference to numa_maps and to the manpage in numactl.

    - Add todo list for outstanding issues

    Signed-off-by: Christoph Lameter
    Acked-by: Paul Jackson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     

12 Mar, 2006

1 commit


10 Mar, 2006

1 commit


09 Mar, 2006

3 commits

  • ATI chipsets tend to generate double timer interrupts for the local APIC
    timer when both the 8254 and the IO-APIC timer pins are enabled. This is
    because they route it to both and the result is anded together and the CPU
    ends up processing it twice.

    This patch changes check_timer to disable the 8254 routing for interrupt 0.

    I think it would be safe on all chipsets actually (i tested it on a couple
    and it worked everywhere) and Windows seems to do it in a similar way, but
    to be conservative this patch only enables this mode on ATI (and adds
    options to enable/disable too)

    Ported over from a similar x86-64 change.

    I reused the ACPI earlyquirk infrastructure for the ATI bridge check, but
    tweaked it a bit to work even without ACPI.

    Inspired by a patch from Chuck Ebbert, but redone.

    Cc: Chuck Ebbert
    Cc: "Brown, Len"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb:
    Merge branch 'work-fixes'
    V4L/DVB (3413): Typos grab bag of the month
    V4L/DVB (3403): Workaround to fix initialization for Nexus CA
    Merge branch 'work-fixes'
    V4L/DVB (3395): Fixed Pinnacle 300i DVB-T support
    V4L/DVB (3399): ELSA EX-VISION 500TV: fix incorrect PCI subsystem ID
    V4L/DVB (3382): Fix stv0297 for qam128 on tt c1500 (saa7146)
    V4L/DVB (3300a): Removing personal email from DVB maintainers
    V4L/DVB (3385): Dvb: fix __init/__exit section references in av7110 driver
    V4L/DVB (3378): Restore power on defaults of tda9887 after tda8290 probe
    V4L/DVB (3354): Fix maximum for the saturation and contrast controls.
    V4L/DVB (3352): Cxusb: fix lgdt3303 naming
    V4L/DVB (3348): Fixed saa7134 ALSA initialization with multiple cards
    V4L/DVB (3347): Pinnacle PCTV 40i: add filtered Composite2 input
    V4L/DVB (3341): Upstream sync - make 2 structs static
    V4L/DVB (3340): Make a struct static
    V4L/DVB (3337): Drivers/media/dvb/frontends/mt312.c: cleanups
    V4L/DVB (3336): Bt8xx documentation authors fix

    Linus Torvalds
     
  • This patch adds new tunables for RCU queue and finished batches. There are
    two types of controls - number of completed RCU updates invoked in a batch
    (blimit) and monitoring for high rate of incoming RCUs on a cpu (qhimark,
    qlowmark).

    By default, the per-cpu batch limit is set to a small value. If the input
    RCU rate exceeds the high watermark, we do two things - force quiescent
    state on all cpus and set the batch limit of the CPU to INTMAX. Setting
    batch limit to INTMAX forces all finished RCUs to be processed in one shot.
    If we have more than INTMAX RCUs queued up, then we have bigger problems
    anyway. Once the incoming queued RCUs fall below the low watermark, the
    batch limit is set to the default.

    Signed-off-by: Dipankar Sarma
    Cc: "Paul E. McKenney"
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dipankar Sarma
     

05 Mar, 2006

1 commit


04 Mar, 2006

4 commits


01 Mar, 2006

1 commit


28 Feb, 2006

2 commits


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
     

25 Feb, 2006

2 commits


24 Feb, 2006

2 commits


23 Feb, 2006

1 commit

  • This change reverts the 033b96fd30db52a710d97b06f87d16fc59fee0f1 commit
    from Kay Sievers that removed the mount/umount uevents from the kernel.
    Some older versions of HAL still depend on these events to detect when a
    new device has been mounted. These events are not correctly emitted,
    and are broken by design, and so, should not be relied upon by any
    future program. Instead, the /proc/mounts file should be polled to
    properly detect this kind of event.

    A feature-removal-schedule.txt entry has been added, noting when this
    interface will be removed from the kernel.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

22 Feb, 2006

1 commit

  • I've been dissatisfied with the mpol_nodelist mount option which was
    added to tmpfs earlier in -rc. Replace it by mpol=policy:nodelist.

    And it was broken: a nodelist is a comma-separated list of numbers and
    ranges; the mount options are a comma-separated list of token=values.
    Whoops, blindly strsep'ing on commas doesn't work so well: since we've
    no numeric tokens, and unlikely to add them, use that to distinguish.

    Move the mpol= parsing to shmem_parse_mpol under CONFIG_NUMA, reject
    all its options as invalid if not NUMA. /proc shows MPOL_PREFERRED
    as "prefer", so use that name for the policy instead of "preferred".

    Enforce that mpol=default has no nodelist; that mpol=prefer has one
    node only; that mpol=bind has a nodelist; but let mpol=interleave use
    node_online_map if no nodelist given. Describe this in tmpfs.txt.

    Signed-off-by: Hugh Dickins
    Acked-by: Robin Holt
    Acked-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     

21 Feb, 2006

3 commits

  • Minor updates to the documentation to bring them into sync with current
    websites and available features. The debug flag was switched back to hex
    to match the documentation.

    Signed-off-by: Eric Van Hensbergen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Van Hensbergen
     
  • Currently, acpi video options can only be set on kernel command line. That's
    little inflexible; I'd like userland s2ram application that just works, and
    modifying kernel command line according to whitelist is not fun. It is better
    to just allow s2ram application to set video options just before suspend
    (according to the whitelist).

    This implements sysctl to allow setting suspend video options without reboot.

    (akpm: Documentation updates for this new sysctl are pending..)

    Signed-off-by: Pavel Machek
    Cc: "Brown, Len"
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Machek
     
  • Looks like there was a merge conflict when patches
    8f8b1138fc9f65e3591aac83a4ee394fef34ac1d and
    255acee706b333b79f593dd366f16e1f107cccc3 were applied which wasn't properly
    resolved. Fix this and add some additional description.

    Signed-off-by: Heiko Carstens
    Cc: Ashok Raj
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     

20 Feb, 2006

1 commit


18 Feb, 2006

5 commits


17 Feb, 2006

2 commits


16 Feb, 2006

1 commit


15 Feb, 2006

1 commit

  • Make the FRV arch use virtual interrupt disablement because accesses to the
    processor status register (PSR) are relatively slow and because we will
    soon have the need to deal with multiple interrupt controls at the same
    time (separate h/w and inter-core interrupts).

    The way this is done is to dedicate one of the four integer condition code
    registers (ICC2) to maintaining a virtual interrupt disablement state
    whilst inside the kernel. This uses the ICC2.Z flag (Zero) to indicate
    whether the interrupts are virtually disabled and the ICC2.C flag (Carry)
    to indicate whether the interrupts are physically disabled.

    ICC2.Z is set to indicate interrupts are virtually disabled. ICC2.C is set
    to indicate interrupts are physically enabled. Under normal running
    conditions Z==0 and C==1.

    Disabling interrupts with local_irq_disable() doesn't then actually
    physically disable interrupts - it merely sets ICC2.Z to 1. Should an
    interrupt then happen, the exception prologue will note ICC2.Z is set and
    branch out of line using one instruction (an unlikely BEQ). Here it will
    physically disable interrupts and clear ICC2.C.

    When it comes time to enable interrupts (local_irq_enable()), this simply
    clears the ICC2.Z flag and invokes a trap #2 if both Z and C flags are
    clear (the HI integer condition). This can be done with the TIHI
    conditional trap instruction.

    The trap then physically reenables interrupts and sets ICC2.C again. Upon
    returning the interrupt will be taken as interrupts will then be enabled.
    Note that whilst processing the trap, the whole exceptions system is
    disabled, and so an interrupt can't happen till it returns.

    If no pending interrupt had happened, ICC2.C would still be set, the HI
    condition would not be fulfilled, and no trap will happen.

    Saving interrupts (local_irq_save) is simply a matter of pulling the ICC2.Z
    flag out of the CCR register, shifting it down and masking it off. This
    gives a result of 0 if interrupts were enabled and 1 if they weren't.

    Restoring interrupts (local_irq_restore) is then a matter of taking the
    saved value mentioned previously and XOR'ing it against 1. If it was one,
    the result will be zero, and if it was zero the result will be non-zero.
    This result is then used to affect the ICC2.Z flag directly (it is a
    condition code flag after all). An XOR instruction does not affect the
    Carry flag, and so that bit of state is unchanged. The two flags can then
    be sampled to see if they're both zero using the trap (TIHI) as for the
    unconditional reenablement (local_irq_enable).

    This patch also:

    (1) Modifies the debugging stub (break.S) to handle single-stepping crossing
    into the trap #2 handler and into virtually disabled interrupts.

    (2) Removes superseded fixup pointers from the second instructions in the trap
    tables (there's no a separate fixup table for this).

    (3) Declares the trap #3 vector for use in .org directives in the trap table.

    (4) Moves irq_enter() and irq_exit() in do_IRQ() to avoid problems with
    virtual interrupt handling, and removes the duplicate code that has now
    been folded into irq_exit() (softirq and preemption handling).

    (5) Tells the compiler in the arch Makefile that ICC2 is now reserved.

    (6) Documents the in-kernel ABI, including the virtual interrupts.

    (7) Renames the old irq management functions to different names.

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

    David Howells