Пример #1
0
static int
ping_client_prep_rpc(sfw_test_unit_t *tsu,
		     lnet_process_id_t dest, srpc_client_rpc_t **rpc)
{
	srpc_ping_reqst_t   *req;
	sfw_test_instance_t *tsi = tsu->tsu_instance;
	sfw_session_t       *sn  = tsi->tsi_batch->bat_session;
	struct timeval       tv;
	int		     rc;

	LASSERT(sn != NULL);
	LASSERT((sn->sn_features & ~LST_FEATS_MASK) == 0);

	rc = sfw_create_test_rpc(tsu, dest, sn->sn_features, 0, 0, rpc);
	if (rc != 0)
		return rc;

	req = &(*rpc)->crpc_reqstmsg.msg_body.ping_reqst;

	req->pnr_magic = LST_PING_TEST_MAGIC;

	spin_lock(&lst_ping_data.pnd_lock);
	req->pnr_seq = lst_ping_data.pnd_counter++;
	spin_unlock(&lst_ping_data.pnd_lock);

	cfs_fs_timeval(&tv);
	req->pnr_time_sec  = tv.tv_sec;
	req->pnr_time_usec = tv.tv_usec;

	return rc;
}
Пример #2
0
static int
ping_client_prep_rpc(struct sfw_test_unit *tsu, lnet_process_id_t dest,
		     struct srpc_client_rpc **rpc)
{
	struct srpc_ping_reqst *req;
	struct sfw_test_instance *tsi = tsu->tsu_instance;
	struct sfw_session *sn = tsi->tsi_batch->bat_session;
	struct timespec64 ts;
	int rc;

	LASSERT(sn);
	LASSERT(!(sn->sn_features & ~LST_FEATS_MASK));

	rc = sfw_create_test_rpc(tsu, dest, sn->sn_features, 0, 0, rpc);
	if (rc)
		return rc;

	req = &(*rpc)->crpc_reqstmsg.msg_body.ping_reqst;

	req->pnr_magic = LST_PING_TEST_MAGIC;

	spin_lock(&lst_ping_data.pnd_lock);
	req->pnr_seq = lst_ping_data.pnd_counter++;
	spin_unlock(&lst_ping_data.pnd_lock);

	ktime_get_real_ts64(&ts);
	req->pnr_time_sec = ts.tv_sec;
	req->pnr_time_usec = ts.tv_nsec / NSEC_PER_USEC;

	return rc;
}