02 Dec, 2010

1 commit

  • o During some testing I did following and noticed throttling stops working.

    - Put a very low limit on a cgroup, say 1 byte per second.
    - Start some reads, this will set slice_end to a very high value.
    - Change the limit to higher value say 1MB/s
    - Now IO unthrottles and finishes as expected.
    - Try to do the read again but IO is not limited to 1MB/s as expected.

    o What is happening.
    - Initially low value of limit sets slice_end to a very high value.
    - During updation of limit, slice_end is not being truncated.
    - Very high value of slice_end leads to keeping the existing slice
    valid for a very long time and new slice does not start.
    - tg_may_dispatch() is called in blk_throtle_bio(), and trim_slice()
    is not called in this path. So slice_start is some old value and
    practically we are able to do huge amount of IO.

    o There are many ways it can be fixed. I have fixed it by trying to
    adjust/cleanup slice_end in trim_slice(). Generally we extend slices if bio
    is big and can't be dispatched in one slice. After dispatch of bio, readjust
    the slice_end to make sure we don't end up with huge values.

    Signed-off-by: Vivek Goyal
    Signed-off-by: Jens Axboe

    Vivek Goyal
     

29 Nov, 2010

1 commit


28 Nov, 2010

2 commits

  • In commit 9b7f76dc37919ea36caa9680a3f765e5b19b25fb,
    Author: Lars Ellenberg
    Date: Wed Aug 11 23:40:24 2010 +0200

    drbd: new configuration parameter c-min-rate

    a bad chunk slipped through, which is now reverted as well,
    restoring the correct irqsave for the endio callback.

    This patch also add comments at both req_mod()
    and in the endio callback so it should not happen again.

    Signed-off-by: Philipp Reisner
    Signed-off-by: Lars Ellenberg

    Lars Ellenberg
     
  • This should fix a performance degradation we observed recently.

    If we don't expect any subheader, we should not call into the tcp stack,
    as that may add considerable latency if there is no data available at
    this point.

    For a synthetic synchronous write load with single outstanding writes,
    this additional latency when processing the "unplug remote" packet
    added up to a performance degradation factor >= 10.

    Signed-off-by: Philipp Reisner
    Signed-off-by: Lars Ellenberg

    Lars Ellenberg
     

27 Nov, 2010

12 commits


26 Nov, 2010

1 commit

  • The stubs for CONFIG_INTR_REMAP disabled need to be functions
    instead of values to eliminate build warnings.

    arch/x86/kernel/apic/apic.c: In function 'lapic_suspend':
    arch/x86/kernel/apic/apic.c:2060:3: warning: statement with no effect
    arch/x86/kernel/apic/apic.c: In function 'lapic_resume':
    arch/x86/kernel/apic/apic.c:2137:3: warning: statement with no effect

    Reported-and-Tested-by: Fabio Comolli
    Signed-off-by: Randy Dunlap
    Cc: Suresh Siddha
    Cc: Yinghai Lu
    Cc: David Woodhouse
    Cc: Jesse Barnes
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Randy Dunlap
     

25 Nov, 2010

