{"push_id":803906460,"size":23,"distinct_size":23,"ref":"refs/heads/Elefrant5","head":"54458816059988efc28b24d49ec173a4c85e68c8","before":"da3b062e3aed29fd14de0c5831b29edbdf1adcf9","commits":[{"sha":"f88a32621a6745241a4d0040e2c1b3087f934796","author":{"email":"0c53c7310db0d5ac2309cb35536eca37e951530f@nd.edu","name":"D. Andrei Măceș"},"message":"Revert \"block: cgroups, kconfig, build bits for BFQ-v6-3.4\"\n\nThis reverts commit 4a9992258d614b0a9926ec68f77503cd69a04d14.","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/f88a32621a6745241a4d0040e2c1b3087f934796"},{"sha":"e434917be07f4d0587c4f3896e6785eceab54c29","author":{"email":"0c53c7310db0d5ac2309cb35536eca37e951530f@nd.edu","name":"D. Andrei Măceș"},"message":"Revert \"block: introduce the BFQ-v6 I/O sched for 3.4\"\n\nThis reverts commit aa114996603f2e3ae8b9c42a45bd981a4ca81183.\n\nConflicts:\n\tblock/bfq-iosched.c\n\nChange-Id: I6b276e85d28dd839f6d360e6dc72f54428993571","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/e434917be07f4d0587c4f3896e6785eceab54c29"},{"sha":"5930c0f95ee38fa2efd0b5a7762b734f77780570","author":{"email":"20b1b82ea87150022f6495522a9f5e355ea8b305@gmail.com","name":"Arianna Avanzini"},"message":"block: cgroups, kconfig, build bits for BFQ-v7r8-3.4\n\nUpdate Kconfig.iosched and do the related Makefile changes to include\nkernel configuration options for BFQ. Also add the bfqio controller\nto the cgroups subsystem.\n\nSigned-off-by: Paolo Valente <paolo.valente@unimore.it>\nSigned-off-by: Arianna Avanzini <avanzini.arianna@gmail.com>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/5930c0f95ee38fa2efd0b5a7762b734f77780570"},{"sha":"12563dcbcf375c2f86dd8d02a979b3f878f422b2","author":{"email":"77843028b8f8419c9977951e271784ccf7804be9@unimore.it","name":"Paolo Valente"},"message":"block: introduce the BFQ-v7r8 I/O sched for 3.4\n\nAdd the BFQ-v7r8 I/O scheduler to 3.4.\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>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/12563dcbcf375c2f86dd8d02a979b3f878f422b2"},{"sha":"188e0d035d2f81eca4b3edae28784a80cb29a6bd","author":{"email":"ddd3503978591997e768ebc37fca6c687c31d545@unimore.it","name":"Mauro Andreolini"},"message":"block, bfq: add Early Queue Merge (EQM) to BFQ-v7r8 for 3.4.0\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>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/188e0d035d2f81eca4b3edae28784a80cb29a6bd"},{"sha":"010904ff955215fa605f42a96178c2ae6509c545","author":{"email":"10f5d60ce5fa6fe3c789dd71c5d6567abd91f3fa@google.com","name":"Tahsin Erdogan"},"message":"block: Make CFQ default to IOPS mode on SSDs\n\nCFQ idling causes reduced IOPS throughput on non-rotational disks.\nSince disk head seeking is not applicable to SSDs, it doesn't really\nhelp performance by anticipating future near-by IO requests.\n\nBy turning off idling (and switching to IOPS mode), we allow other\nprocesses to dispatch IO requests down to the driver and so increase IO\nthroughput.\n\nFollowing FIO benchmark results were taken on a cloud SSD offering with\nidling on and off:\n\nIdling     iops    avg-lat(ms)    stddev            bw\n------------------------------------------------------\n    On     7054    90.107         38.697     28217KB/s\n   Off    29255    21.836         11.730    117022KB/s\n\nfio --name=temp --size=100G --time_based --ioengine=libaio \\\n    --randrepeat=0 --direct=1 --invalidate=1 --verify=0 \\\n    --verify_fatal=0 --rw=randread --blocksize=4k --group_reporting=1 \\\n    --filename=/dev/sdb --runtime=10 --iodepth=64 --numjobs=10\n\nAnd the following is from a local SSD run:\n\nIdling     iops    avg-lat(ms)    stddev            bw\n------------------------------------------------------\n    On    19320    33.043         14.068     77281KB/s\n   Off    21626    29.465         12.662     86507KB/s\n\nfio --name=temp --size=5G --time_based --ioengine=libaio \\\n    --randrepeat=0 --direct=1 --invalidate=1 --verify=0 \\\n    --verify_fatal=0 --rw=randread --blocksize=4k --group_reporting=1 \\\n    --filename=/fio_data --runtime=10 --iodepth=64 --numjobs=10\n\nChange-Id: I2311c1b349092d5d6afe5200037f6aeccf506e04\nReviewed-by: Nauman Rafique <nauman@google.com>\nSigned-off-by: Tahsin Erdogan <tahsin@google.com>\nSigned-off-by: Jens Axboe <axboe@fb.com>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/010904ff955215fa605f42a96178c2ae6509c545"},{"sha":"1ba9730e1a04785b6f5392ab50879c1d75a61f87","author":{"email":"cd8c6775e60d6f67a6984377324e5290df3d5358@fb.com","name":"Jens Axboe"},"message":"cfq-iosched: fix the setting of IOPS mode on SSDs\n\nA previous commit wanted to make CFQ default to IOPS mode on\nnon-rotational storage, however it did so when the queue was\ninitialized and the non-rotational flag is only set later on\nin the probe.\n\nAdd an elevator hook that gets called off the add_disk() path,\nat that point we know that feature probing has finished, and\nwe can reliably check for the various flags that drivers can\nset.\n\nChange-Id: Ieaf0beed1efc0ace7e61766e725647c6509e9852\nFixes: 41c0126b (\"block: Make CFQ default to IOPS mode on SSDs\")\nTested-by: Romain Francoise <romain@orebokech.com>\nSigned-off-by: Jens Axboe <axboe@fb.com>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/1ba9730e1a04785b6f5392ab50879c1d75a61f87"},{"sha":"80353fb721d9e3f12107e05926e97f14116ee59e","author":{"email":"d688953a19dcb476c5fb90e6abba87f77b09be65@gmail.com","name":"Pranav Vashi"},"message":"msm: use of swp{b} is deprecated for ARMv6+\n\nChange-Id: I6ac5b459dcdc0b4a8d88df12243dfeb9468bcc0d\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/80353fb721d9e3f12107e05926e97f14116ee59e"},{"sha":"7228b071d9e42d3ddc8b7cedf500bbcd663f32db","author":{"email":"0c53c7310db0d5ac2309cb35536eca37e951530f@nd.edu","name":"D. Andrei Măceș"},"message":"Add header for building with GCC5\n\nStolen from kernel 3.18 (remains pretty much the same till 4.2)\n\nChange-Id: I44953d48d44227e7fd358c8f30d6274f02337f75","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/7228b071d9e42d3ddc8b7cedf500bbcd663f32db"},{"sha":"77a04311a40d39d9a171692a60afdbf88ffc6ca0","author":{"email":"9152da451d71c2a1ceb0c7b0908d4018fc127ae6@converseincode.com","name":"Behan Webster"},"message":"UPSTREAM: ARM: 8158/1: LLVMLinux: use static inline in ARM ftrace.h\n\nWith compilers which follow the C99 standard (like modern versions of gcc and\nclang), \"extern inline\" does the wrong thing (emits code for an externally\nlinkable version of the inline function). In this case using static inline\nand removing the NULL version of return_address in return_address.c does\nthe right thing.\n\nSigned-off-by: Behan Webster <behanw@converseincode.com>\nReviewed-by: Mark Charlebois <charlebm@gmail.com>\nAcked-by: Steven Rostedt <rostedt@goodmis.org>\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\n(cherry picked from commit aeea3592a13bf12861943e44fc48f1f270941f8d)\n\nBUG=chrome-os-partner:41878\nTEST=With series, compile with archlinux arm's cross compiler\n(which is gcc5.1 based now)\n\nChange-Id: I8d0529c689e6adeb302e7c5b2144e57c1aac26b0\nSigned-off-by: Alexandru M Stan <amstan@chromium.org>\nReviewed-on: https://chromium-review.googlesource.com/281788\nReviewed-by: Olof Johansson <olofj@chromium.org>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/77a04311a40d39d9a171692a60afdbf88ffc6ca0"},{"sha":"650855ee962b319f0fd9f5ce8902853066b4681a","author":{"email":"0c53c7310db0d5ac2309cb35536eca37e951530f@nd.edu","name":"D. Andrei Măceș"},"message":"Revert \"Makefile: re-enable wrapper\"\n\nThis reverts commit 5a729654cbe57126b23e5b58ace6a139405c4c00.","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/650855ee962b319f0fd9f5ce8902853066b4681a"},{"sha":"1fd3ba43aede551f15c48ef8558af64538e4651c","author":{"email":"4bada73e411a9c678a318a79d04d7df4a5fc4429@gmail.com","name":"Chet Kener"},"message":"gpu:msm: Fix 5.0 compile\n\n* These need to be static to avoid these errors:\n\ndrivers/built-in.o: In function `.LANCHOR1':\nmsm_iommu_sec.c:(.data+0x9298): undefined reference to `kgsl_iommu_sync_lock'\nmsm_iommu_sec.c:(.data+0x929c): undefined reference to `kgsl_iommu_sync_unlock'\nMakefile:877: recipe for target '.tmp_vmlinux1' failed\nmake: *** [.tmp_vmlinux1] Error 1\n\nSigned-off-by: Chet Kener <Cl3Kener@gmail.com>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/1fd3ba43aede551f15c48ef8558af64538e4651c"},{"sha":"31b0414a9ecb9dedceb3656f3101d94b43f2bc8f","author":{"email":"181323dd666a182bc2d953e52d0ac3ab54cd8391@pengutronix.de","name":"Uwe Kleine-König"},"message":"ARM: 8160/1: drop warning about return_address not using unwind tables\n\nThe warning was introduced in 2009 (commit 4bf1fa5a34aa ([ARM] 5613/1:\nimplement CALLER_ADDRESSx)). The only \"problem\" here is that\nCALLER_ADDRESSx for x > 1 returns NULL which doesn't do much harm.\n\nThe drawback of implementing a fix (i.e. use unwind tables to implement CALLER_ADDRESSx) is that much of the unwinder code would need to be marked as not\ntraceable.\n\nSigned-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\nSigned-off-by: Chet Kener <Cl3Kener@gmail.com>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/31b0414a9ecb9dedceb3656f3101d94b43f2bc8f"},{"sha":"fc5232a982dfb2d2350f1b499eae3370972a624d","author":{"email":"4bada73e411a9c678a318a79d04d7df4a5fc4429@gmail.com","name":"Chet Kener"},"message":"gpu:msm: Fix ringbuffer 5.0 compile\n\nSigned-off-by: Chet Kener <Cl3Kener@gmail.com>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/fc5232a982dfb2d2350f1b499eae3370972a624d"},{"sha":"660d0f062a3c7c247d6a8d51a8d5f54d03af3322","author":{"email":"4bada73e411a9c678a318a79d04d7df4a5fc4429@gmail.com","name":"Chet Kener"},"message":"mach-msm: Fix qdsp6v2 compile with 5.0\n\nSigned-off-by: Chet Kener <Cl3Kener@gmail.com>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/660d0f062a3c7c247d6a8d51a8d5f54d03af3322"},{"sha":"d9973f2155754f5e3a31d92027178096381c3233","author":{"email":"4bada73e411a9c678a318a79d04d7df4a5fc4429@gmail.com","name":"Chet Kener"},"message":"mm: Fix rmap compile for GCC 5.0\n\nSigned-off-by: Chet Kener <Cl3Kener@gmail.com>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/d9973f2155754f5e3a31d92027178096381c3233"},{"sha":"6c6d6f2bb421e338fc324c19b64048fca59bb75a","author":{"email":"4bada73e411a9c678a318a79d04d7df4a5fc4429@gmail.com","name":"Chet Kener"},"message":"F2FS: Fix GCC 5.0 compile\n\nSigned-off-by: Chet Kener <Cl3Kener@gmail.com>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/6c6d6f2bb421e338fc324c19b64048fca59bb75a"},{"sha":"5c6a03f1db8cf5c9ad0fdc35f92aae1bc8973de3","author":{"email":"4bada73e411a9c678a318a79d04d7df4a5fc4429@gmail.com","name":"Chet Kener"},"message":"Makefile: Disable wbool-compare\n\nSigned-off-by: Chet Kener <Cl3Kener@gmail.com>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/5c6a03f1db8cf5c9ad0fdc35f92aae1bc8973de3"},{"sha":"0f64604f5e60cc421a92199830c3b55ada4db5ef","author":{"email":"4bada73e411a9c678a318a79d04d7df4a5fc4429@gmail.com","name":"Chet Kener"},"message":"Fix More GCC 5.0 Errors\n\nSigned-off-by: Chet Kener <Cl3Kener@gmail.com>","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/0f64604f5e60cc421a92199830c3b55ada4db5ef"},{"sha":"30c25b2d124065a25f7bec9ab6133692770fa10e","author":{"email":"0c53c7310db0d5ac2309cb35536eca37e951530f@nd.edu","name":"D. Andrei Măceș"},"message":"Revert \"Makefile: Disable wbool-compare\"\n\nThis reverts commit 1fc05d77358fa90a65fda6b513bfc8c6e2606c8a.","distinct":true,"url":"https://api.github.com/repos/airend/Elefrant-N5/commits/30c25b2d124065a25f7bec9ab6133692770fa10e"}]}