16 Jun, 2011

32 commits

  • The following crash was reported:

    > Call Trace:
    > [] mem_cgroup_from_task+0x15/0x17
    > [] __mem_cgroup_try_charge+0x148/0x4b4
    > [] ? need_resched+0x23/0x2d
    > [] ? preempt_schedule+0x46/0x4f
    > [] mem_cgroup_charge_common+0x9a/0xce
    > [] mem_cgroup_newpage_charge+0x5d/0x5f
    > [] khugepaged+0x5da/0xfaf
    > [] ? __init_waitqueue_head+0x4b/0x4b
    > [] ? add_mm_counter.constprop.5+0x13/0x13
    > [] kthread+0xa8/0xb0
    > [] ? sub_preempt_count+0xa1/0xb4
    > [] kernel_thread_helper+0x4/0x10
    > [] ? retint_restore_args+0x13/0x13
    > [] ? __init_kthread_worker+0x5a/0x5a

    What happens is that khugepaged tries to charge a huge page against an mm
    whose last possible owner has already exited, and the memory controller
    crashes when the stale mm->owner is used to look up the cgroup to charge.

    mm->owner has never been set to NULL with the last owner going away, but
    nobody cared until khugepaged came along.

    Even then it wasn't a problem because the final mmput() on an mm was
    forced to acquire and release mmap_sem in write-mode, preventing an
    exiting owner to go away while the mmap_sem was held, and until "692e0b3
    mm: thp: optimize memcg charge in khugepaged", the memory cgroup charge
    was protected by mmap_sem in read-mode.

    Instead of going back to relying on the mmap_sem to enforce lifetime of a
    task, this patch ensures that mm->owner is properly set to NULL when the
    last possible owner is exiting, which the memory controller can handle
    just fine.

    [akpm@linux-foundation.org: tweak comments]
    Signed-off-by: Hugh Dickins
    Signed-off-by: KAMEZAWA Hiroyuki
    Signed-off-by: Johannes Weiner
    Reported-by: Hugh Dickins
    Reported-by: Dave Jones
    Reviewed-by: Andrea Arcangeli
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • Commit 21a3c9646873 ("memcg: allocate memory cgroup structures in local
    nodes") makes page_cgroup allocation as NUMA aware. But that caused a
    problem https://bugzilla.kernel.org/show_bug.cgi?id=36192.

    The problem was getting a NID from invalid struct pages, which was not
    initialized because it was out-of-node, out of [node_start_pfn,
    node_end_pfn)

    Now, with sparsemem, page_cgroup_init scans pfn from 0 to max_pfn. But
    this may scan a pfn which is not on any node and can access memmap which
    is not initialized.

    This makes page_cgroup_init() for SPARSEMEM node aware and remove a code
    to get nid from page->flags. (Then, we'll use valid NID always.)

    [akpm@linux-foundation.org: try to fix up comments]
    Signed-off-by: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • Commit 406eb0c9ba76 ("memcg: add memory.numastat api for numa
    statistics") adds memory.numa_stat file for memory cgroup. But the file
    permissions are wrong.

    [kamezawa@bluextal linux-2.6]$ ls -l /cgroup/memory/A/memory.numa_stat
    ---------- 1 root root 0 Jun 9 18:36 /cgroup/memory/A/memory.numa_stat

    This patch fixes the permission as

    [root@bluextal kamezawa]# ls -l /cgroup/memory/A/memory.numa_stat
    -r--r--r-- 1 root root 0 Jun 10 16:49 /cgroup/memory/A/memory.numa_stat

    Signed-off-by: KAMEZAWA Hiroyuki
    Acked-by: Ying Han
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • Seems when a config option does not have a dependency of the menuconfig,
    it messes the display of the rest configs, even if it's a hidden one.

    Signed-off-by: Eric Miao
    Cc: Richard Purdie
    Cc: Valdis Kletnieks
    Cc: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Miao
     
  • When 1GB hugepages are allocated on a system, free(1) reports less
    available memory than what really is installed in the box. Also, if the
    total size of hugepages allocated on a system is over half of the total
    memory size, CommitLimit becomes a negative number.

    The problem is that gigantic hugepages (order > MAX_ORDER) can only be
    allocated at boot with bootmem, thus its frames are not accounted to
    'totalram_pages'. However, they are accounted to hugetlb_total_pages()

    What happens to turn CommitLimit into a negative number is this
    calculation, in fs/proc/meminfo.c:

    allowed = ((totalram_pages - hugetlb_total_pages())
    * sysctl_overcommit_ratio / 100) + total_swap_pages;

    A similar calculation occurs in __vm_enough_memory() in mm/mmap.c.

    Also, every vm statistic which depends on 'totalram_pages' will render
    confusing values, as if system were 'missing' some part of its memory.

    Impact of this bug:

    When gigantic hugepages are allocated and sysctl_overcommit_memory ==
    OVERCOMMIT_NEVER. In a such situation, __vm_enough_memory() goes through
    the mentioned 'allowed' calculation and might end up mistakenly returning
    -ENOMEM, thus forcing the system to start reclaiming pages earlier than it
    would be ususal, and this could cause detrimental impact to overall
    system's performance, depending on the workload.

    Besides the aforementioned scenario, I can only think of this causing
    annoyances with memory reports from /proc/meminfo and free(1).

    [akpm@linux-foundation.org: standardize comment layout]
    Reported-by: Russ Anderson
    Signed-off-by: Rafael Aquini
    Acked-by: Russ Anderson
    Cc: Andrea Arcangeli
    Cc: Christoph Lameter
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael Aquini
     
  • During memory hotplug we refresh zonelists when we online a page in a new
    zone. It means that the node's zonelist is not initialized until pages
    are onlined. So for example, "nid" passed by MEM_GOING_ONLINE notifier
    will point to NODE_DATA(nid) which has no zone fallback list. Moreover,
    if we hot-add cpu-only nodes, alloc_pages() will do no fallback.

    This patch makes a zonelist when a new pgdata is available.

    Note: in production, at fujitsu, memory should be onlined before cpu
    and our server didn't have any memory-less nodes and had no problems.

    But recent changes in MEM_GOING_ONLINE+page_cgroup
    will access not initialized zonelist of node.
    Anyway, there are memory-less node and we need some care.

    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Mel Gorman
    Cc: Dave Hansen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • Remove calibrate_delay_direct()'s KERN_DEBUG printk related to bogomips
    calculation as it appears when booting every core on setups with
    'ignore_loglevel' which dmesg people scan for possible issues. As the
    message doesn't show very useful information to the widest audience of
    kernel boot message gazers, it should be removed.

    Introduced by commit d2b463135f84 ("init/calibrate.c: fix for critical
    bogoMIPS intermittent calculation failure").

    Signed-off-by: Borislav Petkov
    Cc: Andrew Worsley
    Cc: Phil Carmody
    Cc: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Borislav Petkov
     
  • On m68k (which doesn't support generic hardirqs yet):

    drivers/w1/masters/ds1wm.c: In function `ds1wm_probe':
    drivers/w1/masters/ds1wm.c: error: implicit declaration of function `irq_set_irq_type'

    Signed-off-by: Geert Uytterhoeven
    Cc: Evgeniy Polyakov
    Cc: Jean-Franois Dagenais
    Cc: Matt Reimer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • Signed-off-by: Nicolas Kaiser
    Reviewed-by: Andrea Arcangeli
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nicolas Kaiser
     
  • Add maintainers for the videobuf2 V4L2 driver framework.

    Signed-off-by: Pawel Osciak
    Acked-by: Marek Szyprowski
    Cc: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pawel Osciak
     
  • Commit 4440673a95e6 ("leds: provide helper to register "leds-gpio"
    devices") broke the display of the NEW_LEDS menu as it didn't depend on
    NEW_LEDS and so made "LED drivers" and "LED Triggers" appear at the same
    level as "LED Support" instead of below it as it was before 4440673a.

    Moving LEDS_GPIO_REGISTER out of the menuconfig NEW_LEDS fixes this
    unintended side effect.

    Reported-by: Axel Lin
    Signed-off-by: Uwe Kleine-König
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Uwe Kleine-König
     
  • We call led_classdev_unregister/led_classdev_register in
    asic3_led_remove/asic3_led_probe, thus make LEDS_ASIC3 depend on
    LEDS_CLASS.

    This patch fixes below build error if LEDS_CLASS is not configured.

    LD .tmp_vmlinux1
    drivers/built-in.o: In function `asic3_led_remove':
    clkdev.c:(.devexit.text+0x1860): undefined reference to `led_classdev_unregister'
    drivers/built-in.o: In function `asic3_led_probe':
    clkdev.c:(.devinit.text+0xcee8): undefined reference to `led_classdev_register'
    make: *** [.tmp_vmlinux1] Error 1

    Signed-off-by: Axel Lin
    Cc: Paul Parsons
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Axel Lin
     
  • Update my email address. Email will start to the old address bouncing
    soon

    Signed-off-by: Balbir Singh
    Cc: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Balbir Singh
     
  • The "hostname" tool falls back to setting the hostname to "localhost" if
    /etc/hostname does not exist. Distribution init scripts have the same
    fallback. However, if userspace never calls sethostname, such as when
    booting with init=/bin/sh, or otherwise booting a minimal system without
    the usual init scripts, the default hostname of "(none)" remains,
    unhelpfully appearing in various places such as prompts ("root@(none):~#")
    and logs. Furthermore, "(none)" doesn't typically resolve to anything
    useful.

    Make the default hostname configurable. This removes the need for the
    standard fallback, provides a useful default for systems that never call
    sethostname, and makes minimal systems that much more useful with less
    configuration. Distributions could choose to use "localhost" here to
    avoid the fallback, while embedded systems may wish to use a specific
    target hostname.

    Signed-off-by: Josh Triplett
    Acked-by: Linus Torvalds
    Acked-by: David Miller
    Cc: Serge Hallyn
    Cc: Kel Modderman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Josh Triplett
     
  • BUILD_BUG_ON_ZERO and BUILD_BUG_ON_NULL must return values, even in the
    CHECKER case otherwise various users of it become syntactically invalid.

    Signed-off-by: Dr. David Alan Gilbert
    Reviewed-by: KOSAKI Motohiro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dr. David Alan Gilbert
     
  • Commit 56de7263fcf3 ("mm: compaction: direct compact when a high-order
    allocation fails") introduced a check for cc->order == -1 in
    compact_finished. We should continue compacting in that case because
    the request came from userspace and there is no particular order to
    compact for. Similar check has been added by 82478fb7 (mm: compaction:
    prevent division-by-zero during user-requested compaction) for
    compaction_suitable.

    The check is, however, done after zone_watermark_ok which uses order as a
    right hand argument for shifts. Not only watermark check is pointless if
    we can break out without it but it also uses 1 << -1 which is not well
    defined (at least from C standard). Let's move the -1 check above
    zone_watermark_ok.

    [minchan.kim@gmail.com> - caught compaction_suitable]
    Signed-off-by: Michal Hocko
    Cc: Mel Gorman
    Reviewed-by: Minchan Kim
    Reviewed-by: KAMEZAWA Hiroyuki
    Acked-by: Mel Gorman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • Running a ktest.pl test, I hit the following bug on x86_32:

    ------------[ cut here ]------------
    WARNING: at arch/x86/mm/highmem_32.c:81 __kunmap_atomic+0x64/0xc1()
    Hardware name:
    Modules linked in:
    Pid: 93, comm: sh Not tainted 2.6.39-test+ #1
    Call Trace:
    [] warn_slowpath_common+0x7c/0x91
    [] ? __kunmap_atomic+0x64/0xc1
    [] ? __kunmap_atomic+0x64/0xc1^M
    [] warn_slowpath_null+0x22/0x24
    [] __kunmap_atomic+0x64/0xc1
    [] unmap_vmas+0x43a/0x4e0
    [] exit_mmap+0x91/0xd2
    [] mmput+0x43/0xad
    [] exit_mm+0x111/0x119
    [] do_exit+0x1ff/0x5fa
    [] ? set_current_blocked+0x3c/0x40
    [] ? sigprocmask+0x7e/0x8e
    [] do_group_exit+0x65/0x88
    [] sys_exit_group+0x18/0x1c
    [] sysenter_do_call+0x12/0x38
    ---[ end trace 8055f74ea3c0eb62 ]---

    Running a ktest.pl git bisect, found the culprit: commit e303297e6c3a
    ("mm: extended batches for generic mmu_gather")

    But although this was the commit triggering the bug, it was not the one
    originally responsible for the bug. That was commit d16dfc550f53 ("mm:
    mmu_gather rework").

    The code in zap_pte_range() has something that looks like the following:

    pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
    do {
    [...]
    } while (pte++, addr += PAGE_SIZE, addr != end);
    pte_unmap_unlock(pte - 1, ptl);

    The pte starts off pointing at the first element in the page table
    directory that was returned by the pte_offset_map_lock(). When it's done
    with the page, pte will be pointing to anything between the next entry and
    the first entry of the next page inclusive. By doing a pte - 1, this puts
    the pte back onto the original page, which is all that pte_unmap_unlock()
    needs.

    In most archs (64 bit), this is not an issue as the pte is ignored in the
    pte_unmap_unlock(). But on 32 bit archs, where things may be kmapped, it
    is essential that the pte passed to pte_unmap_unlock() resides on the same
    page that was given by pte_offest_map_lock().

    The problem came in d16dfc55 ("mm: mmu_gather rework") where it introduced
    a "break;" from the while loop. This alone did not seem to easily trigger
    the bug. But the modifications made by e303297e6 caused that "break;" to
    be hit on the first iteration, before the pte++.

    The pte not being incremented will now cause pte_unmap_unlock(pte - 1) to
    be pointing to the previous page. This will cause the wrong page to be
    unmapped, and also trigger the warning above.

    The simple solution is to just save the pointer given by
    pte_offset_map_lock() and use it in the unlock.

    Signed-off-by: Steven Rostedt
    Cc: Peter Zijlstra
    Cc: KAMEZAWA Hiroyuki
    Acked-by: Hugh Dickins
    Cc: Mel Gorman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Steven Rostedt
     
  • Fix the wrong `if' condition for the check if the requested timer is
    available.

    The bitmap avail is used to store if a timer is used already. test_bit()
    is used to check if the requested timer is available. If a bit in the
    avail bitmap is set it means that the timer is available.

    The runtime effect would be that allocating a specific timer always fails
    (versus telling cs5535_mfgpt_alloc_timer to allocate the first available
    timer, which works).

    Signed-off-by: Christian Gmeiner
    Acked-by: Andres Salomon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christian Gmeiner
     
  • In the case of goto err_kzalloc, we should kfree target.

    Signed-off-by: Axel Lin
    Acked-by: Pratyush Anand
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Axel Lin
     
  • Recently, Robert Mueller reported (http://lkml.org/lkml/2010/9/12/236)
    that zone_reclaim_mode doesn't work properly on his new NUMA server (Dual
    Xeon E5520 + Intel S5520UR MB). He is using Cyrus IMAPd and it's built on
    a very traditional single-process model.

    * a master process which reads config files and manages the other
    process
    * multiple imapd processes, one per connection
    * multiple pop3d processes, one per connection
    * multiple lmtpd processes, one per connection
    * periodical "cleanup" processes.

    There are thousands of independent processes. The problem is, recent
    Intel motherboard turn on zone_reclaim_mode by default and traditional
    prefork model software don't work well on it. Unfortunatelly, such models
    are still typical even in the 21st century. We can't ignore them.

    This patch raises the zone_reclaim_mode threshold to 30. 30 doesn't have
    any specific meaning. but 20 means that one-hop QPI/Hypertransport and
    such relatively cheap 2-4 socket machine are often used for traditional
    servers as above. The intention is that these machines don't use
    zone_reclaim_mode.

    Note: ia64 and Power have arch specific RECLAIM_DISTANCE definitions.
    This patch doesn't change such high-end NUMA machine behavior.

    Dave Hansen said:

    : I know specifically of pieces of x86 hardware that set the information
    : in the BIOS to '21' *specifically* so they'll get the zone_reclaim_mode
    : behavior which that implies.
    :
    : They've done performance testing and run very large and scary benchmarks
    : to make sure that they _want_ this turned on. What this means for them
    : is that they'll probably be de-optimized, at least on newer versions of
    : the kernel.
    :
    : If you want to do this for particular systems, maybe _that_'s what we
    : should do. Have a list of specific configurations that need the
    : defaults overridden either because they're buggy, or they have an
    : unusual hardware configuration not really reflected in the distance
    : table.

    And later said:

    : The original change in the hardware tables was for the benefit of a
    : benchmark. Said benchmark isn't going to get run on mainline until the
    : next batch of enterprise distros drops, at which point the hardware where
    : this was done will be irrelevant for the benchmark. I'm sure any new
    : hardware will just set this distance to another yet arbitrary value to
    : make the kernel do what it wants. :)
    :
    : Also, when the hardware got _set_ to this initially, I complained. So, I
    : guess I'm getting my way now, with this patch. I'm cool with it.

    Reported-by: Robert Mueller
    Signed-off-by: KOSAKI Motohiro
    Acked-by: Christoph Lameter
    Acked-by: David Rientjes
    Reviewed-by: KAMEZAWA Hiroyuki
    Cc: Benjamin Herrenschmidt
    Cc: "Luck, Tony"
    Acked-by: Dave Hansen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • Warn about uses of printk_ratelimit() because it uses a global state and
    can hide subsequent useful messages.

    Signed-off-by: Joe Perches
    Cc: Andy Whitcroft
    Cc: Richard Weinberger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Fix when CONFIG_PRINTK is not enabled:

    include/linux/kmsg_dump.h:56: error: 'EINVAL' undeclared (first use in this function)
    include/linux/kmsg_dump.h:61: error: 'EINVAL' undeclared (first use in this function)

    Looks like commit 595dd3d8bf95 ("kmsg_dump: fix build for
    CONFIG_PRINTK=n") uses EINVAL without having the needed header file(s),
    but I'm sure that I build tested that patch also. oh well.

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

    Randy Dunlap
     
  • [akpm@linux-foundation.org: rework text, fit it into 80-cols]
    Signed-off-by: Ying Han
    Reviewed-by: KOSAKI Motohiro
    Acked-by: Balbir Singh
    Acked-by: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ying Han
     
  • While testing for memcg aware swap token, I observed a swap token was
    often grabbed an intermittent running process (eg init, auditd) and they
    never release a token.

    Why?

    Some processes (eg init, auditd, audispd) wake up when a process exiting.
    And swap token can be get first page-in process when a process exiting
    makes no swap token owner. Thus such above intermittent running process
    often get a token.

    And currently, swap token priority is only decreased at page fault path.
    Then, if the process sleep immediately after to grab swap token, the swap
    token priority never be decreased. That's obviously undesirable.

    This patch implement very poor (and lightweight) priority aging. It only
    be affect to the above corner case and doesn't change swap tendency
    workload performance (eg multi process qsbench load)

    Signed-off-by: KOSAKI Motohiro
    Reviewed-by: Rik van Riel
    Reviewed-by: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • This is useful for observing swap token activity.

    example output:

    zsh-1845 [000] 598.962716: update_swap_token_priority:
    mm=ffff88015eaf7700 old_prio=1 new_prio=0
    memtoy-1830 [001] 602.033900: update_swap_token_priority:
    mm=ffff880037a45880 old_prio=947 new_prio=949
    memtoy-1830 [000] 602.041509: update_swap_token_priority:
    mm=ffff880037a45880 old_prio=949 new_prio=951
    memtoy-1830 [000] 602.051959: update_swap_token_priority:
    mm=ffff880037a45880 old_prio=951 new_prio=953
    memtoy-1830 [000] 602.052188: update_swap_token_priority:
    mm=ffff880037a45880 old_prio=953 new_prio=955
    memtoy-1830 [001] 602.427184: put_swap_token:
    token_mm=ffff880037a45880
    zsh-1789 [000] 602.427281: replace_swap_token:
    old_token_mm= (null) old_prio=0 new_token_mm=ffff88015eaf7018
    new_prio=2
    zsh-1789 [001] 602.433456: update_swap_token_priority:
    mm=ffff88015eaf7018 old_prio=2 new_prio=4
    zsh-1789 [000] 602.437613: update_swap_token_priority:
    mm=ffff88015eaf7018 old_prio=4 new_prio=6
    zsh-1789 [000] 602.443924: update_swap_token_priority:
    mm=ffff88015eaf7018 old_prio=6 new_prio=8
    zsh-1789 [000] 602.451873: update_swap_token_priority:
    mm=ffff88015eaf7018 old_prio=8 new_prio=10
    zsh-1789 [001] 602.462639: update_swap_token_priority:
    mm=ffff88015eaf7018 old_prio=10 new_prio=12

    Signed-off-by: KOSAKI Motohiro
    Acked-by: Rik van Riel
    Reviewed-by: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • Currently, memcg reclaim can disable swap token even if the swap token mm
    doesn't belong in its memory cgroup. It's slightly risky. If an admin
    creates very small mem-cgroup and silly guy runs contentious heavy memory
    pressure workload, every tasks are going to lose swap token and then
    system may become unresponsive. That's bad.

    This patch adds 'memcg' parameter into disable_swap_token(). and if the
    parameter doesn't match swap token, VM doesn't disable it.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: KOSAKI Motohiro
    Reviewed-by: KAMEZAWA Hiroyuki
    Reviewed-by: Rik van Riel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • Cc: Michael Hennerich
    Cc: Mike Frysinger
    Cc: Matthew Garrett
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Signed-off-by: Michael Hennerich
    Signed-off-by: Mike Frysinger
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Hennerich
     
  • Commit a8bef8ff6ea1 ("mm: migration: avoid race between shift_arg_pages()
    and rmap_walk() during migration by not migrating temporary stacks")
    introduced a BUG_ON() to ensure that VM_STACK_FLAGS and
    VM_STACK_INCOMPLETE_SETUP do not overlap. The check is a compile time
    one, so BUILD_BUG_ON is more appropriate.

    Signed-off-by: Michal Hocko
    Cc: Mel Gorman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • Fix new kernel-doc warnings in lib/bitmap.c:

    Warning(lib/bitmap.c:596): No description found for parameter 'buf'
    Warning(lib/bitmap.c:596): Excess function parameter 'bp' description in '__bitmap_parselist'

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

    Randy Dunlap
     
  • Fix new kernel-doc warnings in mm/memory.c:

    Warning(mm/memory.c:1327): No description found for parameter 'tlb'
    Warning(mm/memory.c:1327): Excess function parameter 'tlbp' description in 'unmap_vmas'

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

    Randy Dunlap
     
  • Johannes noticed the vmstat update is already taken care of by
    khugepaged_alloc_hugepage() internally. The only places that are required
    to update the vmstat are the callers of alloc_hugepage (callers of
    khugepaged_alloc_hugepage aren't).

    Signed-off-by: Andrea Arcangeli
    Reported-by: Johannes Weiner
    Acked-by: Rik van Riel
    Reviewed-by: Minchan Kim
    Acked-by: Johannes Weiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrea Arcangeli
     

15 Jun, 2011

8 commits

  • Fix kernel-doc warnings in signal.c:

    Warning(kernel/signal.c:2374): No description found for parameter 'nset'
    Warning(kernel/signal.c:2374): Excess function parameter 'set' description in 'sys_rt_sigprocmask'

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

    Randy Dunlap
     
  • [ Also from Ben Hutchings and Vitaliy Ivanov
    ]

    Commit 06ae40ce073d ("x86 idle: EXPORT_SYMBOL(default_idle, pm_idle)
    only when APM demands it") removed the export for pm_idle/default_idle
    unless the apm module was modularised and CONFIG_APM_CPU_IDLE was set.

    But the apm module uses pm_idle/default_idle unconditionally,
    CONFIG_APM_CPU_IDLE only affects the bios idle threshold. Adjust the
    export accordingly.

    [ Used #ifdef instead of #if defined() as it's shorter, and what both
    Ben and Vitaliy used.. Andy, you're out-voted ;) - Linus ]

    Reported-by: Randy Dunlap
    Acked-by: Jiri Kosina
    Acked-by: Ingo Molnar
    Acked-by: Len Brown
    Signed-off-by: Andy Whitcroft
    Signed-off-by: Vitaliy Ivanov
    Signed-off-by: Ben Hutchings
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • * 'for-linus-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
    m68k: use kernel processor defines for conditional optimizations
    m68knommu: create config options for CPU classes
    m68knommu: fix linker script exported name sections

    Linus Torvalds
     
  • …s/security-testing-2.6

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6:
    TOMOYO: Fix oops in tomoyo_mount_acl().

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/avr32-2.6:
    avr32, exec: remove redundant set_fs(USER_DS)
    avr32: make intc_resume() return void to conform to syscore_ops
    avr32: add some more at91 to cpu.h definition
    avr32: set CONFIG_CC_OPTIMIZE_FOR_SIZE=y for all defconfigs
    avr32/at32ap: fix mapping of platform device id for USART
    avr32: fix use of non-existing portnr variable in at32_map_usart()

    Linus Torvalds
     
  • * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
    drm: Compare only lower 32 bits of framebuffer map offsets
    drm/i915: Don't leak in i915_gem_shmem_pread_slow()
    drm/radeon/kms: do bounds checking for 3D_LOAD_VBPNTR and bump array limit
    drm/radeon/kms: fix mac g5 quirk
    x86/uv/x2apic: update for change in pci bridge handling.
    alpha, drm: Remove obsolete Alpha support in MGA DRM code
    alpha/drm: Cleanup Alpha support in DRM generic code
    savage: remove unnecessary if statement
    drm/radeon: fix GUI idle IH debug statements
    drm/radeon/kms: check modes against max pixel clock
    drm: fix fbs in DRM_IOCTL_MODE_GETRESOURCES ioctl

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
    [CIFS] update cifs version to 1.73
    [CIFS] trivial cleanup fscache cFYI and cERROR messages
    cifs: correctly handle NULL tcon pointer in CIFSTCon
    cifs: show sec= option in /proc/mounts
    cifs: don't allow cifs_reconnect to exit with NULL socket pointer
    CIFS: Fix sparse error

    Linus Torvalds
     
  • * 'for-linus' of git://neil.brown.name/md:
    md/raid5: remove unusual use of bio_iovec_idx()
    md/raid5: fix FUA request handling in ops_run_io()
    md/raid5: fix raid5_set_bi_hw_segments
    md:Documentation/md.txt - fix typo
    md/bitmap: remove unused fields from struct bitmap
    md/bitmap: use proper accessor macro
    md: check ->hot_remove_disk when removing disk
    md: Using poll /proc/mdstat can monitor the events of adding a spare disks
    MD: use is_power_of_2 macro
    MD: raid5 do not set fullsync
    MD: support initial bitmap creation in-kernel
    MD: add sync_super to mddev_t struct
    MD: raid1 changes to allow use by device mapper
    MD: move thread wakeups into resume
    MD: possible typo
    MD: no sync IO while suspended
    MD: no integrity register if no gendisk

    Linus Torvalds