Permalink
Commits on Jan 25, 2012
  1. Merge branch 'vr' into sg-ns-ics

    stevegaron committed Jan 25, 2012
    Conflicts:
    	block/Kconfig.iosched
    	block/Makefile
  2. v(r) IO scheduler

    stevegaron committed Jan 25, 2012
  3. Tune deadline for flash devices

    franciscofranco authored and stevegaron committed Dec 18, 2011
    (cherry picked from commit bcb473e26697ffe9b377ce21569538d3289e8590)
  4. ipv4: save cpu cycles from check_leaf()

    franciscofranco authored and stevegaron committed Jan 11, 2012
    (cherry picked from commit bc9a88d3365fcfc9b75093a9add18fde531991e5)
  5. lib/string: use glibc version

    faux123 authored and stevegaron committed Dec 18, 2011
    the performance of memcpy and memmove of the general version is very
    inefficient, this patch improved them.
    
    Signed-off-by: Miao Xie <miaox*******>
    adapted by faux123 for 3.0.13 kernel
    (cherry picked from commit 5f16418ee97fb9a4170cb767852fc69a9e0240ad)
  6. lib/memcopy: use glibc version

    faux123 authored and stevegaron committed Dec 18, 2011
    the kernel's memcpy and memmove is very inefficient. But the glibc version is
    quite fast, in some cases it is 10 times faster than the kernel version. So I
    introduce some memory copy macros and functions of the glibc to improve the
    kernel version's performance.
    
    The strategy of the memory functions is:
    1. Copy bytes until the destination pointer is aligned.
    2. Copy words in unrolled loops.  If the source and destination are not
       aligned in the same way, use word memory operations, but shift and merge
       two read words before writing.
    3. Copy the few remaining bytes.
    
    Signed-off-by: Miao Xie <miaox*******>
    adapted by faux123 for 3.0.13 kernel
    (cherry picked from commit 67ffdd62af38a0c476ff4fd8fc7c4ddc6d8b094c)
  7. Remove ARM sha1 routines

    manabian authored and stevegaron committed Dec 18, 2011
    Since commit 8827a4a6b397b07a341ba7fd36ffb91a7835207d
    ("lib/sha1: use the git implementation of SHA-1"), the ARM SHA1
    routines no longer work. The reason? They depended on the larger
    320-byte workspace, and now the sha1 workspace is just 16 words
    (64 bytes). So the assembly version would overwrite the stack randomly.
    
    The optimized asm version is also probably slower than the new improved
    C version, so there's no reason to keep it around.  At least that was
    the case in git, where what appears to be the same assembly language
    version was removed two years ago because the optimized C BLK_SHA1 code
    was faster.
    
    Reported-and-tested-by: Joachim Eastwood <manabian@gmail.com>
    Cc: Andreas Schwab <schwab@linux-m68k.org>
    Cc: Nicolas Pitre <nico@fluxnic.net>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    (cherry picked from commit c291f0a480306264873bf88ac78352e347c9efa4)
  8. lib/sha1: use the git implementation of SHA-1

    Mandeep Singh Baines authored and stevegaron committed Dec 18, 2011
    For ChromiumOS, we use SHA-1 to verify the integrity of the root
    filesystem.  The speed of the kernel sha-1 implementation has a major
    impact on our boot performance.
    
    To improve boot performance, we investigated using the heavily optimized
    sha-1 implementation used in git.  With the git sha-1 implementation, we
    see a 11.7% improvement in boot time.
    
    10 reboots, remove slowest/fastest.
    
    Before:
    
      Mean: 6.58 seconds Stdev: 0.14
    
    After (with git sha-1, this patch):
    
      Mean: 5.89 seconds Stdev: 0.07
    
    The other cool thing about the git SHA-1 implementation is that it only
    needs 64 bytes of stack for the workspace while the original kernel
    implementation needed 320 bytes.
    
    Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
    Cc: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
    Cc: Nicolas Pitre <nico@cam.org>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: linux-crypto@vger.kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    (cherry picked from commit 3073c2c510ecb96becb9f08ff453f9578931f8de)
  9. Proportional Rate Reduction for TCP - by Google

    franciscofranco authored and stevegaron committed Jan 5, 2012
    (cherry picked from commit ca59320708ca307e6cbbbcdfb1d65bcdd85f8dcb)
  10. I/O-less dirty throttling, reduce filesystem writeback from page recl…

    franciscofranco authored and stevegaron committed Jan 5, 2012
    …aim - backport from 3.2 - Part II
    
    (cherry picked from commit 4860f509a8ca351a16cc1757275b0ad620f80a87)
  11. I/O-less dirty throttling, reduce filesystem writeback from page recl…

    franciscofranco authored and stevegaron committed Jan 5, 2012
    …aim - backport from 3.2 - Part I
    
    (cherry picked from commit a04924984b48153313c088f8560b56914a13fd73)
  12. writeback: Add a 'reason' to wb_writeback_work

    franciscofranco authored and stevegaron committed Jan 5, 2012
    (cherry picked from commit 0490e1be64be4a14d0852cc25a1531f3b88ec3b1)
  13. ext4: optimize ext4_ext_convert_to_initialized()

    franciscofranco authored and stevegaron committed Jan 8, 2012
    (cherry picked from commit 3a6df97004a0cd1f96fbe29be786ff7dc2b8466a)
  14. ext4: optimize memmmove lengths in extent/index insertions

    franciscofranco authored and stevegaron committed Jan 8, 2012
    (cherry picked from commit b71574679464d676cd72920eb00f3c2433e8ac54)
  15. ext4: remove deprecated oldalloc

    franciscofranco authored and stevegaron committed Jan 8, 2012
    (cherry picked from commit c2bdb2096f1cb8914ee13c395ff6faa4ab343771)
  16. vfs: avoid taking inode_hash_lock on pipes and sockets

    franciscofranco authored and stevegaron committed Jan 16, 2012
    (cherry picked from commit 45d0bd3ed8cb7d91ae6e24acb0033fa80ad25893)
  17. neither TCP resets nor ICMP destination-unreachable packets will be s…

    franciscofranco authored and stevegaron committed Jan 16, 2012
    …ent in response to packets sent to ports for which no associated listening process exists
  18. Add dynamic writeback feature from 3.1

    franciscofranco authored and stevegaron committed Dec 8, 2011
    (cherry picked from commit 3be5666056e2e714b7e497f68eb85295f4dc1fb1)
  19. block: limit default readahead size for small devices

    fengguang authored and stevegaron committed Nov 19, 2011
    Linus reports a _really_ small & slow (505kB, 15kB/s) USB device,
    on which blkid runs unpleasantly slow. He manages to optimize the blkid
    reads down to 1kB+16kB, but still kernel read-ahead turns it into 48kB.
    
         lseek 0,    read 1024   => readahead 4 pages (start of file)
         lseek 1536, read 16384  => readahead 8 pages (page contiguous)
    
    The readahead heuristics involved here are reasonable ones in general.
    So it's good to fix blkid with fadvise(RANDOM), as Linus already did.
    
    For the kernel part, Linus suggests:
      So maybe we could be less aggressive about read-ahead when the size of
      the device is small? Turning a 16kB read into a 64kB one is a big deal,
      when it's about 15% of the whole device!
    
    This looks reasonable: smaller device tend to be slower (USB sticks as
    well as micro/mobile/old hard disks).
    
    Given that the non-rotational attribute is not always reported, we can
    take disk size as a max readahead size hint. This patch uses a formula
    that generates the following concrete limits:
    
            disk size    readahead size
         (scale by 4)      (scale by 2)
                   1M                8k
                   4M               16k
                  16M               32k
                  64M               64k
                 256M              128k
            --------------------------- (*)
                   1G              256k
                   4G              512k
                  16G             1024k
                  64G             2048k
                 256G             4096k
    (*) Since the default readahead size is 128k, this limit only takes
    effect for devices whose size is less than 256M.
    
    The formula is determined on the following data, collected by script:
    
    	#!/bin/sh
    
    	# please make sure BDEV is not mounted or opened by others
    	BDEV=sdb
    
    	for rasize in 4 16 32 64 128 256 512 1024 2048 4096 8192
    	do
    		echo $rasize > /sys/block/$BDEV/queue/read_ahead_kb
    		time dd if=/dev/$BDEV of=/dev/null bs=4k count=102400
    	done
    The principle is, the formula shall not limit readahead size to such a
    degree that will impact some device's sequential read performance.
    
    The Intel SSD is special in that its throughput increases steadily with
    larger readahead size. However it may take years for Linux to increase
    its default readahead size to 2MB, so we don't take it seriously in the
    formula.
    
    SSD 80G Intel x25-M SSDSA2M080 (reported by Li Shaohua)
    
    	rasize	1st run		2nd run
    	----------------------------------
    	  4k	123 MB/s	122 MB/s
    	 16k  	153 MB/s	153 MB/s
    	 32k	161 MB/s	162 MB/s
    	 64k	167 MB/s	168 MB/s
    	128k	197 MB/s	197 MB/s
    	256k	217 MB/s	217 MB/s
    	512k	238 MB/s	234 MB/s
    	  1M	251 MB/s	248 MB/s
    	  2M	259 MB/s	257 MB/s
    ==>	  4M	269 MB/s	264 MB/s
    	  8M	266 MB/s	266 MB/s
    Note that ==> points to the readahead size that yields plateau throughput.
    
    SSD 22G MARVELL SD88SA02 MP1F (reported by Jens Axboe)
    
    	rasize  1st             2nd
    	--------------------------------
    	  4k     41 MB/s         41 MB/s
    	 16k     85 MB/s         81 MB/s
    	 32k    102 MB/s        109 MB/s
    	 64k    125 MB/s        144 MB/s
    	128k    183 MB/s        185 MB/s
    	256k    216 MB/s        216 MB/s
    	512k    216 MB/s        236 MB/s
    	1024k   251 MB/s        252 MB/s
    	  2M    258 MB/s        258 MB/s
    ==>       4M    266 MB/s        266 MB/s
    	  8M    266 MB/s        266 MB/s
    SSD 30G SanDisk SATA 5000
    
    	  4k	29.6 MB/s	29.6 MB/s	29.6 MB/s
    	 16k	52.1 MB/s	52.1 MB/s	52.1 MB/s
    	 32k	61.5 MB/s	61.5 MB/s	61.5 MB/s
    	 64k	67.2 MB/s	67.2 MB/s	67.1 MB/s
    	128k	71.4 MB/s	71.3 MB/s	71.4 MB/s
    	256k	73.4 MB/s	73.4 MB/s	73.3 MB/s
    ==>	512k	74.6 MB/s	74.6 MB/s	74.6 MB/s
    	  1M	74.7 MB/s	74.6 MB/s	74.7 MB/s
    	  2M	76.1 MB/s	74.6 MB/s	74.6 MB/s
    
    USB stick 32G Teclast CoolFlash idVendor=1307, idProduct=0165
    
    	  4k	7.9 MB/s 	7.9 MB/s 	7.9 MB/s
    	 16k	17.9 MB/s	17.9 MB/s	17.9 MB/s
    	 32k	24.5 MB/s	24.5 MB/s	24.5 MB/s
    	 64k	28.7 MB/s	28.7 MB/s	28.7 MB/s
    	128k	28.8 MB/s	28.9 MB/s	28.9 MB/s
    ==>	256k	30.5 MB/s	30.5 MB/s	30.5 MB/s
    	512k	30.9 MB/s	31.0 MB/s	30.9 MB/s
    	  1M	31.0 MB/s	30.9 MB/s	30.9 MB/s
    	  2M	30.9 MB/s	30.9 MB/s	30.9 MB/s
    
    USB stick 4G SanDisk  Cruzer idVendor=0781, idProduct=5151
    
    	  4k	6.4 MB/s 	6.4 MB/s 	6.4 MB/s
    	 16k	13.4 MB/s	13.4 MB/s	13.2 MB/s
    	 32k	17.8 MB/s	17.9 MB/s	17.8 MB/s
    	 64k	21.3 MB/s	21.3 MB/s	21.2 MB/s
    	128k	21.4 MB/s	21.4 MB/s	21.4 MB/s
    ==>	256k	23.3 MB/s	23.2 MB/s	23.2 MB/s
    	512k	23.3 MB/s	23.8 MB/s	23.4 MB/s
    	  1M	23.8 MB/s	23.4 MB/s	23.3 MB/s
    	  2M	23.4 MB/s	23.2 MB/s	23.4 MB/s
    
    USB stick 2G idVendor=0204, idProduct=6025 SerialNumber: 08082005000113
    
    	  4k	6.7 MB/s 	6.9 MB/s 	6.7 MB/s
    	 16k	11.7 MB/s	11.7 MB/s	11.7 MB/s
    	 32k	12.4 MB/s	12.4 MB/s	12.4 MB/s
       	 64k	13.4 MB/s	13.4 MB/s	13.4 MB/s
    	128k	13.4 MB/s	13.4 MB/s	13.4 MB/s
    ==>	256k	13.6 MB/s	13.6 MB/s	13.6 MB/s
    	512k	13.7 MB/s	13.7 MB/s	13.7 MB/s
    	  1M	13.7 MB/s	13.7 MB/s	13.7 MB/s
    	  2M	13.7 MB/s	13.7 MB/s	13.7 MB/s
    
    64 MB, USB full speed (collected by Clemens Ladisch)
    Bus 003 Device 003: ID 08ec:0011 M-Systems Flash Disk Pioneers DiskOnKey
    
    	4KB:    139.339 s, 376 kB/s
    	16KB:   81.0427 s, 647 kB/s
    	32KB:   71.8513 s, 730 kB/s
    ==>	64KB:   67.3872 s, 778 kB/s
    	128KB:  67.5434 s, 776 kB/s
    	256KB:  65.9019 s, 796 kB/s
    	512KB:  66.2282 s, 792 kB/s
    	1024KB: 67.4632 s, 777 kB/s
    	2048KB: 69.9759 s, 749 kB/s
    
    An unnamed SD card (Yakui):
    
             4k     195.873 s,  5.5 MB/s
             8k     123.425 s,  8.7 MB/s
             16k    86.6425 s, 12.4 MB/s
             32k    66.7519 s, 16.1 MB/s
    ==>      64k    58.5262 s, 18.3 MB/s
             128k   59.3847 s, 18.1 MB/s
             256k   59.3188 s, 18.1 MB/s
             512k   59.0218 s, 18.2 MB/s
    
    CC: Li Shaohua <shaohua.li@intel.com>
    CC: Clemens Ladisch <clemens@ladisch.de>
    Acked-by: Jens Axboe <jens.axboe@oracle.com>
    Acked-by: Rik van Riel <riel@redhat.com>
    Tested-by: Vivek Goyal <vgoyal@redhat.com>
    Tested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
    (cherry picked from commit 6fec0bac2e4c27ef987026de98a6b34f9fa78fc7)
  20. patch: add SLQB memory allocator by Nick Piggin

    faux123 authored and stevegaron committed Dec 10, 2011
    (cherry picked from commit 801c156e372dba3a44d98e3a4425bfaccd8f9b39)
  21. NOATIME and NODIRATIME as default

    franciscofranco authored and stevegaron committed Dec 18, 2011
    (cherry picked from commit c7120db6bb1988ce82ca87d3e3550f89095a38ce)
  22. Add last ACK mitigation to avoid that a socket stays in this state fo…

    franciscofranco authored and stevegaron committed Jan 16, 2012
    …r too long
    
    (cherry picked from commit e161782a0c932c35c5c489d7d7dc9b4bb30e771a)
  23. Erase memory pages as soon as they are freed to prevent new processes…

    franciscofranco authored and stevegaron committed Jan 16, 2012
    … getting old information
    
    (cherry picked from commit 251b63eb84485b0828a50b8d302b2624ca91f506)
  24. Change more conservative values

    franciscofranco authored and stevegaron committed Jan 22, 2012
    (cherry picked from commit c28fb0a7096bfe51deaae2c840cf0d4bfe621ba4)
  25. Change conservative values

    franciscofranco authored and stevegaron committed Jan 22, 2012
    (cherry picked from commit 1de05132089829df4a8bc07e0dfc692338b051b0)
  26. Bump to 1000 hz

    franciscofranco authored and stevegaron committed Jan 22, 2012
    (cherry picked from commit ee0a0df43d3b8684138c39a8d40e53911a115b26)
  27. Added USB-OTG to defconfig

    stevegaron committed Jan 25, 2012