Skip to content

Commit 5817ec7

Browse files
authored
Add (command-based) operation parsing in vscsi_read_ver1 and ver2 (#147)
1 parent 223bd15 commit 5817ec7

File tree

1 file changed

+18
-2
lines changed
  • libCacheSim/traceReader/customizedReader

1 file changed

+18
-2
lines changed

libCacheSim/traceReader/customizedReader/vscsi.h

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,15 @@ static inline int vscsi_read_ver1(reader_t *reader, request_t *req) {
128128
// trace uses microsec change to sec
129129
req->clock_time = record->ts / 1000000;
130130
req->obj_size = record->len;
131-
/* need to parse op */
132-
131+
uint16_t cmd = record->cmd;
132+
if (cmd == 40 || cmd == 8 || cmd == 136 || cmd == 45 || cmd == 168) {
133+
req->op = OP_READ;
134+
} else if (cmd == 42 || cmd == 63 || cmd == 138 || cmd == 142 ||
135+
cmd == 154 || cmd == 156 || cmd == 170 || cmd == 174) {
136+
req->op = OP_WRITE;
137+
} else {
138+
req->op = OP_INVALID;
139+
}
133140
req->obj_id = record->lbn;
134141
(reader->mmap_offset) += reader->item_size;
135142
return 0;
@@ -140,6 +147,15 @@ static inline int vscsi_read_ver2(reader_t *reader, request_t *req) {
140147
(trace_v2_record_t *)(reader->mapped_file + reader->mmap_offset);
141148
req->clock_time = record->ts / 1000000;
142149
req->obj_size = record->len;
150+
uint16_t cmd = record->cmd;
151+
if (cmd == 40 || cmd == 8 || cmd == 136 || cmd == 45 || cmd == 168) {
152+
req->op = OP_READ;
153+
} else if (cmd == 42 || cmd == 63 || cmd == 138 || cmd == 142 ||
154+
cmd == 154 || cmd == 156 || cmd == 170 || cmd == 174) {
155+
req->op = OP_WRITE;
156+
} else {
157+
req->op = OP_INVALID;
158+
}
143159
req->obj_id = record->lbn;
144160
(reader->mmap_offset) += reader->item_size;
145161
return 0;

0 commit comments

Comments
 (0)