{"push_id":771137016,"size":11,"distinct_size":11,"ref":"refs/heads/master","head":"d641dbac45755ac95f1bfc4af87c68eb4bca4652","before":"35bcbebac774def4b51213b8425df164f164ddcf","commits":[{"sha":"0d9fcdc6b3a120e3f587734616de17150709c4a4","author":{"email":"5ed5989b18c9efbb257082028faf14dfcdf6ff1e@gmx.co.uk","name":"Gavin"},"message":"Unification: Unify F/I/T/W8/K/L/S and Flat/Edge models\n\nFISKL / T / W8 Unification\n- Add Variant detection\n- Detects model from bootloader\n- Disables sound modules as apropriate\n- Adds aif_format checking to fix in call audio for all variants\n- Adapted from ktoonsez original variant detection patch\n\n920 & 925 Unification 1: Add Universal device tree\n- Add missing files\n- Based on zeroflte usa_05 primary dts\n- Based on zeroflte usa_05 battery dtsi\n- Based on zeroflte usa_05 gpio dtsi\n\n920 & 925 Unification 2: Merge in Device Tree data\n- Merge in Edge specific device tree data\n\n920 & 925 Unification 3: Merge Dual SIM support\n- Add Dual Sim Support to device tree\n\n920 & 925 Unification 4: Match cypress touchkey led regulator name\n- Since the STM touchkey on Edge models uses a different regulator name\n  on the same pins, match the cypress touchkey LED regulator for Non-Edge\n  models\n\n920 & 925 Unification 5: Add variant detection for battery and charger\n- Read all battery differences between Flat and Edge from device tree\n\n920 & 925 Unification 6: Variant Detection for dual DECON panel support\n- Originally written by ktoonsez\n- Adapted by glewarne to new sources\n\n920 & 925 Unification 7: Variant detection on DECON dts GPIO probe\n- Decon does an extra GPIO probe on FLAT models, variant detect it\n\n920 & 925 Unification 8: Automatic 4mhz charging for Edge devices\n- Remove 4mhz charging from Kconfig and use variant detection to automate it\n  on edge devices\n\n920 & 925 Unification 9: Variant Detection on Sim_Slot\n- Not strictly necessary, but there have been issues during testing where edge\n  hardware spuriously reports the availability of a second sim slot which then\n  causes a kernel panic. Only occures due to Dual Sim support added for S6 Flat\n  models\n\n920 & 925 Unification 10: Variant detection on Cyrpress touchkey driver\n- Prevents \"flashing\" of the touchkey lights on EDGE models during boot as the\n  EDGE does not have a cypress touchkey module.\n\n902 & 925 Unification 11: Variant Detection on Touchscreen device tree parse\n- Only load the relevant device tree entries for flat / edge\n\n920 & 925 Unification 12: Variant Detection on Thermister\n- Load correct thermiser adc table from device tree if an edge device\n\n920 & 925 Unification 13:  Fix Edge screen Firmware version display\n- Sneaky samsung define the STM Project names in two different places in the device tree\n\n920 & 925 Unification 14: Variant detection for ssp mag array calibration\n- Also on mag-position and glass-type\n\n920 & 925 Unification 15: Variant detection on Sound codec differences","distinct":true,"url":"https://api.github.com/repos/glewarne/testing/commits/0d9fcdc6b3a120e3f587734616de17150709c4a4"},{"sha":"58d739462e065638d7f535f7e54d118487445b8d","author":{"email":"4b76f4633775802b14d62988517a544ce3d4b758@gmail.com","name":"Andrei F"},"message":"Revert \"staging: binder: Change binder mutex to rtmutex.\"\n\nThis reverts commit 5d03bd0fdd66d3472386864cf32b4b82dda8d1a5.","distinct":true,"url":"https://api.github.com/repos/glewarne/testing/commits/58d739462e065638d7f535f7e54d118487445b8d"},{"sha":"3a3cde2b36817fa8cf275d8126d2948ada68c137","author":{"email":"5ed5989b18c9efbb257082028faf14dfcdf6ff1e@gmx.co.uk","name":"g.lewarne@gmx.co.uk"},"message":"Block: Add BFQ and FIOPS Schedulers, Optimize Deadline\n\n- Squashed from multiple commits\n=======================================================================\nblock: introduce the BFQ-v7r6 I/O sched for 3.10.8+\n\nAdd the BFQ-v7r6 I/O scheduler to 3.10.8+.\nThe general structure is borrowed from CFQ, as much of the code for\nhandling I/O contexts Over time, several useful features have been\nported from CFQ as well (details in the changelog in README.BFQ). A\n(bfq_)queue is associated to each task doing I/O on a device, and each\ntime a scheduling decision has to be made a queue is selected and served\nuntil it expires.\n\n    - Slices are given in the service domain: tasks are assigned\n      budgets, measured in number of sectors. Once got the disk, a task\n      must however consume its assigned budget within a configurable\n      maximum time (by default, the maximum possible value of the\n      budgets is automatically computed to comply with this timeout).\n      This allows the desired latency vs \"throughput boosting\" tradeoff\n      to be set.\n\n    - Budgets are scheduled according to a variant of WF2Q+, implemented\n      using an augmented rb-tree to take eligibility into account while\n      preserving an O(log N) overall complexity.\n\n    - A low-latency tunable is provided; if enabled, both interactive\n      and soft real-time applications are guaranteed a very low latency.\n\n    - Latency guarantees are preserved also in the presence of NCQ.\n\n    - Also with flash-based devices, a high throughput is achieved\n      while still preserving latency guarantees.\n\n    - BFQ features Early Queue Merge (EQM), a sort of fusion of the\n      cooperating-queue-merging and the preemption mechanisms present\n      in CFQ. EQM is in fact a unified mechanism that tries to get a\n      sequential read pattern, and hence a high throughput, with any\n      set of processes performing interleaved I/O over a contiguous\n      sequence of sectors.\n\n    - BFQ supports full hierarchical scheduling, exporting a cgroups\n      interface.  Since each node has a full scheduler, each group can\n      be assigned its own weight.\n\n    - If the cgroups interface is not used, only I/O priorities can be\n      assigned to processes, with ioprio values mapped to weights\n      with the relation weight = IOPRIO_BE_NR - ioprio.\n\n    - ioprio classes are served in strict priority order, i.e., lower\n      priority queues are not served as long as there are higher\n      priority queues.  Among queues in the same class the bandwidth is\n      distributed in proportion to the weight of each queue. A very\n      thin extra bandwidth is however guaranteed to the Idle class, to\n      prevent it from starving.\n\nSigned-off-by: Paolo Valente <paolo.valente@unimore.it>\nSigned-off-by: Arianna Avanzini <avanzini.arianna@gmail.com>\n\nblock, bfq: add Early Queue Merge (EQM) to BFQ-v7r6 for 3.10.8+\n\nA set of processes may happen  to  perform interleaved reads, i.e.,requests\nwhose union would give rise to a  sequential read  pattern.  There are two\ntypical  cases: in the first  case,   processes  read  fixed-size chunks of\ndata at a fixed distance from each other, while in the second case processes\nmay read variable-size chunks at  variable distances. The latter case occurs\nfor  example with  QEMU, which splits the  I/O generated  by the  guest into\nmultiple chunks,  and lets these chunks  be served by a  pool of cooperating\nprocesses,  iteratively  assigning  the  next  chunk of  I/O  to  the first\navailable  process. CFQ  uses actual  queue merging  for the  first type of\nrocesses, whereas it  uses preemption to get a sequential  read pattern out\nof the read requests  performed by the second type of  processes. In the end\nit uses  two different  mechanisms to  achieve the  same goal: boosting the\nthroughput with interleaved I/O.\n\nThis patch introduces  Early Queue Merge (EQM), a unified mechanism to get a\nsequential  read pattern  with both  types of  processes. The  main idea is\nchecking newly arrived requests against the next request of the active queue\nboth in case of actual request insert and in case of request merge. By doing\nso, both the types of processes can be handled by just merging their queues.\nEQM is  then simpler and  more compact than the  pair of mechanisms used in\nCFQ.\n\nFinally, EQM  also preserves the  typical low-latency properties of BFQ, by\nproperly restoring the weight-raising state of  a queue when it gets back to\na non-merged state.\n\nSigned-off-by: Mauro Andreolini <mauro.andreolini@unimore.it>\nSigned-off-by: Arianna Avanzini <avanzini.arianna@gmail.com>\nSigned-off-by: Paolo Valente <paolo.valente@unimore.it>\n\nBlock: Add FIOPS scheduler\n\nFIOPS (Fair IOPS) ioscheduler is IOPS based ioscheduler, so only targets\nfor drive without I/O seek. It's quite similar like CFQ, but the dispatch\ndecision is made according to IOPS instead of slice.\n\nThe algorithm is simple. Drive has a service tree, and each task lives in\nthe tree. The key into the tree is called vios (virtual I/O). Every request\nhas vios, which is calculated according to its ioprio, request size and so\non. Task's vios is the sum of vios of all requests it dispatches. FIOPS\nalways selects task with minimum vios in the service tree and let the task\ndispatch request. The dispatched request's vios is then added to the task's\nvios and the task is repositioned in the sevice tree.\n\nUnlike CFQ, FIOPS doesn't have separate sync/async queues, because with I/O\nless writeback, usually a task can only dispatch either sync or async requests.\nBias read or write request can still be done with read/write scale.\n\nOne issue is if workload iodepth is lower than drive queue_depth, IOPS\nshare of a task might not be strictly according to its priority, request\nBias read or write request can still be done with read/write scale.\n\nOne issue is if workload iodepth is lower than drive queue_depth, IOPS\nshare of a task might not be strictly according to its priority, request\nsize and so on. In this case, the drive is in idle actually. Solving the\nproblem need make drive idle, so impact performance. I believe CFQ isn't\ncompletely fair between tasks in such case too.\n\nblock: fiops read/write request scale\n\nread/write speed of Flash based storage usually is different. For example,\nin my SSD maxium thoughput of read is about 3 times faster than that of\nwrite. Add a scale to differenate read and write. Also add a tunable, so\nuser can assign different scale for read and write.\n\nBy default, the scale is 1:1, which means the scale is a noop.\n\nSigned-off-by: Shaohua Li <shaohua.li@intel.com>\n\nblock: fiops sync/async scale\n\nCFQ gives 2.5 times more share to sync workload. This matches CFQ.\n\nNote this is different with the read/write scale. We have 3 types of\nrequests:\n1. read\n2. sync write\n3. write\nCFQ doesn't differentitate type 1 and 2, but request cost of 1 and 2\nare usually different for flash based storage. So we have both sync/async\nand read/write scale here.\n\nSigned-off-by: Shaohua Li <shaohua.li@intel.com>\n\nblock: fiops add ioprio support\n\nAdd CFQ-like ioprio support. Priority A will get 20% more share than priority\nA+1, which matches CFQ.\n\nSigned-off-by: Shaohua Li <shaohua.li@intel.com>\n\nblock: fiops preserve vios key for deep queue depth workload\n\nIf the task has running request, even it's added into service tree newly,\nwe preserve its vios key, so it will not lost its share. This should work\nfor task driving big queue depth. For single depth task, there is no approach\nto preserve its vios key.\n\nSigned-off-by: Shaohua Li <shaohua.li@intel.com>\n\nblock: fiops bias sync workload\n\nIf there are async requests running, delay async workload. Otherwise\nasync workload (usually very deep iodepth) will use all queue iodepth\nand later sync requests will get long delayed. The idea is from CFQ.\n\nSigned-off-by: Shaohua Li <shaohua.li@intel.com>\n\nFIOPS: forward port for use on 3.10 Linux\n\nSigned-off-by: Paul Reioux <reioux@gmail.com>\n\nBlock: deadline: Optimize for non-rotational\n\nSigned-off-by: engstk <eng.stk@sapo.pt>","distinct":true,"url":"https://api.github.com/repos/glewarne/testing/commits/3a3cde2b36817fa8cf275d8126d2948ada68c137"},{"sha":"72fef60974b8415114f5e7f69a6429626ede2470","author":{"email":"3807cf899f217da549814bf6c330d3b6e6819ccf@gmail.com","name":"Akinobu Mita"},"message":"block_dev: implement readpages() to optimize sequential read\n\nSequential read from a block device is expected to be equal or faster than\nfrom the file on a filesystem.  But it is not correct due to the lack of\neffective readpages() in the address space operations for block device.\n\nThis implements readpages() operation for block device by using\nmpage_readpages() which can create multipage BIOs instead of BIOs for each\npage and reduce system CPU time consumption.\n\nInstall 1GB of RAM disk storage:\n\n\t# modprobe scsi_debug dev_size_mb=1024 delay=0\n\nSequential read from file on a filesystem:\n\n\t# mkfs.ext4 /dev/$DEV\n\t# mount /dev/$DEV /mnt\n\t# fio --name=t --size=512m --rw=read --filename=/mnt/file\n\t...\n\t  read : io=524288KB, bw=2133.4MB/s, iops=546133, runt=   240msec\n\nSequential read from a block device:\n\t# fio --name=t --size=512m --rw=read --filename=/dev/$DEV\n\t...\n(Without this commit)\n\t  read : io=524288KB, bw=1700.2MB/s, iops=435455, runt=   301msec\n\n(With this commit)\n\t  read : io=524288KB, bw=2160.4MB/s, iops=553046, runt=   237msec\n\nSigned-off-by: Akinobu Mita <akinobu.mita@gmail.com>\nCc: Jens Axboe <axboe@kernel.dk>\nCc: Alexander Viro <viro@zeniv.linux.org.uk>\nCc: Jeff Moyer <jmoyer@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":true,"url":"https://api.github.com/repos/glewarne/testing/commits/72fef60974b8415114f5e7f69a6429626ede2470"},{"sha":"4acea5a86475e3a1171167aaddbdc8cbc1f783f6","author":{"email":"24f7fe9d205c8a9f6ade0c2894e14303ca16087f@intel.com","name":"Fengguang Wu"},"message":"readahead: make context readahead more conservative\n\nThis helps performance on moderately dense random reads on SSD.\n\nTransaction-Per-Second numbers provided by Taobao:\n\n\t\tQPS\tcase\n\t\t-------------------------------------------------------\n\t\t7536\tdisable context readahead totally\nw/ patch:\t7129\tslower size rampup and start RA on the 3rd read\n\t\t6717\tslower size rampup\nw/o patch:\t5581\tunmodified context readahead\n\nBefore, readahead will be started whenever reading page N+1 when it happen\nto read N recently.  After patch, we'll only start readahead when *three*\nrandom reads happen to access pages N, N+1, N+2.  The probability of this\nhappening is extremely low for pure random reads, unless they are very\ndense, which actually deserves some readahead.\n\nAlso start with a smaller readahead window.  The impact to interleaved\nsequential reads should be small, because for a long run stream, the the\nsmall readahead window rampup phase is negletable.\n\nThe context readahead actually benefits clustered random reads on HDD\nwhose seek cost is pretty high.  However as SSD is increasingly used for\nrandom read workloads it's better for the context readahead to concentrate\non interleaved sequential reads.\n\nAnother SSD rand read test from Miao\n\n        # file size:        2GB\n        # read IO amount: 625MB\n        sysbench --test=fileio          \\\n                --max-requests=10000    \\\n                --num-threads=1         \\\n                --file-num=1            \\\n                --file-block-size=64K   \\\n                --file-test-mode=rndrd  \\\n                --file-fsync-freq=0     \\\n                --file-fsync-end=off    run\n\nshows the performance of btrfs grows up from 69MB/s to 121MB/s, ext4 from\n104MB/s to 121MB/s.\n\nSigned-off-by: Wu Fengguang <fengguang.wu@intel.com>\nTested-by: Tao Ma <tm@tao.ma>\nTested-by: Miao Xie <miaox@cn.fujitsu.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/glewarne/testing/commits/4acea5a86475e3a1171167aaddbdc8cbc1f783f6"},{"sha":"ef7101873ce225bc71e44a86a00bf15a2591c69b","author":{"email":"5ed5989b18c9efbb257082028faf14dfcdf6ff1e@gmx.co.uk","name":"g.lewarne@gmx.co.uk"},"message":"fs: always mount partitions as noatime and nodiratime","distinct":true,"url":"https://api.github.com/repos/glewarne/testing/commits/ef7101873ce225bc71e44a86a00bf15a2591c69b"},{"sha":"9bdc7adf1541597c5d8a76a7309a213e906e4a23","author":{"email":"4d9e23a041ac966f5316a7481300d4ae12e806fe@redhat.com","name":"Dave Chinner"},"message":"sync: don't block the flusher thread waiting on IO\n\nWhen sync does it's WB_SYNC_ALL writeback, it issues data Io and\nthen immediately waits for IO completion. This is done in the\ncontext of the flusher thread, and hence completely ties up the\nflusher thread for the backing device until all the dirty inodes\nhave been synced. On filesystems that are dirtying inodes constantly\nand quickly, this means the flusher thread can be tied up for\nminutes per sync call and hence badly affect system level write IO\nperformance as the page cache cannot be cleaned quickly.\n\nWe already have a wait loop for IO completion for sync(2), so cut\nthis out of the flusher thread and delegate it to wait_sb_inodes().\nHence we can do rapid IO submission, and then wait for it all to\ncomplete.\n\nEffect of sync on fsmark before the patch:\n\nFSUse%        Count         Size    Files/sec     App Overhead\n.....\n     0       640000         4096      35154.6          1026984\n     0       720000         4096      36740.3          1023844\n     0       800000         4096      36184.6           916599\n     0       880000         4096       1282.7          1054367\n     0       960000         4096       3951.3           918773\n     0      1040000         4096      40646.2           996448\n     0      1120000         4096      43610.1           895647\n     0      1200000         4096      40333.1           921048\n\nAnd a single sync pass took:\n\n  real    0m52.407s\n  user    0m0.000s\n  sys     0m0.090s\n\nAfter the patch, there is no impact on fsmark results, and each\nindividual sync(2) operation run concurrently with the same fsmark\nworkload takes roughly 7s:\n\n  real    0m6.930s\n  user    0m0.000s\n  sys     0m0.039s\n\nIOWs, sync is 7-8x faster on a busy filesystem and does not have an\nadverse impact on ongoing async data write operations.\n\nSigned-off-by: Dave Chinner <dchinner@redhat.com>\nReviewed-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":true,"url":"https://api.github.com/repos/glewarne/testing/commits/9bdc7adf1541597c5d8a76a7309a213e906e4a23"},{"sha":"554682161e6443ead7e6c36578aa3b55ef8b4ec6","author":{"email":"5ed5989b18c9efbb257082028faf14dfcdf6ff1e@gmx.co.uk","name":"Gavin"},"message":"Usb: Gadget: Add DriveDroid support\n\nAdapted for S6 sources, original commit here\nhttps://github.com/CyanogenMod/android_kernel_lge_hammerhead/commit/46bd47757a9f34c1d95dd2620414893212fb0526","distinct":true,"url":"https://api.github.com/repos/glewarne/testing/commits/554682161e6443ead7e6c36578aa3b55ef8b4ec6"},{"sha":"04ff623a6f609d17f8f6baf497fd6d3ac58e0c3d","author":{"email":"5ed5989b18c9efbb257082028faf14dfcdf6ff1e@gmx.co.uk","name":"Gavin"},"message":"Compressor: Add lz4 modules, Speedup lz0\nThis is a squash of multiple compressor related commits\n=======================================================\n\nlib: Add lz4 compression libraries\n\nlib: add weak clz/ctz functions\n\nSome architectures need __c[lt]z[sd]i2() for __builtin_c[lt]z[ll] and\nthat causes a build failure.  They can be implemented using the\nfls()/__ffs() and overridden by linking arch-specific versions may not\nbe implemented yet.\n\nThis is required by \"lib: add lz4 compressor module\".\n\nReference: https://lkml.org/lkml/2013/4/18/603\n\nSigned-off-by: Chanho Min <chanho.min@lge.com>\nReported-by: Geert Uytterhoeven <geert@linux-m68k.org>\nCc: \"Darrick J. Wong\" <djwong@us.ibm.com>\nCc: Bob Pearson <rpearson@systemfabricworks.com>\nCc: Richard Weinberger <richard@nod.at>\nCc: Herbert Xu <herbert@gondor.hengli.com.au>\nCc: Yann Collet <yann.collet.73@gmail.com>\nCc: Kyungsik Lee <kyungsik.lee@lge.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\ndecompressor: add LZ4 decompressor module\n\nAdd support for LZ4 decompression in the Linux Kernel.  LZ4 Decompression\nAPIs for kernel are based on LZ4 implementation by Yann Collet.\n\nBenchmark Results(PATCH v3)\nCompiler: Linaro ARM gcc 4.6.2\n\n1. ARMv7, 1.5GHz based board\n   Kernel: linux 3.4\n   Uncompressed Kernel Size: 14MB\n        Compressed Size  Decompression Speed\n   LZO  6.7MB            20.1MB/s, 25.2MB/s(UA)\n   LZ4  7.3MB            29.1MB/s, 45.6MB/s(UA)\n\n2. ARMv7, 1.7GHz based board\n   Kernel: linux 3.7\n   Uncompressed Kernel Size: 14MB\n        Compressed Size  Decompression Speed\n   LZO  6.0MB            34.1MB/s, 52.2MB/s(UA)\n   LZ4  6.5MB            86.7MB/s\n- UA: Unaligned memory Access support\n- Latest patch set for LZO applied\n\nThis patch set is for adding support for LZ4-compressed Kernel.  LZ4 is a\nvery fast lossless compression algorithm and it also features an extremely\nfast decoder [1].\n\nBut we have five of decompressors already and one question which does\narise, however, is that of where do we stop adding new ones?  This issue\nhad been discussed and came to the conclusion [2].\n\nRussell King said that we should have:\n\n - one decompressor which is the fastest\n - one decompressor for the highest compression ratio\n - one popular decompressor (eg conventional gzip)\n\nIf we have a replacement one for one of these, then it should do exactly\nthat: replace it.\n\nThe benchmark shows that an 8% increase in image size vs a 66% increase\nin decompression speed compared to LZO(which has been known as the\nfastest decompressor in the Kernel).  Therefore the \"fast but may not be\nsmall\" compression title has clearly been taken by LZ4 [3].\n\n[1] http://code.google.com/p/lz4/\n[2] http://thread.gmane.org/gmane.linux.kbuild.devel/9157\n[3] http://thread.gmane.org/gmane.linux.kbuild.devel/9347\n\nLZ4 homepage: http://fastcompression.blogspot.com/p/lz4.html\nLZ4 source repository: http://code.google.com/p/lz4/\n\nSigned-off-by: Kyungsik Lee <kyungsik.lee@lge.com>\nSigned-off-by: Yann Collet <yann.collet.73@gmail.com>\nCc: \"H. Peter Anvin\" <hpa@zytor.com>\nCc: Ingo Molnar <mingo@elte.hu>\nCc: Thomas Gleixner <tglx@linutronix.de>\nCc: Russell King <rmk@arm.linux.org.uk>\nCc: Borislav Petkov <bp@alien8.de>\nCc: Florian Fainelli <florian@openwrt.org>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\nlib: add support for LZ4-compressed kernel\n\nAdd support for extracting LZ4-compressed kernel images, as well as\nLZ4-compressed ramdisk images in the kernel boot process.\n\nSigned-off-by: Kyungsik Lee <kyungsik.lee@lge.com>\nCc: \"H. Peter Anvin\" <hpa@zytor.com>\nCc: Ingo Molnar <mingo@elte.hu>\nCc: Thomas Gleixner <tglx@linutronix.de>\nCc: Russell King <rmk@arm.linux.org.uk>\nCc: Borislav Petkov <bp@alien8.de>\nCc: Florian Fainelli <florian@openwrt.org>\nCc: Yann Collet <yann.collet.73@gmail.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\narm: add support for LZ4-compressed kernel\n\nIntegrates the LZ4 decompression code to the arm pre-boot code.\n\nSigned-off-by: Kyungsik Lee <kyungsik.lee@lge.com>\nCc: \"H. Peter Anvin\" <hpa@zytor.com>\nCc: Ingo Molnar <mingo@elte.hu>\nCc: Thomas Gleixner <tglx@linutronix.de>\nCc: Russell King <rmk@arm.linux.org.uk>\nCc: Borislav Petkov <bp@alien8.de>\nCc: Florian Fainelli <florian@openwrt.org>\nCc: Yann Collet <yann.collet.73@gmail.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\nlib: add lz4 compressor module\n\nThis patchset is for supporting LZ4 compression and the crypto API using\nit.\n\nAs shown below, the size of data is a little bit bigger but compressing\nspeed is faster under the enabled unaligned memory access.  We can use\nlz4 de/compression through crypto API as well.  Also, It will be useful\nfor another potential user of lz4 compression.\n\nlz4 Compression Benchmark:\nCompiler: ARM gcc 4.6.4\nARMv7, 1 GHz based board\n   Kernel: linux 3.4\n   Uncompressed data Size: 101 MB\n         Compressed Size  compression Speed\n   LZO   72.1MB\t\t  32.1MB/s, 33.0MB/s(UA)\n   LZ4   75.1MB\t\t  30.4MB/s, 35.9MB/s(UA)\n   LZ4HC 59.8MB\t\t   2.4MB/s,  2.5MB/s(UA)\n- UA: Unaligned memory Access support\n- Latest patch set for LZO applied\n\nThis patch:\n\nAdd support for LZ4 compression in the Linux Kernel.  LZ4 Compression APIs\nfor kernel are based on LZ4 implementation by Yann Collet and were changed\nfor kernel coding style.\n\nLZ4 homepage : http://fastcompression.blogspot.com/p/lz4.html\nLZ4 source repository : http://code.google.com/p/lz4/\nsvn revision : r90\n\nTwo APIs are added:\n\nlz4_compress() support basic lz4 compression whereas lz4hc_compress()\nsupport high compression or CPU performance get lower but compression\nratio get higher.  Also, we require the pre-allocated working memory with\nthe defined size and destination buffer must be allocated with the size of\nlz4_compressbound.\n\n[akpm@linux-foundation.org: make lz4_compresshcctx() static]\nSigned-off-by: Chanho Min <chanho.min@lge.com>\nCc: \"Darrick J. Wong\" <djwong@us.ibm.com>\nCc: Bob Pearson <rpearson@systemfabricworks.com>\nCc: Richard Weinberger <richard@nod.at>\nCc: Herbert Xu <herbert@gondor.hengli.com.au>\nCc: Yann Collet <yann.collet.73@gmail.com>\nCc: Kyungsik Lee <kyungsik.lee@lge.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\ncrypto: add lz4 Cryptographic API\n\nAdd support for lz4 and lz4hc compression algorithm using the lib/lz4/*\ncodebase.\n\n[akpm@linux-foundation.org: fix warnings]\nSigned-off-by: Chanho Min <chanho.min@lge.com>\nCc: \"Darrick J. Wong\" <djwong@us.ibm.com>\nCc: Bob Pearson <rpearson@systemfabricworks.com>\nCc: Richard Weinberger <richard@nod.at>\nCc: Herbert Xu <herbert@gondor.hengli.com.au>\nCc: Yann Collet <yann.collet.73@gmail.com>\nCc: Kyungsik Lee <kyungsik.lee@lge.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\nlib/lz4: correct the LZ4 license\n\nThe LZ4 code is listed as using the \"BSD 2-Clause License\".\n\nSigned-off-by: Richard Laager <rlaager@wiktel.com>\nAcked-by: Kyungsik Lee <kyungsik.lee@lge.com>\nCc: Chanho Min <chanho.min@lge.com>\nCc: Richard Yao <ryao@gentoo.org>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\n[ The 2-clause BSD can be just converted into GPL, but that's rude and\n  pointless, so don't do it   - Linus ]\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\nlz4: fix compression/decompression signedness mismatch\n\nLZ4 compression and decompression functions require different in\nsignedness input/output parameters: unsigned char for compression and\nsigned char for decompression.\n\nChange decompression API to require \"(const) unsigned char *\".\n\nSigned-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>\nCc: Kyungsik Lee <kyungsik.lee@lge.com>\nCc: Geert Uytterhoeven <geert@linux-m68k.org>\nCc: Yann Collet <yann.collet.73@gmail.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\nlib/decompress_unlz4.c: always set an error return code on failures\n\n\"ret\", being set to -1 early on, gets cleared by the first invocation of\nlz4_decompress()/lz4_decompress_unknownoutputsize(), and hence subsequent\nfailures wouldn't be noticed by the caller without setting it back to -1\nright after those calls.\n\nReported-by: Matthew Daley <mattjd@gmail.com>\nSigned-off-by: Jan Beulich <jbeulich@suse.com>\nCc: Kyungsik Lee <kyungsik.lee@lge.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n\nlz4: ensure length does not wrap\n\nGiven some pathologically compressed data, lz4 could possibly decide to\nwrap a few internal variables, causing unknown things to happen.  Catch\nthis before the wrapping happens and abort the decompression.\n\nReported-by: \"Don A. Bailey\" <donb@securitymouse.com>\nCc: stable <stable@vger.kernel.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\nlz4: fix another possible overrun\n\nThere is one other possible overrun in the lz4 code as implemented by\nLinux at this point in time (which differs from the upstream lz4\ncodebase, but will get synced at in a future kernel release.)  As\npointed out by Don, we also need to check the overflow in the data\nitself.\n\nWhile we are at it, replace the odd error return value with just a\n\"simple\" -1 value as the return value is never used for anything other\nthan a basic \"did this work or not\" check.\n\nReported-by: \"Don A. Bailey\" <donb@securitymouse.com>\nReported-by: Willy Tarreau <w@1wt.eu>\nCc: stable <stable@vger.kernel.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n\ncrypto: lz4,lz4hc - fix decompression\n\nThe lz4 library has two functions for decompression, with slightly\ndifferent signatures and behaviour. The lz4_decompress_crypto() function\nseemed to be using the one that assumes that the decompressed length is\nknown in advance.\n\nThis patch switches to the other decompression function and makes sure\nthat the length of the decompressed output is properly returned to the\ncaller.\n\nThe same issue was present in the lz4hc algorithm.\n\nCoincidentally, this change also makes very basic lz4 and lz4hc\ncompression tests in testmgr pass.\n\nSigned-off-by: KOVACS Krisztian <hidden@sch.bme.hu>\nSigned-off-by: Herbert Xu <herbert@gondor.apana.org.au>\n\ncrypto: testmgr - add test for lz4 and lz4hc\n\nThis patch adds a simple test vector for the lz4 and lz4hc compression\nalgorithms.\n\nSigned-off-by: KOVACS Krisztian <hidden@sch.bme.hu>\nSigned-off-by: Herbert Xu <herbert@gondor.apana.org.au>\n\nlib/lzo: huge LZO decompression speedup on ARM by using unaligned access\n\nSigned-off-by: Markus F.X.J. Oberhumer <markus@oberhumer.com>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/glewarne/testing/commits/04ff623a6f609d17f8f6baf497fd6d3ac58e0c3d"},{"sha":"1dd3c82ad5ab13982271d3b149b70d0789daf741","author":{"email":"9edab3d8932dbb8f20eb55cd8199c20e7fb56c12@oracle.com","name":"Jeff Liu"},"message":"binfmt_elf.c: use get_random_int() to fix entropy depleting\n\nChanges:\n--------\nv4->v3:\n- s/random_stack_user()/get_atrandom_bytes()/\n- Move this function to ahead of its use to avoid the predeclaration.\n\nv3->v2:\n- Tweak code comments of random_stack_user().\n- Remove redundant bits mask and shift upon the random variable.\n\nv2->v1:\n- Fix random copy to check up buffer length that are not 4-byte multiples.\n\nv3 can be found at:\nhttp://www.spinics.net/lists/linux-fsdevel/msg59597.html\nv2 can be found at:\nhttp://www.spinics.net/lists/linux-fsdevel/msg59418.html\nv1 can be found at:\nhttp://www.spinics.net/lists/linux-fsdevel/msg59128.html\n\nThanks,\n-Jeff\n\nEntropy is quickly depleted under normal operations like ls(1), cat(1),\netc...  between 2.6.30 to current mainline, for instance:\n\n$ cat /proc/sys/kernel/random/entropy_avail\n3428\n$ cat /proc/sys/kernel/random/entropy_avail\n2911\n$cat /proc/sys/kernel/random/entropy_avail\n2620\n\nWe observed this problem has been occurring since 2.6.30 with\nfs/binfmt_elf.c: create_elf_tables()->get_random_bytes(), introduced by\nf06295b44c296c8f (\"ELF: implement AT_RANDOM for glibc PRNG seeding\").\n\n/*\n * Generate 16 random bytes for userspace PRNG seeding.\n */\nget_random_bytes(k_rand_bytes, sizeof(k_rand_bytes));\n\nThe patch introduces a wrapper around get_random_int() which has lower\noverhead than calling get_random_bytes() directly.\n\nWith this patch applied:\n$ cat /proc/sys/kernel/random/entropy_avail\n2731\n$ cat /proc/sys/kernel/random/entropy_avail\n2802\n$ cat /proc/sys/kernel/random/entropy_avail\n2878\n\nAnalyzed by John Sobecki.\n\nSigned-off-by: Jie Liu <jeff.liu@oracle.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Al Viro <viro@zeniv.linux.org.uk>\nCc: Andreas Dilger <aedilger@gmail.com>\nCc: Alan Cox <alan@linux.intel.com>\nCc: Arnd Bergmann <arnn@arndb.de>\nCc: John Sobecki <john.sobecki@oracle.com>\nCc: James Morris <james.l.morris@oracle.com>\nCc: Jakub Jelinek <jakub@redhat.com>\nCc: Ted Ts'o <tytso@mit.edu>\nCc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\nCc: Kees Cook <keescook@chromium.org>\nCc: Ulrich Drepper <drepper@redhat.com>","distinct":true,"url":"https://api.github.com/repos/glewarne/testing/commits/1dd3c82ad5ab13982271d3b149b70d0789daf741"},{"sha":"d641dbac45755ac95f1bfc4af87c68eb4bca4652","author":{"email":"5ed5989b18c9efbb257082028faf14dfcdf6ff1e@gmx.co.uk","name":"Gavin"},"message":"Defconfig: Add initial universal defconfig","distinct":true,"url":"https://api.github.com/repos/glewarne/testing/commits/d641dbac45755ac95f1bfc4af87c68eb4bca4652"}]}