All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.