hi, all: op_wq is declared as ShardedThreadPool::ShardedWQ < pair <PGRef, OpRequestRef> > &op_wq. I do not know why we should use PGRef in this? Because the overhead of the smart pointer is not small. Maybe the raw point PG* is also OK? If op_wq is changed to ShardedThreadPool::ShardedWQ < pair <PG*, OpRequestRef> > &op_wq (using raw point) the latency for PrioritizedQueue:;enqueue decrease from 3.38us -> 1.89us the latency for PrioritizedQueue:;dequeue decrease from 3.44us -> 1.65us Is this make sense to you? -- Regards, xinze -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html