On 02-Mar-18 6:48 PM, Stephen Hemminger wrote:
On Tue, 27 Feb 2018 14:59:29 +0000
Anatoly Burakov <anatoly.bura...@intel.com> wrote:
+rte_mp_request_async(struct rte_mp_msg *req, const struct timespec *ts)
{
+ struct sync_request *dummy;
+ struct async_request_shared_param *param = NULL;
+ struct rte_mp_reply *reply = NULL;
+ int dir_fd, ret = 0;
+ DIR *mp_dir;
+ struct dirent *ent;
+ struct timeval now;
+ struct timespec *end = NULL;
+
+ RTE_LOG(DEBUG, EAL, "request: %s\n", req->name);
+
+ if (check_input(req) == false)
+ return -1;
+ if (gettimeofday(&now, NULL) < 0) {
+ RTE_LOG(ERR, EAL, "Faile to get current time\n");
+ rte_errno = errno;
+ return -1;
+ }
gettimeofday is not a good API to use in DPDK.
It gets changed by NTP; if you have to use system time you want monotonic clock
We need current time because pthread_cond_timedwait() accepts current
time. So it's either that, or reimplementing pthread_cond_timedwait() in
DPDK using monotonic clock :) Unless, of course, there already are
alternatives that use monotonic clock and that don't need other DPDK
machinery (e.g. rte_malloc) to work (like rte_alarm callbacks).
--
Thanks,
Anatoly