29 Apr, 2008

6 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild:
    kconfig: add named choice group
    kconfig: fix choice dependency check
    kconifg: 'select' considered less evil
    dontdiff: ignore timeconst.h
    dontdiff: add modules.order
    kbuild: fix unportability in gen_initramfs_list.sh
    kbuild: fix help output to show correct arch
    kbuild: show defconfig subdirs in make help
    kconfig: reversed borderlines in inputbox

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
    slub: pack objects denser
    slub: Calculate min_objects based on number of processors.
    slub: Drop DEFAULT_MAX_ORDER / DEFAULT_MIN_OBJECTS
    slub: Simplify any_slab_object checks
    slub: Make the order configurable for each slab cache
    slub: Drop fallback to page allocator method
    slub: Fallback to minimal order during slab page allocation
    slub: Update statistics handling for variable order slabs
    slub: Add kmem_cache_order_objects struct
    slub: for_each_object must be passed the number of objects in a slab
    slub: Store max number of objects in the page struct.
    slub: Dump list of objects not freed on kmem_cache_close()
    slub: free_list() cleanup
    slub: improve kmem_cache_destroy() error message
    slob: fix bug - when slob allocates "struct kmem_cache", it does not force alignment.

    Linus Torvalds
     
  • While select should be used with care, it is not actually evil.

    Signed-off-by: Matthew Wilcox
    Signed-off-by: Sam Ravnborg

    Matthew Wilcox
     
  • Ignore the autobuilt kernel/timeconst.h when
    using diff on an built kernel tree.

    Signed-off-by: Ben Dooks
    Signed-off-by: Sam Ravnborg

    Ben Dooks
     
  • Add modules.order to the list of files that
    shoud be ignored when using diff on a built
    kernel tree.

    Signed-off-by: Ben Dooks
    Signed-off-by: Sam Ravnborg

    Ben Dooks
     
  • bitops source file was renamed, so fix docbook for that.
    docproc: linux-2.6.25-git11/include/asm-x86/bitops_32.h: No such file or directory

    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

28 Apr, 2008

