Re: [PATCH 4/9] blkcg: implement REQ_CGROUP_PUNT

2019-06-15 Thread Tejun Heo
Hello, On Sat, Jun 15, 2019 at 11:24:48AM -0700, Tejun Heo wrote: > When a shared kthread needs to issue a bio for a cgroup, doing so > synchronously can lead to priority inversions as the kthread can be > trapped waiting for that cgroup. This patch implements > REQ_CGROUP_PUNT flag which makes s

[PATCH 2/9] blkcg, writeback: Add wbc->no_wbc_acct

2019-06-15 Thread Tejun Heo
When writeback IOs are bounced through async layers, the IOs should only be accounted against the wbc from the original bdi writeback to avoid confusing cgroup inode ownership arbitration. Add wbc->no_wbc_acct to allow disabling wbc accounting. This will be used make btfs compression work well wi

[PATCH 8/9] Btrfs: use REQ_CGROUP_PUNT for worker thread submitted bios

2019-06-15 Thread Tejun Heo
From: Chris Mason Async CRCs and compression submit IO through helper threads, which means they have IO priority inversions when cgroup IO controllers are in use. This flags all of the writes submitted by btrfs helper threads as REQ_CGROUP_PUNT. submit_bio() will punt these to dedicated per-blk

[PATCH 1/9] cgroup, blkcg: Prepare some symbols for module and !CONFIG_CGROUP usages

2019-06-15 Thread Tejun Heo
btrfs is going to use css_put() and wbc helpers to improve cgroup writeback support. Add dummy css_get() definition and export wbc helpers to prepare for module and !CONFIG_CGROUP builds. Signed-off-by: Tejun Heo Reported-by: kbuild test robot --- block/blk-cgroup.c | 1 + fs/fs-writeback.

[PATCH 7/9] Btrfs: only associate the locked page with one async_cow struct

2019-06-15 Thread Tejun Heo
From: Chris Mason The btrfs writepages function collects a large range of pages flagged for delayed allocation, and then sends them down through the COW code for processing. When compression is on, we allocate one async_cow structure for every 512K, and then run those pages through the compressi

[PATCH 6/9] Btrfs: delete the entire async bio submission framework

2019-06-15 Thread Tejun Heo
From: Chris Mason Now that we're not using btrfs_schedule_bio() anymore, delete all the code that supported it. Signed-off-by: Chris Mason Reviewed-by: Josef Bacik --- fs/btrfs/ctree.h | 1 - fs/btrfs/disk-io.c | 13 +-- fs/btrfs/super.c | 1 - fs/btrfs/volumes.c | 209 --

[PATCH 9/9] Btrfs: extent_write_locked_range() should attach inode->i_wb

2019-06-15 Thread Tejun Heo
From: Chris Mason extent_write_locked_range() is used when we're falling back to buffered IO from inside of compression. It allocates its own wbc and should associate it with the inode's i_wb to make sure the IO goes down from the correct cgroup. Signed-off-by: Chris Mason Reviewed-by: Josef B

[PATCH 3/9] blkcg, writeback: Implement wbc_blkcg_css()

2019-06-15 Thread Tejun Heo
Add a helper to determine the target blkcg from wbc. Signed-off-by: Tejun Heo Reviewed-by: Josef Bacik --- include/linux/writeback.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/writeback.h b/include/linux/writeback.h index b8f5f000cde4..800ee031e88a 100644 ---

[PATCH 4/9] blkcg: implement REQ_CGROUP_PUNT

2019-06-15 Thread Tejun Heo
When a shared kthread needs to issue a bio for a cgroup, doing so synchronously can lead to priority inversions as the kthread can be trapped waiting for that cgroup. This patch implements REQ_CGROUP_PUNT flag which makes submit_bio() punt the actual issuing to a dedicated per-blkcg work item to a

[PATCH 5/9] Btrfs: stop using btrfs_schedule_bio()

2019-06-15 Thread Tejun Heo
From: Chris Mason btrfs_schedule_bio() hands IO off to a helper thread to do the actual submit_bio() call. This has been used to make sure async crc and compression helpers don't get stuck on IO submission. To maintain good performance, over time the IO submission threads duplicated some IO sch

[PATCHSET v2 btrfs/for-next] blkcg, btrfs: fix cgroup writeback support

