using highest 2 bits as tag

This commit is contained in:
Rongsong Shen 2025-11-10 10:25:59 +08:00
parent f3f6a78b07
commit 2a7b7c39bb
2 changed files with 10 additions and 10 deletions

View file

@ -25,8 +25,13 @@ typedef uint64_t jobid_t;
#define N_JOBID_BITS (sizeof(jobid_t) * 8)
#define N_TAG_BITS (2)
#define TAG_SHIFT (N_JOBID_BITS - N_TAG_BITS)
#define TAG_JOB_ARRAY (0x01)
#define N_CLUSTER_ID_BITS (6)
#define CLUSTER_ID_SHIFT (N_JOBID_BITS - N_CLUSTER_ID_BITS)
#define CLUSTER_ID_SHIFT (TAG_SHIFT - N_CLUSTER_ID_BITS)
#define N_APISERVER_ID_BITS (4)
#define APISERVER_ID_SHIFT (CLUSTER_ID_SHIFT - N_APISERVER_ID_BITS)
@ -34,13 +39,8 @@ typedef uint64_t jobid_t;
#define N_TIMESTAMP_BITS (32)
#define TIMESTAMP_SHIFT (APISERVER_ID_SHIFT - N_TIMESTAMP_BITS)
#define N_TAG_BITS (2)
#define TAG_SHIFT (TIMESTAMP_SHIFT - N_TAG_BITS)
#define N_ARRAY_IDX_BITS (15)
#define TAG_JOB_ARRAY (0x01)
#define N_SEQENCE_BITS \
(N_JOBID_BITS - N_CLUSTER_ID_BITS - N_APISERVER_ID_BITS - N_TIMESTAMP_BITS \
- N_TAG_BITS)

View file

@ -8,18 +8,18 @@
static void test_cluster_id(void)
{
TEST_ASSERT_TRUE(MAX_CLUSTER_ID == 63);
TEST_ASSERT_TRUE(CLUSTER_ID_SHIFT == 58);
TEST_ASSERT_TRUE(CLUSTER_ID_SHIFT == 56);
}
static void test_apiserver_id(void)
{
TEST_ASSERT_TRUE(MAX_APISERVER_ID == 15);
TEST_ASSERT_TRUE(APISERVER_ID_SHIFT == 54);
TEST_ASSERT_TRUE(APISERVER_ID_SHIFT == 52);
}
static void test_timestamp(void) { TEST_ASSERT_TRUE(TIMESTAMP_SHIFT == 22); }
static void test_timestamp(void) { TEST_ASSERT_TRUE(TIMESTAMP_SHIFT == 20); }
static void test_tag(void) { TEST_ASSERT_TRUE(TAG_SHIFT == 20); }
static void test_tag(void) { TEST_ASSERT_TRUE(TAG_SHIFT == 62); }
static void test_array(void)
{