Thread (16 messages) 16 messages, 6 authors, 2017-02-14

Re: [PATCH 1/5] MD: attach data to each bio

From: NeilBrown <hidden>
Date: 2017-02-13 09:32:43

On Mon, Feb 13 2017, Christoph Hellwig wrote:
On Fri, Feb 10, 2017 at 05:08:54PM +1100, NeilBrown wrote:
quoted
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

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help