23 commits

  • Normally utime(2) checks current process is owner of the file, or it
    has CAP_FOWNER capability. But FAT filesystem doesn't have uid/gid as
    on disk info, so normal check is too unflexible.

    With this option you can relax it.

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

    OGAWA Hirofumi
     
  • Improve write performance by preventing the delayed_list from dumping all its
    stripes onto the handle_list in one shot. Delayed stripes are now further
    delayed by being held on the 'hold_list'. The 'hold_list' is bypassed when:

    * a STRIPE_IO_STARTED stripe is found at the head of 'handle_list'
    * 'handle_list' is empty and i/o is being done to satisfy full stripe-width
    write requests
    * 'bypass_count' is less than 'bypass_threshold'. By default the threshold
    is 1, i.e. every other stripe handled is a preread stripe provided the
    top two conditions are false.

    Benchmark data:
    System: 2x Xeon 5150, 4x SATA, mem=1GB
    Baseline: 2.6.24-rc7
    Configuration: mdadm --create /dev/md0 /dev/sd[b-e] -n 4 -l 5 --assume-clean
    Test1: dd if=/dev/zero of=/dev/md0 bs=1024k count=2048
    * patched: +33% (stripe_cache_size = 256), +25% (stripe_cache_size = 512)

    Test2: tiobench --size 2048 --numruns 5 --block 4096 --block 131072 (XFS)
    * patched: +13%
    * patched + preread_bypass_threshold = 0: +37%

    Changes since v1:
    * reduce bypass_threshold from (chunk_size / sectors_per_chunk) to (1) and
    make it configurable. This defaults to fairness and modest performance
    gains out of the box.
    Changes since v2:
    * [neilb@suse.de]: kill STRIPE_PRIO_HI and preread_needed as they are not
    necessary, the important change was clearing STRIPE_DELAYED in
    add_stripe_bio and this has been moved out to make_request for the hang
    fix.
    * [neilb@suse.de]: simplify get_priority_stripe
    * [dan.j.williams@intel.com]: reset the bypass_count when ->hold_list is
    sampled empty (+11%)
    * [dan.j.williams@intel.com]: decrement the bypass_count at the detection
    of stripes being naturally promoted off of hold_list +2%. Note, resetting
    bypass_count instead of decrementing on these events yields +4% but that is
    probably too aggressive.
    Changes since v3:
    * cosmetic fixups

    Tested-by: James W. Laferriere
    Signed-off-by: Dan Williams
    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Williams
     
  • Add support for the 965G and 965GM graphic chipsets to the intelfb driver. I
    have a notebook with an Intel Mobile GM965/GL960 Integrated Graphics
    Controller and with the attached patch the framebuffer comes up. I have
    tested it a bit with DirectFB to make sure it is working stable.

    I also have an Intel Mobile GM945 and I compared the results, the programming
    interface of the 9xx series from Intel is mostly the same, so I think the
    patch should add all the functionality which the 945GM has.

    Signed-off-by: Maik Broemme
    Cc: Dave Airlie
    Cc: Antonino Daplas
    Cc: Geert Uytterhoeven
    Cc: Krzysztof Halasa
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Maik Broemme
     
  • This patch splits metronomefb into the platform independent metronomefb and
    the platform dependent am200epd.

    Signed-off-by: Jaya Kumar
    Cc: "Antonino A. Daplas"
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jaya Kumar
     
  • The following features are supported:
    plane 0 works as a regular frame buffer, can be accessed by /dev/fb0
    plane 1 has two AOIs (area of interest), can be accessed by /dev/fb1 and /dev/fb2
    plane 2 has two AOIs, can be accessed by /dev/fb3 and /dev/fb4
    Special ioctls support AOIs

    All /dev/fb* can be used as regular frame buffer devices, except hardware
    change can only be made through /dev/fb0. Changing pixel clock has no effect
    on other fbs.

    Limitation of usage of AOIs:
    AOIs on the same plane can not be horizonally overlapped
    AOIs have horizonal order, i.e. AOI0 should be always on top of AOI1
    AOIs can not beyond phisical display area. Application should check AOI geometry
    before changing physical resolution on /dev/fb0

    required command line parameters to preallocate memory for frame buffer diufb.

    optional command line parameters to set modes and monitor
    video=fslfb:[resolution][,bpp][,monitor]
    Syntax:

    Resolution
    xres x yres-bpp@refresh_rate, the -bpp and @refresh_rate are optional
    eg, 1024x768, 1280x1024, 1280x1024-32, 1280x1024@60, 1280x1024-32@60, 1280x480-32@60

    Bpp
    bpp=32, bpp=24, or bpp=16

    Monitor
    monitor=0, monitor=1, monitor=2
    0 is DVI
    1 is Single link LVDS
    2 is Double link LVDS

    Note: switching monitor is a board feather, not DIU feather. MPC8610HPCD has three
    monitor ports to swtich to. MPC5121ADS doesn't have additional monitor port. So switching
    monirot port for MPC5121ADS has no effect.

    If compiled as a module, it takes pamameters mode, bpp, monitor with the same syntax above.

    Signed-off-by: York Sun
    Signed-off-by: Timur Tabi
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    York Sun
     
  • By default disable VT switch, but allow it to be overridden via the
    'vt_switch' module arg.

    Signed-off-by: Andres Salomon
    Cc: "Antonino A. Daplas"
    Cc: Jordan Crouse
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andres Salomon
     
  • Match other fb drivers (including gxfb). Also, document the current boot
    arguments in Documentation/fb/lxfb.txt.

    Signed-off-by: Andres Salomon
    Cc: "Antonino A. Daplas"
    Cc: Jordan Crouse
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andres Salomon
     
  • Add names of drivers converted to "mode_option" parameter.

    This is one step toward changing all fb drivers to have common "mode_option"
    parameter.

    Signed-off-by: Krzysztof Helt
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • Prior to suspend, we allocate and switch to a new VT; after suspend, we switch
    back to the original VT. This can be slow, and is completely unnecessary if
    the framebuffer we're using can restore video properly.

    This adds a hook that allows drivers to select whether or not to do this vt
    switch, and changes the gxfb driver to call this hook. It also adds a module
    param to gxfb to allow controlling of the vt switch (defaulting to no switch).

    (Note: I'm not convinced that console_sem is the best way to protect this, but
    we should probably have some form of locking..)

    [akpm@linux-foundation.org: build fix]
    Signed-off-by: Andres Salomon
    Cc: Jordan Crouse
    Cc: "Antonino A. Daplas"
    Cc: Pavel Machek
    Cc: "Rafael J. Wysocki"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andres Salomon
     
  • Use a command line option (vram) rather than hardcoding the vram size. LxFB
    already does this; it's useful for machines that can't query the BIOS for fb
    size. This patch originated from David Woodhouse, was modified by Jordan
    Crouse, and was then modified further by me.

    This also adds some gxfb documentation in Documentation/fb.

    Signed-off-by: Andres Salomon
    Cc: Jordan Crouse
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andres Salomon
     
  • Introduce a gpio_is_valid() predicate; use it in gpiolib.

    Signed-off-by: Guennadi Liakhovetski
    [ use inline function; follow the gpio_* naming convention;
    work without gpiolib; all programming interfaces need docs ]
    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Guennadi Liakhovetski
     
  • Add the description of batch registration interfaces to
    Documentation/kprobes.txt.

    Signed-off-by: Masami Hiramatsu
    Cc: Ananth N Mavinakayanahalli
    Cc: Jim Keniston
    Cc: Prasanna S Panchamukhi
    Cc: Shaohua Li
    Cc: David Miller
    Cc: "Frank Ch. Eigler"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masami Hiramatsu
     
  • Move sample source code to its own source file so that it can be used
    easier and build-tested/check/maintained by anyone.

    (Makefile changes are in a separate patch for all of Documentation/.)

    Signed-off-by: Randy Dunlap
    Acked-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Now that we're using "preferred local" policy for system default, we need to
    make this as fast as possible. Because of the variable size of the mempolicy
    structure [based on size of nodemasks], the preferred_node may be in a
    different cacheline from the mode. This can result in accessing an extra
    cacheline in the normal case of system default policy. Suspect this is the
    cause of an observed 2-3% slowdown in page fault testing relative to kernel
    without this patch series.

    To alleviate this, use an internal mode flag, MPOL_F_LOCAL in the mempolicy
    flags member which is guaranteed [?] to be in the same cacheline as the mode
    itself.

    Verified that reworked mempolicy now performs slightly better on 25-rc8-mm1
    for both anon and shmem segments with system default and vma [preferred local]
    policy.

    Signed-off-by: Lee Schermerhorn
    Cc: Christoph Lameter
    Cc: David Rientjes
    Cc: Mel Gorman
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lee Schermerhorn
     
  • Currently, when one specifies MPOL_DEFAULT via a NUMA memory policy API
    [set_mempolicy(), mbind() and internal versions], the kernel simply installs a
    NULL struct mempolicy pointer in the appropriate context: task policy, vma
    policy, or shared policy. This causes any use of that policy to "fall back"
    to the next most specific policy scope.

    The only use of MPOL_DEFAULT to mean "local allocation" is in the system
    default policy. This requires extra checks/cases for MPOL_DEFAULT in many
    mempolicy.c functions.

    There is another, "preferred" way to specify local allocation via the APIs.
    That is using the MPOL_PREFERRED policy mode with an empty nodemask.
    Internally, the empty nodemask gets converted to a preferred_node id of '-1'.
    All internal usage of MPOL_PREFERRED will convert the '-1' to the id of the
    node local to the cpu where the allocation occurs.

    System default policy, except during boot, is hard-coded to "local
    allocation". By using the MPOL_PREFERRED mode with a negative value of
    preferred node for system default policy, MPOL_DEFAULT will never occur in the
    'policy' member of a struct mempolicy. Thus, we can remove all checks for
    MPOL_DEFAULT when converting policy to a node id/zonelist in the allocation
    paths.

    In slab_node() return local node id when policy pointer is NULL. No need to
    set a pol value to take the switch default. Replace switch default with
    BUG()--i.e., shouldn't happen.

    With this patch MPOL_DEFAULT is only used in the APIs, including internal
    calls to do_set_mempolicy() and in the display of policy in
    /proc//numa_maps. It always means "fall back" to the the next most
    specific policy scope. This simplifies the description of memory policies
    quite a bit, with no visible change in behavior.

    get_mempolicy() continues to return MPOL_DEFAULT and an empty nodemask when
    the requested policy [task or vma/shared] is NULL. These are the values one
    would supply via set_mempolicy() or mbind() to achieve that condition--default
    behavior.

    This patch updates Documentation to reflect this change.

    Signed-off-by: Lee Schermerhorn
    Cc: Christoph Lameter
    Cc: David Rientjes
    Cc: Mel Gorman
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lee Schermerhorn
     
  • After further discussion with Christoph Lameter, it has become clear that my
    earlier attempts to clean up the mempolicy reference counting were a bit of
    overkill in some areas, resulting in superflous ref/unref in what are usually
    fast paths. In other areas, further inspection reveals that I botched the
    unref for interleave policies.

    A separate patch, suitable for upstream/stable trees, fixes up the known
    errors in the previous attempt to fix reference counting.

    This patch reworks the memory policy referencing counting and, one hopes,
    simplifies the code. Maybe I'll get it right this time.

    See the update to the numa_memory_policy.txt document for a discussion of
    memory policy reference counting that motivates this patch.

    Summary:

    Lookup of mempolicy, based on (vma, address) need only add a reference for
    shared policy, and we need only unref the policy when finished for shared
    policies. So, this patch backs out all of the unneeded extra reference
    counting added by my previous attempt. It then unrefs only shared policies
    when we're finished with them, using the mpol_cond_put() [conditional put]
    helper function introduced by this patch.

    Note that shmem_swapin() calls read_swap_cache_async() with a dummy vma
    containing just the policy. read_swap_cache_async() can call alloc_page_vma()
    multiple times, so we can't let alloc_page_vma() unref the shared policy in
    this case. To avoid this, we make a copy of any non-null shared policy and
    remove the MPOL_F_SHARED flag from the copy. This copy occurs before reading
    a page [or multiple pages] from swap, so the overhead should not be an issue
    here.

    I introduced a new static inline function "mpol_cond_copy()" to copy the
    shared policy to an on-stack policy and remove the flags that would require a
    conditional free. The current implementation of mpol_cond_copy() assumes that
    the struct mempolicy contains no pointers to dynamically allocated structures
    that must be duplicated or reference counted during copy.

    Signed-off-by: Lee Schermerhorn
    Cc: Christoph Lameter
    Cc: David Rientjes
    Cc: Mel Gorman
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lee Schermerhorn
     
  • The terms 'policy' and 'mode' are both used in various places to describe the
    semantics of the value stored in the 'policy' member of struct mempolicy.
    Furthermore, the term 'policy' is used to refer to that member, to the entire
    struct mempolicy and to the more abstract concept of the tuple consisting of a
    "mode" and an optional node or set of nodes. Recently, we have added "mode
    flags" that are passed in the upper bits of the 'mode' [or sometimes,
    'policy'] member of the numa APIs.

    I'd like to resolve this confusion, which perhaps only exists in my mind, by
    renaming the 'policy' member to 'mode' throughout, and fixing up the
    Documentation. Man pages will be updated separately.

    Signed-off-by: Lee Schermerhorn
    Cc: Christoph Lameter
    Cc: David Rientjes
    Cc: Mel Gorman
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lee Schermerhorn
     
  • MPOL_F_STATIC_NODES and MPOL_F_RELATIVE_NODES don't mean anything for
    MPOL_PREFERRED policies that were created with an empty nodemask (for purely
    local allocations). They'll never be invalidated because the allowed mems of
    a task changes or need to be rebound relative to a cpuset's placement.

    Also fixes a bug identified by Lee Schermerhorn that disallowed empty
    nodemasks to be passed to MPOL_PREFERRED to specify local allocations. [A
    different, somewhat incomplete, patch already existed in 25-rc5-mm1.]

    Cc: Paul Jackson
    Cc: Christoph Lameter
    Cc: Lee Schermerhorn
    Cc: Andi Kleen
    Cc: Randy Dunlap
    Signed-off-by: Lee Schermerhorn
    Signed-off-by: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     
  • Updates Documentation/vm/numa_memory_policy.txt and
    Documentation/filesystems/tmpfs.txt to describe optional mempolicy mode flags.

    Cc: Christoph Lameter
    Cc: Lee Schermerhorn
    Cc: Andi Kleen
    Cc: Randy Dunlap
    Signed-off-by: David Rientjes
    Signed-off-by: Paul Jackson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     
  • The MPOL_BIND policy creates a zonelist that is used for allocations
    controlled by that mempolicy. As the per-node zonelist is already being
    filtered based on a zone id, this patch adds a version of __alloc_pages() that
    takes a nodemask for further filtering. This eliminates the need for
    MPOL_BIND to create a custom zonelist.

    A positive benefit of this is that allocations using MPOL_BIND now use the
    local node's distance-ordered zonelist instead of a custom node-id-ordered
    zonelist. I.e., pages will be allocated from the closest allowed node with
    available memory.

    [Lee.Schermerhorn@hp.com: Mempolicy: update stale documentation and comments]
    [Lee.Schermerhorn@hp.com: Mempolicy: make dequeue_huge_page_vma() obey MPOL_BIND nodemask]
    [Lee.Schermerhorn@hp.com: Mempolicy: make dequeue_huge_page_vma() obey MPOL_BIND nodemask rework]
    Signed-off-by: Mel Gorman
    Acked-by: Christoph Lameter
    Signed-off-by: Lee Schermerhorn
    Cc: KAMEZAWA Hiroyuki
    Cc: Mel Gorman
    Cc: Hugh Dickins
    Cc: Nick Piggin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Nothing in the tree uses nopage any more. Remove support for it in the
    core mm code and documentation (and a few stray references to it in
    comments).

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

    Nick Piggin
     
  • Add to the generated kerneldoc, with some overview
    to go along with those per-function descriptions.

    Signed-off-by: David Brownell
    Cc: Russell King
    Cc: Alessandro Zummo
    Cc: "Randy.Dunlap"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • * 'kvm-updates-2.6.26' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm: (147 commits)
    KVM: kill file->f_count abuse in kvm
    KVM: MMU: kvm_pv_mmu_op should not take mmap_sem
    KVM: SVM: remove selective CR0 comment
    KVM: SVM: remove now obsolete FIXME comment
    KVM: SVM: disable CR8 intercept when tpr is not masking interrupts
    KVM: SVM: sync V_TPR with LAPIC.TPR if CR8 write intercept is disabled
    KVM: export kvm_lapic_set_tpr() to modules
    KVM: SVM: sync TPR value to V_TPR field in the VMCB
    KVM: ppc: PowerPC 440 KVM implementation
    KVM: Add MAINTAINERS entry for PowerPC KVM
    KVM: ppc: Add DCR access information to struct kvm_run
    ppc: Export tlb_44x_hwater for KVM
    KVM: Rename debugfs_dir to kvm_debugfs_dir
    KVM: x86 emulator: fix lea to really get the effective address
    KVM: x86 emulator: fix smsw and lmsw with a memory operand
    KVM: x86 emulator: initialize src.val and dst.val for register operands
    KVM: SVM: force a new asid when initializing the vmcb
    KVM: fix kvm_vcpu_kick vs __vcpu_run race
    KVM: add ioctls to save/store mpstate
    KVM: Rename VCPU_MP_STATE_* to KVM_MP_STATE_*
    ...

    Linus Torvalds
     

27 Apr, 2008

11 commits