From ee5c71962dbe647c8b6e6d714960777c76dff9eb Mon Sep 17 00:00:00 2001 From: wangxiaotian22 Date: Thu, 14 Jan 2021 19:26:00 +0800 Subject: [PATCH] gensessionid add pid prefix --- .../load/new_model_manager/model_manager.cc | 18 +++++++++++++----- tests/depends/mmpa/src/mmpa_stub.cc | 5 +++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/ge/graph/load/new_model_manager/model_manager.cc b/ge/graph/load/new_model_manager/model_manager.cc index 8faf9d26..1a4a5213 100755 --- a/ge/graph/load/new_model_manager/model_manager.cc +++ b/ge/graph/load/new_model_manager/model_manager.cc @@ -18,6 +18,7 @@ #include +#include "mmpa/mmpa_api.h" #include "aicpu/aicpu_schedule/aicpu_op_type_list.h" #include "common/dump/dump_manager.h" #include "common/l2_cache_optimize.h" @@ -53,7 +54,6 @@ const char *const kBatchLoadBuf = "batchLoadsoFrombuf"; const char *const kDeleteCustOp = "deleteCustOp"; const int kTimeSpecNano = 1000000000; const int kTimeSpecMiro = 1000000; -const int kSessionMaxBias = 100; const int kOpNameMaxSize = 100; struct CustAicpuSoBuf { uint64_t kernelSoBuf; @@ -1030,6 +1030,12 @@ Status ModelManager::GetAippType(uint32_t model_id, uint32_t index, InputAippTyp } Status ModelManager::GenSessionId(uint64_t &session_id) { + const uint64_t kSessionTimeMask = 0xffffffffffff0000; + const uint64_t kSessionPidMask = 0x000000000000ff00; + const uint64_t kSessionBiasMask = 0x00000000000000ff; + + const uint64_t kMaskPerOffset = 8; + std::lock_guard lock(session_id_create_mutex_); mmTimeval tv; @@ -1037,12 +1043,14 @@ Status ModelManager::GenSessionId(uint64_t &session_id) { GELOGE(INTERNAL_ERROR, "Failed to get current time."); return INTERNAL_ERROR; } - session_id = static_cast(tv.tv_sec * kTimeSpecMiro + tv.tv_usec); // 1000000us + uint64_t timestamp = static_cast(tv.tv_sec * kTimeSpecMiro + tv.tv_usec); // 1000000us + + static uint32_t pid = mmGetPid(); session_id_bias_++; - // max bais 100. - session_id_bias_ = session_id_bias_ % kSessionMaxBias; - session_id = session_id * kSessionMaxBias + session_id_bias_; + + session_id = ((timestamp<