{"push_id":2834620586,"size":10,"distinct_size":10,"ref":"refs/heads/4.18","head":"4743dd1aacd08cfed21cac65745d83da9324123e","before":"ef772aed6f6bd1e1f543f9e009524bc467aa22f6","commits":[{"sha":"2a93deb9d69fbaea459fb8bf169cab1214fbfd47","author":{"name":"Paolo Valente","email":"77843028b8f8419c9977951e271784ccf7804be9@linaro.org"},"message":"block, bfq-mq: correctly charge and reset entity service in all cases\n\nBFQ schedules entities (which represent either per-process queues or\ngroups of queues) as a function of their timestamps. In particular, as\na function of their (virtual) finish times. The finish time of an\nentity is computed as a function of the budget assigned to the entity,\nassuming, tentatively, that the entity, once in service, will receive\nan amount of service equal to its budget. Then, when the entity is\nexpired because it finishes to be served, this finish time is updated\nas a function of the actual service received by the entity. This\nallows the entity to be correctly charged with only the service\nreceived, and then to be correctly re-scheduled.\n\nYet an entity may receive service also while not being the entity in\nservice (in the scheduling environment of its parent entity), for\nseveral reasons. If the entity remains with no backlog while receiving\nthis 'unofficial' service, then it is expired. Also on such an\nexpiration, the finish time of the entity should be updated to account\nfor only the service actually received by the entity. Unfortunately,\nsuch an update is not performed for an entity expiring without being\nthe entity in service.\n\nIn a similar vein, the service counter of the entity in service is\nreset when the entity is expired, to be ready to be used for next\nservice cycle. This reset too should be performed also in case an\nentity is expired because it remains empty after receiving service\nwhile not being the entity in service. But in this case the reset is\nnot performed.\n\nThis commit performs the above update of the finish time and reset of\nthe service received, also for an entity expiring while not being the\nentity in service.\n\nSigned-off-by: Paolo Valente <paolo.valente@linaro.org>","distinct":true,"url":"https://api.github.com/repos/backbone/backbone-sources/commits/2a93deb9d69fbaea459fb8bf169cab1214fbfd47"},{"sha":"87bb74ecf70dfebcc090f33c04a9c143d498112b","author":{"name":"Paolo Valente","email":"77843028b8f8419c9977951e271784ccf7804be9@linaro.org"},"message":"block, bfq-sq, bfq-mq: inject other-queue I/O into seeky idle queues on NCQ flash\n\nTHIS COMMIT IS STILL UNDER DEVELOPMENT AND MAY UNDERGO CHANGES!!\n\nThe Achilles' heel of BFQ is its failing to reach a high throughput\nwith sync random I/O on flash storage with internal queueing, in case\nthe processes doing I/O have differentiated weights.\n\nThe cause of this failure is as follows. If at least two processes do\nsync I/O, and have a different weight from each other, then BFQ plugs\nI/O dispatching every time one of these processes, while it is being\nserved, remains temporarily without pending I/O requests. This\nplugging is necessary to guarantee that every process enjoys a\nbandwidth proportional to its weight; but it empties the internal\nqueue(s) of the drive. And this kills throughput with random I/O. So,\nif some processes have differentiated weights and do both sync and\nrandom I/O, the end result is a throughput collapse.\n\nThis commit tries to counter this problem by injecting the service of\nother processes, in a controlled way, while the process in service\nhappens to have no I/O. This injection is performed only if the medium\nis non rotational and performs internal queueing, and the process in\nservice does random I/O (service injection might be beneficial for\nsequential I/O too, we'll work on that).\n\nAs an example of the benefits of this commit, on a PLEXTOR PX-256M5S\nSSD, and with five processes having differentiated weights and doing\nsync random 4KB I/O, this commit makes the throughput with bfq grow by\n400%, from 25 to 100MB/s. This higher throughput is 10MB/s lower than\nthat reached with none. As some less random I/O is added to the mix,\nthe throughput becomes equal to or higher than that with none.\n\nThis commit is a very first attempt to recover throughput without\nlosing control, and certainly has many limitations. One is, e.g., that\nthe processes whose service is injected are not chosen so as to\ndistribute the extra bandwidth they receive in accordance to their\nweights. Thus there might be loss of weighted fairness in some\ncases. Anyway, this loss concerns extra service, which would not have\nbeen received at all without this commit. Other limitations and issues\nwill probably show up with usage.\n\nSigned-off-by: Paolo Valente <paolo.valente@linaro.org>","distinct":true,"url":"https://api.github.com/repos/backbone/backbone-sources/commits/87bb74ecf70dfebcc090f33c04a9c143d498112b"},{"sha":"d2178647f7e3400d5fcda5130ae8330a216bcf8a","author":{"name":"Jan Alexander Steffens (heftig)","email":"d4d774cda8be684d59f72959e20afdd63aff83f9@gmail.com"},"message":"Merge remote-tracking branch 'algodev/bfq-mq' into 4.18/bfq\n\n* algodev/bfq-mq:\n  block, bfq-sq, bfq-mq: inject other-queue I/O into seeky idle queues on NCQ flash\n  block, bfq-mq: correctly charge and reset entity service in all cases","distinct":true,"url":"https://api.github.com/repos/backbone/backbone-sources/commits/d2178647f7e3400d5fcda5130ae8330a216bcf8a"},{"sha":"955d510b42e39320ec803e34bed037c09f1c5911","author":{"name":"Jan Alexander Steffens (heftig)","email":"d4d774cda8be684d59f72959e20afdd63aff83f9@gmail.com"},"message":"Merge branch '4.18/bfq' into 4.18/master\n\n* 4.18/bfq:\n  block, bfq-sq, bfq-mq: inject other-queue I/O into seeky idle queues on NCQ flash\n  block, bfq-mq: correctly charge and reset entity service in all cases","distinct":true,"url":"https://api.github.com/repos/backbone/backbone-sources/commits/955d510b42e39320ec803e34bed037c09f1c5911"},{"sha":"978ef17621eaf0212d406f972384424e3f8f78fd","author":{"name":"Jan Alexander Steffens (heftig)","email":"d4d774cda8be684d59f72959e20afdd63aff83f9@gmail.com"},"message":"Merge tag 'v4.18.5' into 4.18/master\n\nThis is the 4.18.5 stable release\n\n* tag 'v4.18.5': (23 commits)\n  Linux 4.18.5\n  reiserfs: fix broken xattr handling (heap corruption, bad retval)\n  i2c: imx: Fix race condition in dma read\n  i2c: core: ACPI: Properly set status byte to 0 for multi-byte writes\n  PCI: pciehp: Fix unprotected list iteration in IRQ handler\n  PCI: pciehp: Fix use-after-free on unplug\n  PCI: Skip MPS logic for Virtual Functions (VFs)\n  PCI: aardvark: Size bridges before resources allocation\n  PCI: hotplug: Don't leak pci_slot on registration failure\n  PCI / ACPI / PM: Resume all bridges on suspend-to-RAM\n  PCI: Restore resized BAR state on resume\n  parisc: Remove ordered stores from syscall.S\n  parisc: Remove unnecessary barriers from spinlock.h\n  drm/amdgpu/pm: Fix potential Spectre v1\n  drm/i915/kvmgt: Fix potential Spectre v1\n  ext4: fix spectre gadget in ext4_mb_regular_allocator()\n  powerpc64s: Show ori31 availability in spectre_v1 sysfs file not v2\n  x86/mm/init: Remove freed kernel image areas from alias mapping\n  x86/mm/init: Add helper for freeing kernel image pages\n  x86/mm/init: Pass unconverted symbol addresses to free_init_pages()\n  ...","distinct":true,"url":"https://api.github.com/repos/backbone/backbone-sources/commits/978ef17621eaf0212d406f972384424e3f8f78fd"},{"sha":"f3ebd9698ba3daa83f0c4eb461d846f7c80561b7","author":{"name":"Steven Barrett","email":"4068f0880b399410602d694b3cc711c8a8f4727e@liquorix.net"},"message":"Merge latest modifications to previous commit\n\nSource: https://github.com/Algodev-github/bfq-mq/commit/87bb74ecf70dfebcc090f33c04a9c143d498112b","distinct":true,"url":"https://api.github.com/repos/backbone/backbone-sources/commits/f3ebd9698ba3daa83f0c4eb461d846f7c80561b7"},{"sha":"d0478affaf07a2022a60a171998a6cebd66a1477","author":{"name":"Steven Barrett","email":"4068f0880b399410602d694b3cc711c8a8f4727e@liquorix.net"},"message":"Merge branch '4.18/bfq' into 4.18/master","distinct":true,"url":"https://api.github.com/repos/backbone/backbone-sources/commits/d0478affaf07a2022a60a171998a6cebd66a1477"},{"sha":"782249f963fc089081303d0b0eba6b6d2e40dfc6","author":{"name":"Alfred Chen","email":"2db4eec4001e01cbb41a392dde270690990fcada@gmail.com"},"message":"PDS-mq 0.98w","distinct":true,"url":"https://api.github.com/repos/backbone/backbone-sources/commits/782249f963fc089081303d0b0eba6b6d2e40dfc6"},{"sha":"171bab3fb0d568e67fc5985e11594839d5a637ab","author":{"name":"Jan Alexander Steffens (heftig)","email":"d4d774cda8be684d59f72959e20afdd63aff83f9@gmail.com"},"message":"Merge branch '4.18/pds' into 4.18/master\n\n* 4.18/pds:\n  PDS-mq 0.98w","distinct":true,"url":"https://api.github.com/repos/backbone/backbone-sources/commits/171bab3fb0d568e67fc5985e11594839d5a637ab"},{"sha":"4743dd1aacd08cfed21cac65745d83da9324123e","author":{"name":"Kolan Sh","email":"4da38e79dbf743adc207e22b3829ee998325e896@backbone.ws"},"message":"Zen merged into 4.18","distinct":true,"url":"https://api.github.com/repos/backbone/backbone-sources/commits/4743dd1aacd08cfed21cac65745d83da9324123e"}]}
{"actor":{"display_login":"backbone"}}