!951 gensessionid add pid prefix

From: @wangxiaotian22
Reviewed-by: @ji_chen,@xchu42
Signed-off-by: @startzgf168,@ji_chen
pull/951/MERGE
mindspore-ci-bot 4 years ago committed by Gitee
commit 885b3a6b7f

@ -18,6 +18,7 @@
#include <string>
#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;
@ -1037,6 +1037,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<std::mutex> lock(session_id_create_mutex_);
mmTimeval tv;
@ -1044,12 +1050,14 @@ Status ModelManager::GenSessionId(uint64_t &session_id) {
GELOGE(INTERNAL_ERROR, "Failed to get current time.");
return INTERNAL_ERROR;
}
session_id = static_cast<uint64_t>(tv.tv_sec * kTimeSpecMiro + tv.tv_usec); // 1000000us
uint64_t timestamp = static_cast<uint64_t>(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<<kMaskPerOffset<<kMaskPerOffset) & kSessionTimeMask) +
((pid<<kMaskPerOffset) & kSessionPidMask) + (session_id_bias_ & kSessionBiasMask);
GELOGD("Generate new session id: %lu.", session_id);
return SUCCESS;

@ -272,3 +272,8 @@ VOID *mmDlsym(VOID *handle, const CHAR *funcName)
{
return NULL;
}
INT32 mmGetPid()
{
return (INT32)getpid();
}

Loading…
Cancel
Save