public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
From: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
To: Or Gerlitz <ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Amir Vadai <amirv-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	Tal Alon <talal-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: Re: [PATCH for-next V1 00/11] Add completion timestamping support
Date: Thu, 28 May 2015 16:41:58 -0500	[thread overview]
Message-ID: <55678BA6.4050503@opengridcomputing.com> (raw)
In-Reply-To: <1432220202-9834-1-git-send-email-ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>

On 5/21/2015 9:56 AM, Or Gerlitz wrote:
> Hi Doug,
>
> This patchset adds completion timestamping supports for verbs consumers.
>
> Timestamping is used by applications in order to know when a WQE was
> received/transmitted by the HW. The value is given is HCA hardware cycles,
> but could be easily converted as the hardware's core clock frequecny is
> available through extension of query device.
>
> Moreover, we add an ability to read the HCA's current clock. This could be
> useful on order to synchronize events to the wall clock.
>
> This functionality is achieved by adding/extending the following verbs:
>
> create_cq - create_cq is extended in order to allow passing creation flags
> to the CQ creation function. We change IB/core --> vendors API
> to be easily extendible by passing a struct which contains
> comp_vectors, cqe and the new flags parameter. In order to create
> CQ which supports timestamping, IB_CQ_FLAGS_TIMESTAMP should be given.
>
> query_device - We extend query_device uverb further by giving the hardware's
> clock frequency and the timestamp mask (the number of timestamp
> bits which are supported). If timestamp isn't supported, 0 is returned.
>
> In order to read the timestamp in the WQE, the user needs to query the device
> for support, create an appropriate CQ (using the extanded uverb with
> IB_CQ_FLAGS_TIMESTAMP) and poll the CQ with an extended poll_cq verb (currently,
> only implemented in user-space).
>
> In mlx4, allowing the user to read the core clock efficiently involves mapping
> this area of the hardware to user-space (being done by using a mmap command)
> and reading the clock from the correct offset of the page.
>
> This offset is returned in the vendor's specific data from mlx4's kernel driver
> to the mlx4's user-space driver. query_device is modified in order to support
> passing this vendor specific data. A user-space application could use a new
> verb in order to read the hardware's clock.
>
> Translating the hardware's clock into ms could be done by dividing this
> value by hca_core_clock (which is returned by the extended version of
> query_device uverb).
>
> A user-space application could get the current HW's clock by executing
>
> ibv_query_values_ex(struct ibv_context *context, uint32_t q_values,
>                      struct ibv_values_ex *values)
>
> The function gets a mask of the values to query and return their values.
> Vendors could either implement this as a uverb command or use their
> user-space driver to return those values directly from the HW (the mlx4 way).

I'm just reviewing this now, and I haven't looked at the user side, but 
it appears the CQE timestamp is available for all devices to support or 
not in a generic manner.  IE it is part of the extended CQ UAPI.  But 
the task of fetching the current timestamp value/mask seems to be 
device-specific.   Shouldn't that also be a standard operation that 
devices can choose to support or not?    IE an application can 
generically setup a CQ and get timestamps on CQEs, but it seems the 
application would have to have device-specific code to get the current 
timestamp/mask.  Perhaps I'm not understanding the design?

Steve.


--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2015-05-28 21:41 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-21 14:56 [PATCH for-next V1 00/11] Add completion timestamping support Or Gerlitz
     [not found] ` <1432220202-9834-1-git-send-email-ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-05-21 14:56   ` [PATCH for-next V1 01/11] IB/core: Change provider's API of create_cq to be extendible Or Gerlitz
2015-05-21 14:56   ` [PATCH for-next V1 02/11] IB/core: Change ib_create_cq to use struct ib_cq_init_attr Or Gerlitz
2015-05-21 14:56   ` [PATCH for-next V1 03/11] IB/core: Add CQ creation time-stamping flag Or Gerlitz
     [not found]     ` <1432220202-9834-4-git-send-email-ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-05-29 16:47       ` Doug Ledford
     [not found]         ` <1432918022.114391.102.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-05-29 19:16           ` Steve Wise
2015-05-21 14:56   ` [PATCH for-next V1 04/11] IB/core: Extend ib_uverbs_create_cq Or Gerlitz
2015-05-21 14:56   ` [PATCH for-next V1 05/11] IB/core: Add timestamp_mask and hca_core_clock to query_device Or Gerlitz
2015-05-21 14:56   ` [PATCH for-next V1 06/11] IB/core: Pass hardware specific data in query_device Or Gerlitz
2015-05-21 14:56   ` [PATCH for-next V1 07/11] IB/mlx4: Add mmap call to map the hardware clock Or Gerlitz
2015-05-21 14:56   ` [PATCH for-next V1 08/11] IB/mlx4: Support extended create_cq and query_device uverbs Or Gerlitz
2015-05-21 14:56   ` [PATCH for-next V1 09/11] IB/mlx4: Add support for timestamp in cq creation Or Gerlitz
2015-05-21 14:56   ` [PATCH for-next V1 10/11] IB/mlx4: Add timestamp_mask and hca_core_clock to query_device Or Gerlitz
     [not found]     ` <1432220202-9834-11-git-send-email-ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-05-29 16:41       ` Doug Ledford
     [not found]         ` <1432917684.114391.98.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-05-30 20:49           ` Or Gerlitz
2015-05-21 14:56   ` [PATCH for-next V1 11/11] IB/mlx4: Return hca core clock's offset in query_device vendor's data Or Gerlitz
2015-05-23  4:23   ` [PATCH for-next V1 00/11] Add completion timestamping support Or Gerlitz
2015-05-28 21:41   ` Steve Wise [this message]
     [not found]     ` <55678BA6.4050503-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2015-05-29 15:47       ` Or Gerlitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55678BA6.4050503@opengridcomputing.com \
    --to=swise-7bpotxp6k4+p2yhjcf5u+vpxobypeauw@public.gmane.org \
    --cc=amirv-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=talal-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox