Re: why ShardedWQ in osd using smart pointer for PG?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 10, 2015 at 7:19 AM, 池信泽 <xmdxcxz@xxxxxxxxx> wrote:
> 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?

In general we use PGRefs rather than PG pointers. I think we actually
rely on the references here to keep the PG from going out of scope at
an inopportune time, but if it halves the cost of queuing actions it
might be worth the effort of avoiding that.
-Greg
--
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



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux