On Mon, Feb 13 2017, Christoph Hellwig wrote: > On Fri, Feb 10, 2017 at 05:08:54PM +1100, NeilBrown wrote: >> I must say that I don't really like this approach. >> Temporarily modifying ->bi_private and ->bi_end_io seems >> .... intrusive. I suspect it works, but I wonder if it is really >> robust in the long term. >> >> How about a different approach.. Your main concern with my first patch >> was that it called md_write_start() and md_write_end() much more often, >> and these performed atomic ops on "global" variables, particular >> writes_pending. >> >> We could change writes_pending to a per-cpu array which we only count >> occasionally when needed. As writes_pending is updated often and >> checked rarely, a per-cpu array which is summed on demand seems >> appropriate. > > FYI, I much prefer you original approach, it's much closer to how > the rest of the block stack works. I probably wasn't clear, but my intention was to stick with my original approach, but make it more acceptable by removing the extra cost of cache-line-bouncing that Shaohua correctly identified. i.e. this patch was a preliminary to improve the original series. Thanks, NeilBrown
Attachment:
signature.asc
Description: PGP signature