From: Tejun Heo <tj@kernel.org> To: Kent Overstreet <koverstreet@google.com> Cc: linux-bcache@vger.kernel.org, linux-kernel@vger.kernel.org, dm-devel@redhat.com, vgoyal@redhat.com, mpatocka@redhat.com, bharrosh@panasas.com, Jens Axboe <axboe@kernel.dk> Subject: Re: [PATCH v7 3/9] block: Add bio_reset() Date: Fri, 31 Aug 2012 19:23:05 -0700 [thread overview] Message-ID: <20120901022305.GE19535@dhcp-172-17-108-109.mtv.corp.google.com> (raw) In-Reply-To: <20120828221715.GD1048@moria.home.lan> Hello, On Tue, Aug 28, 2012 at 03:17:15PM -0700, Kent Overstreet wrote: > > Better to explain why some bio fields are re-ordered and why that > > shouldn't make things worse cacheline-wise? > > Well it may (struct bio is what, 3 or 4 cachelines now?) but even on > ridiculous million iop devices struct bio just isn't hot enough for this > kind of stuff to show up in the profiles... and I've done enough > profiling to be pretty confident of that. > > So um, if there was anything to say performance wise I would, but to me > it seems more that there isn't. > > (pruning struct bio would have more of an effect performance wise, which > you know is something I'd like to do.) Yeah, please put something like the above in the patch description. > > > + unsigned long flags = bio->bi_flags & (~0UL << BIO_RESET_BITS); > > > + > > > + if (bio_integrity(bio)) > > > + bio_integrity_free(bio, bio->bi_pool); > > > + > > > + bio_disassociate_task(bio); > > > > Is this desirable? Why? > > *twitch* I should've thought more when I made that change. > > It occurs to me now that we specifically talked about that and decided > to do it the other way - when I changed that I was just looking at > bio_free() and decided they needed to be symmetrical. > > I still think they should be symmetrical, but if that's true bi_ioc and > bi_css need to be moved, and also bio_disassociate_task() should be > getting called from bio_free(), not bio_put(). > > Were you the one that added that call? I know you've been working on > that area of the code recently. Sticking it in bio_put() instead of > bio_free() seems odd to be, and they're completely equivalent now that > bio_free() is only called from bio_put() (save one instance I should > probably fix). Maybe I botched symmetry but anyways I *suspect* it probably would be better to keep css association across bio_reset() give the current usages of both mechanisms. css association indicates the ownership of the bio which isn't likely to change while recycling the bio. Thanks. -- tejun
WARNING: multiple messages have this Message-ID (diff)
From: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> To: Kent Overstreet <koverstreet-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> Cc: linux-bcache-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dm-devel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, mpatocka-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, bharrosh-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org, Jens Axboe <axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org> Subject: Re: [PATCH v7 3/9] block: Add bio_reset() Date: Fri, 31 Aug 2012 19:23:05 -0700 [thread overview] Message-ID: <20120901022305.GE19535@dhcp-172-17-108-109.mtv.corp.google.com> (raw) In-Reply-To: <20120828221715.GD1048-jC9Py7bek1znysI04z7BkA@public.gmane.org> Hello, On Tue, Aug 28, 2012 at 03:17:15PM -0700, Kent Overstreet wrote: > > Better to explain why some bio fields are re-ordered and why that > > shouldn't make things worse cacheline-wise? > > Well it may (struct bio is what, 3 or 4 cachelines now?) but even on > ridiculous million iop devices struct bio just isn't hot enough for this > kind of stuff to show up in the profiles... and I've done enough > profiling to be pretty confident of that. > > So um, if there was anything to say performance wise I would, but to me > it seems more that there isn't. > > (pruning struct bio would have more of an effect performance wise, which > you know is something I'd like to do.) Yeah, please put something like the above in the patch description. > > > + unsigned long flags = bio->bi_flags & (~0UL << BIO_RESET_BITS); > > > + > > > + if (bio_integrity(bio)) > > > + bio_integrity_free(bio, bio->bi_pool); > > > + > > > + bio_disassociate_task(bio); > > > > Is this desirable? Why? > > *twitch* I should've thought more when I made that change. > > It occurs to me now that we specifically talked about that and decided > to do it the other way - when I changed that I was just looking at > bio_free() and decided they needed to be symmetrical. > > I still think they should be symmetrical, but if that's true bi_ioc and > bi_css need to be moved, and also bio_disassociate_task() should be > getting called from bio_free(), not bio_put(). > > Were you the one that added that call? I know you've been working on > that area of the code recently. Sticking it in bio_put() instead of > bio_free() seems odd to be, and they're completely equivalent now that > bio_free() is only called from bio_put() (save one instance I should > probably fix). Maybe I botched symmetry but anyways I *suspect* it probably would be better to keep css association across bio_reset() give the current usages of both mechanisms. css association indicates the ownership of the bio which isn't likely to change while recycling the bio. Thanks. -- tejun
next prev parent reply other threads:[~2012-09-01 2:23 UTC|newest] Thread overview: 128+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-08-28 17:37 [PATCH v7 0/9] Block cleanups, deadlock fix Kent Overstreet 2012-08-28 17:37 ` [PATCH v7 1/9] block: Generalized bio pool freeing Kent Overstreet 2012-08-28 17:37 ` Kent Overstreet 2012-08-28 17:37 ` [PATCH v7 2/9] dm: Use bioset's front_pad for dm_rq_clone_bio_info Kent Overstreet 2012-08-28 17:37 ` [PATCH v7 3/9] block: Add bio_reset() Kent Overstreet 2012-08-28 17:37 ` Kent Overstreet 2012-08-28 20:31 ` Tejun Heo 2012-08-28 20:31 ` Tejun Heo 2012-08-28 22:17 ` Kent Overstreet 2012-08-28 22:53 ` Kent Overstreet 2012-08-28 22:53 ` Kent Overstreet 2012-09-01 2:23 ` Tejun Heo [this message] 2012-09-01 2:23 ` Tejun Heo 2012-09-05 20:13 ` Kent Overstreet 2012-08-28 17:37 ` [PATCH v7 4/9] pktcdvd: Switch to bio_kmalloc() Kent Overstreet 2012-08-28 20:32 ` Tejun Heo 2012-08-28 20:32 ` Tejun Heo 2012-08-28 22:24 ` Kent Overstreet 2012-09-04 9:05 ` Jiri Kosina 2012-09-04 9:05 ` Jiri Kosina 2012-09-05 19:44 ` Kent Overstreet 2012-09-05 19:44 ` Kent Overstreet 2012-08-28 17:37 ` [PATCH v7 5/9] block: Kill bi_destructor Kent Overstreet 2012-08-28 20:36 ` Tejun Heo 2012-08-28 20:36 ` Tejun Heo 2012-08-28 22:07 ` Kent Overstreet 2012-08-28 17:37 ` [PATCH v7 6/9] block: Consolidate bio_alloc_bioset(), bio_kmalloc() Kent Overstreet 2012-08-28 17:37 ` Kent Overstreet 2012-08-28 20:41 ` Tejun Heo 2012-08-28 20:41 ` Tejun Heo 2012-08-28 22:03 ` Kent Overstreet 2012-08-28 22:03 ` Kent Overstreet 2012-09-01 2:17 ` Tejun Heo 2012-08-28 17:37 ` [PATCH v7 7/9] block: Add bio_clone_bioset(), bio_clone_kmalloc() Kent Overstreet 2012-08-28 20:44 ` Tejun Heo 2012-08-28 20:44 ` Tejun Heo 2012-08-28 22:05 ` Kent Overstreet 2012-09-01 2:19 ` Tejun Heo 2012-09-01 2:19 ` Tejun Heo 2012-08-28 17:37 ` [PATCH v7 8/9] block: Reorder struct bio_set Kent Overstreet 2012-08-28 17:37 ` [PATCH v7 9/9] block: Avoid deadlocks with bio allocation by stacking drivers Kent Overstreet 2012-08-28 20:49 ` Tejun Heo 2012-08-28 20:49 ` Tejun Heo 2012-08-28 22:28 ` Kent Overstreet 2012-08-28 23:01 ` Kent Overstreet 2012-08-28 23:01 ` Kent Overstreet 2012-08-29 1:31 ` Vivek Goyal 2012-08-29 1:31 ` Vivek Goyal 2012-08-29 3:25 ` Kent Overstreet 2012-08-29 12:57 ` Vivek Goyal 2012-08-29 12:57 ` Vivek Goyal 2012-08-29 14:39 ` [dm-devel] " Alasdair G Kergon 2012-08-29 14:39 ` Alasdair G Kergon 2012-08-29 16:26 ` Kent Overstreet 2012-08-29 16:26 ` Kent Overstreet 2012-08-29 21:01 ` John Stoffel 2012-08-29 21:08 ` Kent Overstreet 2012-08-29 21:08 ` Kent Overstreet 2012-08-28 22:06 ` Vivek Goyal 2012-08-28 22:06 ` Vivek Goyal 2012-08-28 22:23 ` Kent Overstreet 2012-08-28 22:23 ` Kent Overstreet 2012-08-29 16:24 ` Mikulas Patocka 2012-08-29 16:50 ` Kent Overstreet 2012-08-29 16:57 ` [dm-devel] " Alasdair G Kergon 2012-08-29 16:57 ` Alasdair G Kergon 2012-08-29 17:07 ` Vivek Goyal 2012-08-29 17:07 ` Vivek Goyal 2012-08-29 17:13 ` Kent Overstreet 2012-08-29 17:13 ` Kent Overstreet 2012-08-29 17:23 ` [dm-devel] " Alasdair G Kergon 2012-08-29 17:23 ` Alasdair G Kergon 2012-08-29 17:32 ` Kent Overstreet 2012-08-30 22:07 ` Vivek Goyal 2012-08-30 22:07 ` Vivek Goyal 2012-08-31 1:43 ` Kent Overstreet 2012-08-31 1:43 ` Kent Overstreet 2012-08-31 1:55 ` Kent Overstreet 2012-08-31 1:55 ` Kent Overstreet 2012-08-31 15:01 ` Vivek Goyal 2012-09-03 1:26 ` Kent Overstreet 2012-09-03 1:26 ` Kent Overstreet 2012-09-03 20:41 ` Mikulas Patocka 2012-09-03 20:41 ` Mikulas Patocka 2012-09-04 3:41 ` Kent Overstreet 2012-09-04 3:41 ` Kent Overstreet 2012-09-04 18:55 ` Tejun Heo 2012-09-04 18:55 ` Tejun Heo 2012-09-04 19:01 ` Tejun Heo 2012-09-04 19:43 ` Kent Overstreet 2012-09-04 19:43 ` Kent Overstreet 2012-09-04 19:42 ` Kent Overstreet 2012-09-04 21:03 ` Tejun Heo 2012-09-04 21:03 ` Tejun Heo 2012-09-04 19:26 ` Mikulas Patocka 2012-09-04 19:26 ` Mikulas Patocka 2012-09-04 19:39 ` Vivek Goyal 2012-09-04 19:39 ` Vivek Goyal 2012-09-04 19:51 ` [PATCH] dm: Use bioset's front_pad for dm_target_io Kent Overstreet 2012-09-04 19:51 ` Kent Overstreet 2012-09-04 21:20 ` Tejun Heo 2012-09-04 21:20 ` Tejun Heo 2012-09-11 19:28 ` [PATCH 2] " Mikulas Patocka 2012-09-11 19:28 ` Mikulas Patocka 2012-09-11 19:50 ` Kent Overstreet 2012-09-11 19:50 ` Kent Overstreet 2012-09-12 22:31 ` Mikulas Patocka 2012-09-12 22:31 ` Mikulas Patocka 2012-09-14 23:09 ` [dm-devel] " Alasdair G Kergon 2012-09-14 23:09 ` Alasdair G Kergon 2012-09-01 2:13 ` [PATCH v7 9/9] block: Avoid deadlocks with bio allocation by stacking drivers Tejun Heo 2012-09-01 2:13 ` Tejun Heo 2012-09-03 1:34 ` [PATCH v2] " Kent Overstreet 2012-09-03 1:34 ` Kent Overstreet 2012-09-04 15:00 ` [PATCH v7 9/9] " Vivek Goyal 2012-09-04 15:00 ` Vivek Goyal 2012-09-03 0:49 ` Dave Chinner 2012-09-03 0:49 ` Dave Chinner 2012-09-03 1:17 ` Kent Overstreet 2012-09-03 1:17 ` Kent Overstreet 2012-09-04 13:54 ` Vivek Goyal 2012-09-04 13:54 ` Vivek Goyal 2012-09-04 18:26 ` Tejun Heo 2012-09-04 18:26 ` Tejun Heo 2012-09-05 3:57 ` Dave Chinner 2012-09-05 3:57 ` Dave Chinner 2012-09-05 4:37 ` Tejun Heo 2012-09-05 4:37 ` Tejun Heo
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20120901022305.GE19535@dhcp-172-17-108-109.mtv.corp.google.com \ --to=tj@kernel.org \ --cc=axboe@kernel.dk \ --cc=bharrosh@panasas.com \ --cc=dm-devel@redhat.com \ --cc=koverstreet@google.com \ --cc=linux-bcache@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mpatocka@redhat.com \ --cc=vgoyal@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.