serialized plog write is too slow. we must improve it.
make it async with ref count. Most of the writes are async thus can be gone on failure and what we need to protect from such accidents by logging on plog are those with REQ_FUA and those acked before REQ_FLUSH acks.
If we complete this enhancement, we results in having two refcount locking that both inc in locking (one is in mutex and the other is between plog lock (wait and wakeup)). The design will not get complicated because there just appears an identical locking technique twice.
before implementation, performance evaluation should be done. And question should be resolved that PRAM API can implement it too.
Performs really good. Only modified do_append_plog_t1 to async. WIll apply
barrier_plog_writes() will be defined that wait for the inflight plog writes are all acked and send REQ_FLUSH to the plog device.