23 commits

  • The qdio device indicator is freed before the device is notified that
    the indicator is reset. This sequence contains a race when the freed
    indicator is used by a new device while the reset of the indicator is
    still pending. Do the reset operation before freeing the indicator to
    avoid that potential race.

    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky

    Jan Glauber
     
  • On each machine check all registers are revalidated. The save area for
    the clock comparator however only contains the upper most seven bytes
    of the former contents, if valid.
    Therefore the machine check handler uses a store clock instruction to
    get the current time and writes that to the clock comparator register
    which in turn will generate an immediate timer interrupt.
    However within the lowcore the expected time of the next timer
    interrupt is stored. If the interrupt happens before that time the
    handler won't be called. In turn the clock comparator won't be
    reprogrammed and therefore the interrupt condition stays pending which
    causes an interrupt loop until the expected time is reached.

    On NOHZ machines this can result in unresponsive machines since the
    time of the next expected interrupted can be a couple of days in the
    future.

    To fix this just revalidate the clock comparator register with the
    expected value.
    In addition the special handling for udelay must be changed as well.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • This patch fixes following warning messages when CONFIG_PM selected.

    In file included from arch/arm/mach-s5pv210/mach-smdkv210.c:34:
    arch/arm/plat-samsung/include/plat/pm.h:104: warning: 'struct sys_device'
    declared inside parameter list
    arch/arm/plat-samsung/include/plat/pm.h:104: warning: its scope is only this
    definition or declaration, which is probably not what you want
    arch/arm/plat-samsung/include/plat/pm.h:105: warning: 'struct sys_device'
    declared inside parameter list

    In file included from arch/arm/mach-s5pv210/mach-smdkc110.c:31:
    arch/arm/plat-samsung/include/plat/pm.h:104: warning: 'struct sys_device'
    declared inside parameter list
    arch/arm/plat-samsung/include/plat/pm.h:104: warning: its scope is only this
    definition or declaration, which is probably not what you want
    arch/arm/plat-samsung/include/plat/pm.h:105: warning: 'struct sys_device'
    declared inside parameter list

    Signed-off-by: Abhilash Kesavan
    Signed-off-by: Sangbeom Kim
    Signed-off-by: Kukjin Kim

    Abhilash Kesavan
     
  • The UART3 submask should be 0x7 (SUBSRCPND[26:24]).

    Signed-off-by: Abhilash Kesavan
    Signed-off-by: Sangbeom Kim
    Signed-off-by: Kukjin Kim

    Abhilash Kesavan
     
  • IRQ_S3C2443_UART3 is being used as the base when it should actually
    be IRQ_S3C2443_RX3 on S3C2443 and S3C2416 for the UART3.

    Signed-off-by: Abhilash Kesavan
    Signed-off-by: Sangbeom Kim
    Signed-off-by: Kukjin Kim

    Abhilash Kesavan
     
  • Don't rewrite clock config in UCON preconfigured by
    bootloader. No need to set 10th bit in UCON because
    [11:10] 2'b00 means source clock is PCLK too.
    If set, console does not work if bootloader
    has preconfigured [11:10] with 2'b00.
    If not set, console works with any bootloader
    config value (2'bxx).
    More information about clock setup in UCON is available
    in "S3C6410X RISC Microprocessor User's Manual,
    Revision 1.20" p. 31-13 (Chapter 31.6.2
    UART CONTROL REGISTER).

    Signed-off-by: Darius Augulis
    Signed-off-by: Kukjin Kim

    Darius Augulis
     
  • This patch fixes wrong s3c_gpio_cfgpull with s3c_gpio_setpull.

    Cc: Ben Dooks
    Signed-off-by: Kukjin Kim

    Kukjin Kim
     
  • Replace in s3c_gpio_cfgpull with s3c_gpio_setpull.

    Signed-off-by: Vasily Khoruzhick
    Signed-off-by: Kukjin Kim

    Vasily Khoruzhick
     
  • * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging:
    hwmon: (lis3lv02d_i2c) Fix compile warnings
    hwmon: (i5k_amb) Fix compile warning

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen: remove duplicated #include
    xen: x86/32: perform initial startup on initial_page_table

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
    arch/tile: fix memchr() not to dereference memory for zero length
    arch/tile: make glibc's sysconf(_SC_NPROCESSORS_CONF) work correctly
    arch/tile: fix rwlock so would-be write lockers don't block new readers

    Linus Torvalds
     
  • * 'drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
    pci root complex: support for tile architecture
    drivers/net/tile/: on-chip network drivers for the tile architecture
    MAINTAINERS: add drivers/char/hvc_tile.c as maintained by tile

    Linus Torvalds
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    ARM: 6482/2: Fix find_next_zero_bit and related assembly
    ARM: 6490/1: MM: bugfix: initialize spinlock for init_mm.context
    ARM: avoid annoying 's in printk output
    SCSI: arm fas216: fix missing ';'
    ARM: avoid marking decompressor .stack section as having contents
    ARM: 6489/1: thumb2: fix incorrect optimisation in usracc
    ARM: 6488/1: nomadik: prevent sched_clock() wraparound
    ARM: 6484/1: fix compile warning in mm/init.c
    ARM: 6473/1: Small update to ux500 specific L2 cache code
    ARM: improve compiler's ability to optimize page tables
    mx25: fix spi device registration typo
    ARM i.MX27 eukrea: Fix compilation
    ARM i.MX spi: fix compilation for i.MX21
    ARM i.MX pcm037 eet: compile fixes
    ARM i.MX: sdma is merged, so remove #ifdef SDMA_IS_MERGED
    ARM mx3fb: check for DMA engine type
    mach-pcm037_eet: Fix section mismatch for eet_init_devices()

    Linus Torvalds
     
  • …l/git/lethal/fbdev-2.6

    * 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6:
    sisfb: delete osdef.h
    sisfb: move the CONFIG warning to sis_main.c
    sisfb: replace SiS_SetMemory with memset_io
    sisfb: remove InPort/OutPort wrappers
    sisfb: use CONFIG_FB_SIS_301/315 instead of SIS301/315H
    sisfb: delete redudant #define SIS_LINUX_KERNEL
    sisfb: delete dead SIS_XORG_XF86 code
    sisfb: delete fallback code for pci_map_rom()
    sisfb: delete obsolete PCI ROM bug workaround
    fbdev: Update documentation index file.
    lxfb: Program panel v/h sync output polarity correctly
    fbcmap: integer overflow bug
    fbcmap: cleanup white space in fb_alloc_cmap()
    MAINTAINERS: Add fbdev patchwork entry, tidy up file patterns.
    fbdev: da8xx: punt duplicated FBIO_WAITFORVSYNC define
    fbdev: sh_mobile_lcdcfb: fix bug in reconfig()

    Linus Torvalds
     
  • * 'sh-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
    sh: clkfwk: Build fix for non-legacy CPG changes.
    sh: Use GCC __builtin_prefetch() to implement prefetch().
    sh: fix vsyscall compilation due to .eh_frame issue
    sh: avoid to flush all cache in sys_cacheflush
    sh: clkfwk: Disable init clk op for non-legacy clocks.
    sh: clkfwk: Kill off now unused algo_id in set_rate op.
    sh: clkfwk: Kill off unused clk_set_rate_ex().

    Linus Torvalds
     
  • * 'for-linus' of git://neil.brown.name/md:
    md: Call blk_queue_flush() to establish flush/fua support
    md/raid1: really fix recovery looping when single good device fails.
    md: fix return value of rdev_size_change()

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
    virtio: fix format of sysfs driver/vendor files
    Char: virtio_console, fix memory leak
    virtio: return correct capacity to users
    module: Update prototype for ref_module (formerly use_module)

    Linus Torvalds
     
  • When compiling arch/x86/kernel/early_printk_mrst.c with i386
    allmodconfig, gcc-4.1.0 generates an out-of-line copy of
    __set_fixmap_offset() which contains a reference to
    __this_fixmap_does_not_exist which the compiler cannot elide.

    Marking __set_fixmap_offset() as __always_inline prevents this.

    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Feng Tang
    Acked-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • The recent changes to gfp.h to satisfy sparse broke scripts/gfp-translate.
    This patch fixes it up to work with old and new versions of gfp.h .

    [akpm@linux-foundation.org: use `grep -q', per WANG Cong]
    Signed-off-by: Mel Gorman
    Cc: Namhyung Kim
    Reviewed-by: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • reiserfs_unpack() locks the inode mutex with reiserfs_mutex_lock_safe()
    to protect against reiserfs lock dependency. However this protection
    requires to have the reiserfs lock to be locked.

    This is the case if reiserfs_unpack() is called by reiserfs_ioctl but
    not from reiserfs_quota_on() when it tries to unpack tails of quota
    files.

    Fix the ordering of the two locks in reiserfs_unpack() to fix this
    issue.

    Signed-off-by: Frederic Weisbecker
    Reported-by: Markus Gapp
    Reported-by: Jan Kara
    Cc: Jeff Mahoney
    Cc: [2.6.36.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Frederic Weisbecker
     
  • According to the comment describing ops_lock in the definition of struct
    backlight_device and when comparing with other functions in backlight.c
    the mutex must be hold when checking ops to be non-NULL.

    Fixes a problem added by c835ee7f4154992e6 ("backlight: Add suspend/resume
    support to the backlight core") in Jan 2009.

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

    Uwe Kleine-König
     
  • struct als_data *data is not used in this driver at all.

    Also add a missing ">" character for MODULE_AUTHOR.

    Signed-off-by: Axel Lin
    Acked-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Axel Lin
     
  • Currently one pagemap_read() call walks in PAGEMAP_WALK_SIZE bytes (== 512
    pages.) But there is a corner case where walk_pmd_range() accidentally
    runs over a VMA associated with a hugetlbfs file.

    For example, when a process has mappings to VMAs as shown below:

    # cat /proc//maps
    ...
    3a58f6d000-3a58f72000 rw-p 00000000 00:00 0
    7fbd51853000-7fbd51855000 rw-p 00000000 00:00 0
    7fbd5186c000-7fbd5186e000 rw-p 00000000 00:00 0
    7fbd51a00000-7fbd51c00000 rw-s 00000000 00:12 8614 /hugepages/test

    then pagemap_read() goes into walk_pmd_range() path and walks in the range
    0x7fbd51853000-0x7fbd51a53000, but the hugetlbfs VMA should be handled by
    walk_hugetlb_range(). Otherwise PMD for the hugepage is considered bad
    and cleared, which causes undesirable results.

    This patch fixes it by separating pagemap walk range into one PMD.

    Signed-off-by: Naoya Horiguchi
    Cc: Jun'ichi Nomura
    Acked-by: KAMEZAWA Hiroyuki
    Cc: Matt Mackall
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Naoya Horiguchi