2019-06-15 Thread Tejun Heo
Hello, Changes from v1[1] * 0001-cgroup-blkcg-Prepare-some-symbols-for-module-and-CON.patch added. It collects and adds symbol exports and dummy function def to fix module and different config builds. When writeback is executed asynchronously (e.g. for compression), bios are bounced t

Re: [PATCH] blk-iolatency: only account submitted bios

2019-06-15 Thread Dennis Zhou
Hi Jens, On Thu, May 23, 2019 at 04:10:18PM -0400, Dennis Zhou wrote: > As is, iolatency recognizes done_bio and cleanup as ending paths. If a > request is marked REQ_NOWAIT and fails to get a request, the bio is > cleaned up via rq_qos_cleanup() and ended in bio_wouldblock_error(). > This results

Re: [PATCHSET block/for-linus] Assorted blkcg fixes

2019-06-15 Thread Jens Axboe
On 6/15/19 9:50 AM, Tejun Heo wrote: > Hello, > > On Sat, Jun 15, 2019 at 01:40:50AM -0600, Jens Axboe wrote: >>> Please refer to each patch's description for details. Patchset is >>> also available in the following git branch. >>> >>>git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.gi

Bug 7805 strikes again?

2019-06-15 Thread Andrew Randrianasulu
Hello! I was puzzled by strange fact my qemu stopped to boot DVDs I made over years, if I put them in physical drive and try to boot them via qemu. After a lot of digging I found possible reason: wrongly-set block device size on /dev/sr0 And this lead me to https://bugs.debian.org/cgi-bin/bugr

Re: [PATCH 08/10] blkcg: implement blk-ioweight

2019-06-15 Thread Tejun Heo
Hello, On Fri, Jun 14, 2019 at 10:50:34PM +0200, Toke Høiland-Jørgensen wrote: > > Within a single cgroup, the IOs are FIFO. When an IO has enough vtime > > credit, it just passes through. When it doesn't, it always waits > > behind any other IOs which are already waiting. > > OK. Is there any fu

Re: [PATCHSET block/for-linus] Assorted blkcg fixes

2019-06-15 Thread Tejun Heo
Hello, On Sat, Jun 15, 2019 at 01:40:50AM -0600, Jens Axboe wrote: > > Please refer to each patch's description for details. Patchset is > > also available in the following git branch. > > > > git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git > > review-blkcg-fixes > > > > Thanks.

Re: [PATCH] block: genhd: Use struct_size() helper

2019-06-15 Thread Jens Axboe
On 5/31/19 12:47 PM, Gustavo A. R. Silva wrote: > Make use of the struct_size() helper instead of an open-coded version > in order to avoid any potential type mistakes, in particular in the > context in which this code is being used. > > So, replace the following form: > > sizeof(*new_ptbl) + tar

Re: [PATCH] block: bio: Use struct_size() in kmalloc()

2019-06-15 Thread Jens Axboe
On 6/10/19 9:04 AM, Gustavo A. R. Silva wrote: > One of the more common cases of allocation size calculations is finding > the size of a structure that has a zero-sized array at the end, along > with memory for some number of elements for that array. For example: > > struct bio_map_data { >

Re: [PATCH] block: null_blk: fix race condition for null_del_dev

2019-06-15 Thread Jens Axboe
On 6/13/19 6:40 AM, Bob Liu wrote: > On 6/13/19 4:45 PM, Jens Axboe wrote: >> On 5/31/19 12:05 AM, Bob Liu wrote: >>> Dulicate call of null_del_dev() will trigger null pointer error like below. >>> The reason is a race condition between nullb_device_power_store() and >>> nullb_group_drop_item(). >>

Re: [PATCHSET block/for-linus] Assorted blkcg fixes

2019-06-15 Thread Jens Axboe
On 6/13/19 4:30 PM, Tejun Heo wrote: > Hello, > > This patchset contains the following blkcg fixes. > > 0001-blk-iolatency-clear-use_delay-when-io.latency-is-set.patch > 0002-blkcg-update-blkcg_print_stat-to-handle-larger-outpu.patch > 0003-blkcg-perpcu_ref-init-exit-should-be-done-from-blk

Re: [PATCH 1/1] blk-mq/debugfs: Fix improper print qualifier

2019-06-15 Thread Jens Axboe
On 6/14/19 5:39 AM, Pavel Begunkov (Silence) wrote: > From: Pavel Begunkov > > struct blk_rq_stat::mean is a u64 value, so use %llu Applied, thanks. -- Jens Axboe