Compare commits

..

1207 commits

Author SHA1 Message Date
tracer-ysyx
8a24c518eb > compile NEMU
Some checks failed
Build abstract machine with nix / build-abstract-machine (push) Has been cancelled
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:42:10  up  22:17,  2 users,  load average: 1.05, 0.49, 0.58
2024-03-26 12:42:10 +08:00
tracer-ysyx
931fece0b0 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:33:55  up  22:09,  2 users,  load average: 0.86, 0.65, 0.74
2024-03-26 12:33:55 +08:00
tracer-ysyx
259197ed67 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:33:24  up  22:09,  2 users,  load average: 0.99, 0.65, 0.74
2024-03-26 12:33:24 +08:00
tracer-ysyx
64668c14a7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:33:15  up  22:08,  2 users,  load average: 0.99, 0.63, 0.74
2024-03-26 12:33:15 +08:00
tracer-ysyx
7f5dcd2775 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:32:37  up  22:08,  2 users,  load average: 0.88, 0.57, 0.72
2024-03-26 12:32:37 +08:00
tracer-ysyx
a351534d47 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:32:36  up  22:08,  2 users,  load average: 0.87, 0.56, 0.72
2024-03-26 12:32:36 +08:00
tracer-ysyx
e7e5346b78 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:32:27  up  22:08,  2 users,  load average: 0.69, 0.52, 0.71
2024-03-26 12:32:27 +08:00
tracer-ysyx
eff6d2299f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:31:46  up  22:07,  2 users,  load average: 0.48, 0.49, 0.71
2024-03-26 12:31:46 +08:00
tracer-ysyx
6f06bc60c7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:30:38  up  22:06,  2 users,  load average: 0.38, 0.44, 0.71
2024-03-26 12:30:38 +08:00
tracer-ysyx
fd57268a56 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:30:37  up  22:06,  2 users,  load average: 0.42, 0.45, 0.71
2024-03-26 12:30:37 +08:00
tracer-ysyx
2b11bd5800 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:29:17  up  22:04,  2 users,  load average: 0.29, 0.43, 0.73
2024-03-26 12:29:17 +08:00
tracer-ysyx
9b63b2a8a0 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:29:05  up  22:04,  2 users,  load average: 0.28, 0.43, 0.73
2024-03-26 12:29:05 +08:00
tracer-ysyx
780a596a2e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:29:00  up  22:04,  2 users,  load average: 0.31, 0.44, 0.74
2024-03-26 12:29:00 +08:00
tracer-ysyx
5c89a7f11f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:28:22  up  22:04,  2 users,  load average: 0.37, 0.46, 0.76
2024-03-26 12:28:22 +08:00
tracer-ysyx
17c514fca5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:28:16  up  22:03,  2 users,  load average: 0.36, 0.46, 0.76
2024-03-26 12:28:16 +08:00
tracer-ysyx
5d03e68517 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:27:32  up  22:03,  2 users,  load average: 0.38, 0.47, 0.78
2024-03-26 12:27:32 +08:00
tracer-ysyx
25c54012d9 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:27:30  up  22:03,  2 users,  load average: 0.41, 0.48, 0.78
2024-03-26 12:27:30 +08:00
tracer-ysyx
e1fa3a6cb3 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:27:24  up  22:03,  2 users,  load average: 0.45, 0.49, 0.79
2024-03-26 12:27:24 +08:00
tracer-ysyx
352bc538ce > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:18:56  up  21:54,  2 users,  load average: 0.96, 0.67, 1.07
2024-03-26 12:18:56 +08:00
tracer-ysyx
2d9163c64a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:17:40  up  21:53,  2 users,  load average: 0.67, 0.56, 1.07
2024-03-26 12:17:40 +08:00
tracer-ysyx
c9d1eec2f2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:17:38  up  21:53,  2 users,  load average: 0.67, 0.56, 1.07
2024-03-26 12:17:38 +08:00
tracer-ysyx
651b40be10 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:16:33  up  21:52,  2 users,  load average: 0.26, 0.43, 1.06
2024-03-26 12:16:33 +08:00
tracer-ysyx
caab852207 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:16:31  up  21:52,  2 users,  load average: 0.29, 0.44, 1.07
2024-03-26 12:16:31 +08:00
tracer-ysyx
97a6d93bf0 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:13:41  up  21:49,  2 users,  load average: 0.46, 0.59, 1.24
2024-03-26 12:13:41 +08:00
tracer-ysyx
ec09d6ca46 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:13:04  up  21:48,  2 users,  load average: 0.38, 0.59, 1.26
2024-03-26 12:13:04 +08:00
tracer-ysyx
a50619438f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 12:12:02  up  21:47,  2 users,  load average: 0.54, 0.65, 1.33
2024-03-26 12:12:02 +08:00
tracer-ysyx
52573cf68e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 11:34:33  up  21:10,  2 users,  load average: 0.23, 0.63, 1.58
2024-03-26 11:34:33 +08:00
tracer-ysyx
c55e4e04af > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 11:34:30  up  21:10,  2 users,  load average: 0.25, 0.64, 1.59
2024-03-26 11:34:30 +08:00
tracer-ysyx
4db19ebd68 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 11:33:43  up  21:09,  2 users,  load average: 0.07, 0.67, 1.65
2024-03-26 11:33:43 +08:00
tracer-ysyx
d622cc047a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 11:25:34  up  21:01,  2 users,  load average: 0.82, 2.99, 2.74
2024-03-26 11:25:34 +08:00
tracer-ysyx
03afae61cb > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 11:25:24  up  21:01,  2 users,  load average: 0.78, 3.06, 2.76
2024-03-26 11:25:24 +08:00
tracer-ysyx
8a58dfc68a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 11:25:20  up  21:01,  2 users,  load average: 0.85, 3.11, 2.77
2024-03-26 11:25:20 +08:00
tracer-ysyx
38da9c425a > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  10:41:41  up  20:17,  2 users,  load average: 1.08, 0.60, 0.41
2024-03-26 10:41:41 +08:00
tracer-ysyx
16ff4fa42e > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  10:40:24  up  20:16,  2 users,  load average: 0.08, 0.17, 0.25
2024-03-26 10:40:24 +08:00
tracer-ysyx
327db2ba3c > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  10:24:52  up  20:00,  2 users,  load average: 1.86, 0.77, 0.35
2024-03-26 10:24:52 +08:00
tracer-ysyx
f9bd7e25b7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:49:53  up  11:25,  2 users,  load average: 0.82, 0.52, 0.43
2024-03-26 01:49:53 +08:00
tracer-ysyx
abc6769675 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:48:56  up  11:24,  2 users,  load average: 0.82, 0.46, 0.40
2024-03-26 01:48:56 +08:00
tracer-ysyx
4528e3bec3 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:48:48  up  11:24,  2 users,  load average: 0.69, 0.42, 0.39
2024-03-26 01:48:48 +08:00
tracer-ysyx
dc03efa59c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:48:27  up  11:24,  2 users,  load average: 0.73, 0.41, 0.39
2024-03-26 01:48:27 +08:00
tracer-ysyx
b2497342bf > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:27:24  up  11:03,  2 users,  load average: 2.06, 1.18, 0.75
2024-03-26 01:27:24 +08:00
tracer-ysyx
4287f22aa6 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:27:22  up  11:03,  2 users,  load average: 2.06, 1.18, 0.75
2024-03-26 01:27:22 +08:00
tracer-ysyx
c93e6e9692 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:26:58  up  11:02,  2 users,  load average: 2.23, 1.12, 0.72
2024-03-26 01:26:58 +08:00
tracer-ysyx
95ef6828ad > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:25:17  up  11:00,  2 users,  load average: 0.49, 0.54, 0.51
2024-03-26 01:25:17 +08:00
tracer-ysyx
3ebdcc39a4 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:21:07  up  10:56,  2 users,  load average: 0.57, 0.39, 0.45
2024-03-26 01:21:07 +08:00
tracer-ysyx
7328053915 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:18:37  up  10:54,  2 users,  load average: 0.25, 0.30, 0.44
2024-03-26 01:18:37 +08:00
tracer-ysyx
e444b091d6 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:06:55  up  10:42,  2 users,  load average: 0.42, 0.26, 0.58
2024-03-26 01:06:55 +08:00
tracer-ysyx
e048a483ec > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:03:23  up  10:39,  2 users,  load average: 0.22, 0.17, 0.65
2024-03-26 01:03:23 +08:00
tracer-ysyx
20030dc8d5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:03:00  up  10:38,  2 users,  load average: 0.20, 0.16, 0.66
2024-03-26 01:03:00 +08:00
tracer-ysyx
31ad681337 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:45:08  up 4 days  3:51,  2 users,  load average: 1.13, 0.84, 0.84
2024-03-24 16:45:08 +08:00
tracer-ysyx
f9d6e57afc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:45:06  up 4 days  3:51,  2 users,  load average: 1.14, 0.84, 0.84
2024-03-24 16:45:06 +08:00
tracer-ysyx
15b0be76c2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:44:50  up 4 days  3:50,  2 users,  load average: 0.87, 0.78, 0.82
2024-03-24 16:44:50 +08:00
tracer-ysyx
a4cdd926ae > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:44:49  up 4 days  3:50,  2 users,  load average: 0.87, 0.78, 0.82
2024-03-24 16:44:49 +08:00
tracer-ysyx
e974d8c439 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:28:09  up 4 days  3:34,  2 users,  load average: 0.70, 0.81, 0.91
2024-03-24 16:28:09 +08:00
tracer-ysyx
f9545ba88c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:27:18  up 4 days  3:33,  2 users,  load average: 0.57, 0.84, 0.93
2024-03-24 16:27:18 +08:00
tracer-ysyx
d08c2860da > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:26:21  up 4 days  3:32,  2 users,  load average: 0.85, 0.91, 0.95
2024-03-24 16:26:21 +08:00
tracer-ysyx
a210694e82 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:07:06  up 4 days  3:13,  2 users,  load average: 1.07, 1.12, 1.07
2024-03-24 16:07:06 +08:00
tracer-ysyx
5e1371248c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 10:18:49  up 3 days 21:24,  2 users,  load average: 0.29, 0.52, 0.67
2024-03-24 10:18:49 +08:00
tracer-ysyx
1a65ceab6f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 10:13:16  up 3 days 21:19,  2 users,  load average: 0.96, 0.91, 0.82
2024-03-24 10:13:16 +08:00
tracer-ysyx
27304ca30a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 10:13:11  up 3 days 21:19,  2 users,  load average: 0.95, 0.91, 0.82
2024-03-24 10:13:11 +08:00
tracer-ysyx
92c8717920 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 10:12:20  up 3 days 21:18,  2 users,  load average: 0.59, 0.86, 0.79
2024-03-24 10:12:20 +08:00
tracer-ysyx
8a61ac176b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 10:12:20  up 3 days 21:18,  2 users,  load average: 0.59, 0.86, 0.79
2024-03-24 10:12:20 +08:00
tracer-ysyx
f970600a35 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 10:11:59  up 3 days 21:17,  2 users,  load average: 0.74, 0.90, 0.80
2024-03-24 10:11:59 +08:00
tracer-ysyx
f2c726e647 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 10:10:28  up 3 days 21:16,  2 users,  load average: 1.44, 1.06, 0.84
2024-03-24 10:10:28 +08:00
tracer-ysyx
874f1d92f6 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 20:29:01  up   7:34,  2 users,  load average: 0.73, 0.76, 0.91
2024-03-20 20:29:01 +08:00
tracer-ysyx
28708f3774 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 20:28:19  up   7:34,  2 users,  load average: 0.70, 0.75, 0.91
2024-03-20 20:28:19 +08:00
tracer-ysyx
f64392eedc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 20:24:59  up   7:30,  2 users,  load average: 0.45, 0.71, 0.94
2024-03-20 20:24:59 +08:00
tracer-ysyx
00898f6264 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 20:11:10  up   7:17,  2 users,  load average: 2.79, 1.85, 1.36
2024-03-20 20:11:10 +08:00
tracer-ysyx
94f7a9282a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 20:06:26  up   7:12,  2 users,  load average: 1.76, 1.67, 1.21
2024-03-20 20:06:26 +08:00
tracer-ysyx
694ddb57dc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 20:06:14  up   7:12,  2 users,  load average: 1.98, 1.70, 1.22
2024-03-20 20:06:14 +08:00
tracer-ysyx
9b3a6fd757 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 20:02:36  up   7:08,  2 users,  load average: 1.33, 1.37, 0.99
2024-03-20 20:02:36 +08:00
tracer-ysyx
dcef7521f7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 20:02:19  up   7:08,  2 users,  load average: 1.52, 1.41, 1.00
2024-03-20 20:02:19 +08:00
tracer-ysyx
ee8bd50401 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:59:46  up   7:05,  2 users,  load average: 1.20, 1.04, 0.81
2024-03-20 19:59:46 +08:00
tracer-ysyx
8e0d229f49 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:46:03  up   6:51,  2 users,  load average: 0.76, 0.68, 0.61
2024-03-20 19:46:03 +08:00
tracer-ysyx
3358125504 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:33:02  up   6:38,  2 users,  load average: 1.35, 0.89, 0.60
2024-03-20 19:33:02 +08:00
tracer-ysyx
f6630958b1 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:32:28  up   6:38,  2 users,  load average: 1.63, 0.87, 0.59
2024-03-20 19:32:28 +08:00
tracer-ysyx
6ee929f0c7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:31:54  up   6:37,  2 users,  load average: 1.05, 0.72, 0.53
2024-03-20 19:31:54 +08:00
tracer-ysyx
551f0b9b13 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:31:36  up   6:37,  2 users,  load average: 0.99, 0.69, 0.52
2024-03-20 19:31:36 +08:00
tracer-ysyx
59a4dfab7f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:31:14  up   6:37,  2 users,  load average: 0.61, 0.60, 0.48
2024-03-20 19:31:14 +08:00
tracer-ysyx
ad8e7430c3 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:31:05  up   6:37,  2 users,  load average: 0.72, 0.62, 0.49
2024-03-20 19:31:05 +08:00
tracer-ysyx
728fa8052d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:29:51  up   6:35,  2 users,  load average: 0.51, 0.55, 0.46
2024-03-20 19:29:51 +08:00
tracer-ysyx
173d04977c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:24:14  up   6:30,  2 users,  load average: 0.48, 0.31, 0.36
2024-03-20 19:24:14 +08:00
tracer-ysyx
4c3201b8e7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:23:36  up   6:29,  2 users,  load average: 0.48, 0.28, 0.35
2024-03-20 19:23:36 +08:00
tracer-ysyx
aa07f79378 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:22:38  up   6:28,  2 users,  load average: 0.07, 0.19, 0.33
2024-03-20 19:22:38 +08:00
tracer-ysyx
53efdfc15c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:22:10  up   6:28,  2 users,  load average: 0.12, 0.21, 0.34
2024-03-20 19:22:10 +08:00
tracer-ysyx
4ea59e6e01 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:20:47  up   6:26,  2 users,  load average: 0.19, 0.23, 0.35
2024-03-20 19:20:47 +08:00
tracer-ysyx
5bae31990f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:20:11  up   6:26,  2 users,  load average: 0.27, 0.25, 0.37
2024-03-20 19:20:11 +08:00
tracer-ysyx
f42498d96d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:16:34  up   6:22,  2 users,  load average: 0.13, 0.35, 0.43
2024-03-20 19:16:34 +08:00
tracer-ysyx
01001c930b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:16:13  up   6:22,  2 users,  load average: 0.18, 0.37, 0.44
2024-03-20 19:16:13 +08:00
tracer-ysyx
ecbb5c8392 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:14:25  up   6:20,  2 users,  load average: 0.23, 0.46, 0.48
2024-03-20 19:14:25 +08:00
tracer-ysyx
3204c2a442 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:13:53  up   6:19,  2 users,  load average: 0.39, 0.51, 0.50
2024-03-20 19:13:53 +08:00
tracer-ysyx
a594f38f05 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:13:01  up   6:18,  2 users,  load average: 0.29, 0.52, 0.50
2024-03-20 19:13:01 +08:00
tracer-ysyx
21aa685e1b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:12:34  up   6:18,  2 users,  load average: 0.44, 0.57, 0.52
2024-03-20 19:12:34 +08:00
tracer-ysyx
7bda549dd8 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:11:58  up   6:17,  2 users,  load average: 0.43, 0.59, 0.52
2024-03-20 19:11:58 +08:00
tracer-ysyx
0eeabef770 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 19:11:56  up   6:17,  2 users,  load average: 0.47, 0.60, 0.53
2024-03-20 19:11:56 +08:00
tracer-ysyx
4293898e4b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:53:13  up   5:59,  2 users,  load average: 0.27, 0.46, 0.48
2024-03-20 18:53:13 +08:00
tracer-ysyx
e05da52cbe > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:52:42  up   5:58,  2 users,  load average: 0.34, 0.49, 0.49
2024-03-20 18:52:42 +08:00
tracer-ysyx
70f9c349e3 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:50:27  up   5:56,  2 users,  load average: 0.61, 0.62, 0.53
2024-03-20 18:50:27 +08:00
tracer-ysyx
68da982554 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:49:29  up   5:55,  2 users,  load average: 0.95, 0.66, 0.53
2024-03-20 18:49:29 +08:00
tracer-ysyx
d9fa92afb9 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:49:18  up   5:55,  2 users,  load average: 1.04, 0.66, 0.53
2024-03-20 18:49:18 +08:00
tracer-ysyx
cd53fb04d5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:48:54  up   5:54,  2 users,  load average: 0.97, 0.63, 0.52
2024-03-20 18:48:54 +08:00
tracer-ysyx
8988980966 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:47:11  up   5:53,  2 users,  load average: 0.48, 0.46, 0.46
2024-03-20 18:47:11 +08:00
tracer-ysyx
bcf8ec87ca > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:51:49  up   4:57,  2 users,  load average: 0.75, 0.79, 0.60
2024-03-20 17:51:49 +08:00
tracer-ysyx
46b603e572 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:51:31  up   4:57,  2 users,  load average: 0.76, 0.79, 0.59
2024-03-20 17:51:31 +08:00
tracer-ysyx
5eb7785adf > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:50:37  up   4:56,  2 users,  load average: 0.87, 0.84, 0.60
2024-03-20 17:50:37 +08:00
tracer-ysyx
48786c9988 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:39:12  up   4:45,  2 users,  load average: 0.57, 0.32, 0.26
2024-03-20 17:39:12 +08:00
tracer-ysyx
db6a9fdc5f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:39:00  up   4:44,  2 users,  load average: 0.54, 0.30, 0.26
2024-03-20 17:39:00 +08:00
tracer-ysyx
5aee73e34d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:38:26  up   4:44,  2 users,  load average: 0.67, 0.30, 0.25
2024-03-20 17:38:26 +08:00
tracer-ysyx
be9ae806d9 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:30:18  up   4:36,  2 users,  load average: 0.34, 0.28, 0.24
2024-03-20 17:30:18 +08:00
tracer-ysyx
c0160faa42 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:30:12  up   4:36,  2 users,  load average: 0.38, 0.28, 0.25
2024-03-20 17:30:12 +08:00
tracer-ysyx
8e03d125ce > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:12:38  up   3:18,  2 users,  load average: 0.31, 0.30, 0.31
2024-03-20 16:12:38 +08:00
tracer-ysyx
12b32de52d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:10:40  up   3:16,  2 users,  load average: 0.18, 0.24, 0.29
2024-03-20 16:10:40 +08:00
tracer-ysyx
417952199a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:10:10  up   3:16,  2 users,  load average: 0.30, 0.27, 0.30
2024-03-20 16:10:10 +08:00
tracer-ysyx
bcc8fc731d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:08:38  up   3:14,  2 users,  load average: 0.35, 0.25, 0.31
2024-03-20 16:08:38 +08:00
tracer-ysyx
c7ce5a2d5b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:06:22  up   3:12,  2 users,  load average: 0.70, 0.25, 0.32
2024-03-20 16:06:22 +08:00
tracer-ysyx
6602d1d7aa > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:06:04  up   3:12,  2 users,  load average: 0.00, 0.11, 0.28
2024-03-20 16:06:04 +08:00
tracer-ysyx
febe065b0f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:53:09  up   2:59,  2 users,  load average: 0.33, 0.50, 0.44
2024-03-20 15:53:09 +08:00
tracer-ysyx
15c0ad2cd5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:49:37  up   2:55,  2 users,  load average: 0.34, 0.58, 0.45
2024-03-20 15:49:37 +08:00
tracer-ysyx
d6b293da6f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:48:50  up   2:54,  2 users,  load average: 0.49, 0.64, 0.46
2024-03-20 15:48:50 +08:00
tracer-ysyx
c6cc74192c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:47:34  up   2:53,  2 users,  load average: 1.21, 0.78, 0.49
2024-03-20 15:47:34 +08:00
tracer-ysyx
3bbd5cfbaf > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:47:10  up   2:53,  2 users,  load average: 1.05, 0.73, 0.47
2024-03-20 15:47:10 +08:00
tracer-ysyx
6fd3fa90bf > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:46:59  up   2:52,  2 users,  load average: 1.25, 0.75, 0.47
2024-03-20 15:46:59 +08:00
tracer-ysyx
8f686c59d9 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:46:42  up   2:52,  2 users,  load average: 1.00, 0.68, 0.44
2024-03-20 15:46:42 +08:00
tracer-ysyx
db76d96f05 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:45:31  up   2:51,  2 users,  load average: 0.99, 0.57, 0.39
2024-03-20 15:45:31 +08:00
tracer-ysyx
d4439a279b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:44:31  up   2:50,  2 users,  load average: 0.69, 0.45, 0.34
2024-03-20 15:44:31 +08:00
tracer-ysyx
b350c43d42 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 14:58:31  up   2:04,  2 users,  load average: 0.52, 0.53, 0.61
2024-03-20 14:58:31 +08:00
tracer-ysyx
a9e03f6461 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 14:57:04  up   2:03,  2 users,  load average: 0.46, 0.55, 0.63
2024-03-20 14:57:04 +08:00
tracer-ysyx
3cc2e29178 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 14:56:26  up   2:02,  2 users,  load average: 0.65, 0.59, 0.65
2024-03-20 14:56:26 +08:00
tracer-ysyx
1b44697a67 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 14:52:13  up   1:58,  2 users,  load average: 0.83, 0.58, 0.67
2024-03-20 14:52:13 +08:00
tracer-ysyx
d62e53e8ad > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 14:48:51  up   1:54,  2 users,  load average: 0.39, 0.57, 0.71
2024-03-20 14:48:51 +08:00
tracer-ysyx
fd7c8c2700 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 14:48:31  up   1:54,  2 users,  load average: 0.43, 0.59, 0.72
2024-03-20 14:48:31 +08:00
tracer-ysyx
a1de9b1656 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 14:47:31  up   1:53,  2 users,  load average: 0.92, 0.69, 0.75
2024-03-20 14:47:31 +08:00
tracer-ysyx
758e93e83e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 14:47:31  up   1:53,  2 users,  load average: 0.92, 0.69, 0.75
2024-03-20 14:47:31 +08:00
tracer-ysyx
add808138c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 14:47:29  up   1:53,  2 users,  load average: 0.92, 0.69, 0.75
2024-03-20 14:47:29 +08:00
tracer-ysyx
49649b0db8 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 14:34:44  up   1:40,  2 users,  load average: 1.30, 0.89, 1.00
2024-03-20 14:34:44 +08:00
tracer-ysyx
de4c8730af > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 14:34:22  up   1:40,  2 users,  load average: 0.73, 0.75, 0.96
2024-03-20 14:34:22 +08:00
tracer-ysyx
a2b9777ea4 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 13:24:29  up   0:22,  2 users,  load average: 0.66, 0.61, 0.47
2024-03-17 13:24:29 +08:00
tracer-ysyx
baade9046d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 13:13:37  up   0:11,  2 users,  load average: 0.69, 0.63, 0.38
2024-03-17 13:13:37 +08:00
tracer-ysyx
efacd975fc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 13:13:26  up   0:11,  2 users,  load average: 0.73, 0.63, 0.38
2024-03-17 13:13:26 +08:00
tracer-ysyx
ce5e02c7c8 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 13:13:11  up   0:11,  2 users,  load average: 0.85, 0.65, 0.38
2024-03-17 13:13:11 +08:00
tracer-ysyx
c102a89310 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 13:11:57  up   0:09,  2 users,  load average: 0.88, 0.54, 0.32
2024-03-17 13:11:57 +08:00
tracer-ysyx
abd418c462 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 13:11:45  up   0:09,  2 users,  load average: 0.94, 0.55, 0.32
2024-03-17 13:11:45 +08:00
tracer-ysyx
15f2fa649c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 13:11:29  up   0:09,  2 users,  load average: 0.74, 0.49, 0.30
2024-03-17 13:11:29 +08:00
tracer-ysyx
9eaa04865c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 13:09:35  up   0:07,  2 users,  load average: 0.33, 0.41, 0.26
2024-03-17 13:09:35 +08:00
tracer-ysyx
f49c12e752 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 13:09:27  up   0:07,  2 users,  load average: 0.39, 0.43, 0.26
2024-03-17 13:09:27 +08:00
tracer-ysyx
58254afb1c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 13:08:15  up   0:06,  2 users,  load average: 0.31, 0.45, 0.25
2024-03-17 13:08:15 +08:00
tracer-ysyx
32de3d30e5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 13:06:38  up   0:04,  2 users,  load average: 0.63, 0.54, 0.26
2024-03-17 13:06:38 +08:00
tracer-ysyx
f186e14fb0 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 13:05:23  up   0:03,  2 users,  load average: 0.91, 0.59, 0.25
2024-03-17 13:05:23 +08:00
tracer-ysyx
8513980668 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 00:54:50  up  10:30,  2 users,  load average: 0.69, 0.65, 0.56
2024-03-17 00:54:50 +08:00
tracer-ysyx
a20136aec5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 00:40:48  up  10:16,  2 users,  load average: 0.51, 0.62, 0.58
2024-03-17 00:40:48 +08:00
tracer-ysyx
39f0f75bf4 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 00:39:11  up  10:14,  2 users,  load average: 0.97, 0.70, 0.60
2024-03-17 00:39:11 +08:00
tracer-ysyx
6a279a4429 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 00:17:24  up   9:53,  2 users,  load average: 0.75, 0.43, 0.39
2024-03-17 00:17:24 +08:00
tracer-ysyx
a62105b482 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 00:17:13  up   9:52,  2 users,  load average: 0.88, 0.45, 0.39
2024-03-17 00:17:13 +08:00
tracer-ysyx
c951843582 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 00:14:55  up   9:50,  2 users,  load average: 0.36, 0.18, 0.31
2024-03-17 00:14:55 +08:00
tracer-ysyx
14e93a47cc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 00:26:22  up 2 days 14:02,  2 users,  load average: 0.99, 0.42, 0.33
2024-03-16 00:26:22 +08:00
tracer-ysyx
1b7dd394fe > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 00:25:34  up 2 days 14:01,  2 users,  load average: 0.46, 0.24, 0.27
2024-03-16 00:25:34 +08:00
tracer-ysyx
fd754ceb7e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 00:07:43  up 2 days 13:43,  2 users,  load average: 1.35, 0.75, 0.46
2024-03-16 00:07:43 +08:00
tracer-ysyx
ecff930585 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:07:28  up 2 days  4:43,  2 users,  load average: 0.35, 0.60, 0.53
2024-03-15 15:07:28 +08:00
tracer-ysyx
7f3cbe0b33 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 14:40:21  up 2 days  4:16,  2 users,  load average: 0.50, 0.32, 0.29
2024-03-15 14:40:21 +08:00
tracer-ysyx
0df2e277fb > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 14:34:01  up 2 days  4:10,  2 users,  load average: 0.02, 0.25, 0.30
2024-03-15 14:34:01 +08:00
tracer-ysyx
cbb58f2265 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:45:03  up 1 day  8:21,  2 users,  load average: 0.31, 0.40, 0.47
2024-03-14 18:45:03 +08:00
tracer-ysyx
16d4aed3fb > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:44:16  up 1 day  8:20,  2 users,  load average: 0.22, 0.41, 0.47
2024-03-14 18:44:16 +08:00
tracer-ysyx
1ddee6ae9b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:41:36  up 1 day  8:17,  2 users,  load average: 0.85, 0.56, 0.53
2024-03-14 18:41:36 +08:00
tracer-ysyx
32432b70b7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:41:20  up 1 day  8:17,  2 users,  load average: 0.90, 0.55, 0.53
2024-03-14 18:41:20 +08:00
tracer-ysyx
2240a685e1 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:39:34  up 1 day  8:15,  2 users,  load average: 0.40, 0.49, 0.51
2024-03-14 18:39:34 +08:00
tracer-ysyx
3ad4ab8c9b > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:38:43  up 1 day  8:14,  2 users,  load average: 0.73, 0.56, 0.54
2024-03-14 18:38:43 +08:00
tracer-ysyx
596f9debf2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:38:42  up 1 day  8:14,  2 users,  load average: 0.73, 0.56, 0.54
2024-03-14 18:38:42 +08:00
tracer-ysyx
5d8572b1db > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:33:40  up 1 day  8:09,  2 users,  load average: 1.15, 0.77, 0.60
2024-03-14 18:33:40 +08:00
tracer-ysyx
ea11bd2425 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:32:05  up 1 day  8:08,  2 users,  load average: 0.67, 0.69, 0.56
2024-03-14 18:32:05 +08:00
tracer-ysyx
91ea8de2b4 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:31:52  up 1 day  8:08,  2 users,  load average: 0.52, 0.66, 0.55
2024-03-14 18:31:52 +08:00
tracer-ysyx
6aa4b4b8c4 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:29:17  up 1 day  8:05,  2 users,  load average: 1.21, 0.79, 0.57
2024-03-14 18:29:17 +08:00
tracer-ysyx
9d26428a28 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:29:09  up 1 day  8:05,  2 users,  load average: 1.34, 0.80, 0.57
2024-03-14 18:29:09 +08:00
tracer-ysyx
8688870aef > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:27:52  up 1 day  8:04,  2 users,  load average: 0.78, 0.60, 0.50
2024-03-14 18:27:52 +08:00
tracer-ysyx
3cee51c298 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:27:38  up 1 day  8:03,  2 users,  load average: 0.80, 0.59, 0.49
2024-03-14 18:27:38 +08:00
tracer-ysyx
8ef51c8604 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:27:03  up 1 day  8:03,  2 users,  load average: 0.83, 0.58, 0.49
2024-03-14 18:27:03 +08:00
tracer-ysyx
9a4b70d1f3 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:25:43  up 1 day  8:01,  2 users,  load average: 0.30, 0.45, 0.44
2024-03-14 18:25:43 +08:00
tracer-ysyx
2047fe7e65 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:24:07  up 1 day  8:00,  2 users,  load average: 0.83, 0.56, 0.48
2024-03-14 18:24:07 +08:00
tracer-ysyx
26f668141f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:55:00  up  15:31,  2 users,  load average: 0.30, 0.37, 0.41
2024-03-14 01:55:00 +08:00
tracer-ysyx
2f1f38a359 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 01:52:09  up  15:28,  2 users,  load average: 0.54, 0.46, 0.44
2024-03-14 01:52:09 +08:00
tracer-ysyx
061167cd10 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:55:11  up   8:31,  2 users,  load average: 1.08, 0.84, 0.66
2024-03-13 18:55:11 +08:00
tracer-ysyx
e65b97f4ec > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:50:12  up   8:26,  2 users,  load average: 0.61, 0.60, 0.54
2024-03-13 18:50:12 +08:00
tracer-ysyx
b037d4897c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:49:50  up   8:25,  2 users,  load average: 0.86, 0.64, 0.55
2024-03-13 18:49:50 +08:00
tracer-ysyx
cc2dffeac7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:11:07  up   7:47,  2 users,  load average: 0.44, 0.58, 0.55
2024-03-13 18:11:07 +08:00
tracer-ysyx
7d10fc3552 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:10:52  up   7:47,  2 users,  load average: 0.27, 0.55, 0.54
2024-03-13 18:10:52 +08:00
tracer-ysyx
80e26a574b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:10:09  up   7:46,  2 users,  load average: 0.58, 0.65, 0.58
2024-03-13 18:10:09 +08:00
tracer-ysyx
5a5635e11f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:07:28  up   7:43,  2 users,  load average: 0.63, 0.65, 0.57
2024-03-13 18:07:28 +08:00
tracer-ysyx
ff3ebb9ac2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:07:05  up   7:43,  2 users,  load average: 0.87, 0.69, 0.58
2024-03-13 18:07:05 +08:00
tracer-ysyx
40b3e285af > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:05:22  up   7:41,  2 users,  load average: 0.41, 0.58, 0.53
2024-03-13 18:05:22 +08:00
tracer-ysyx
053f86020c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:04:39  up   7:40,  2 users,  load average: 0.43, 0.60, 0.54
2024-03-13 18:04:39 +08:00
tracer-ysyx
696583b943 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:03:41  up   7:39,  2 users,  load average: 0.78, 0.69, 0.56
2024-03-13 18:03:41 +08:00
tracer-ysyx
95aebe191e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:03:12  up   7:39,  2 users,  load average: 0.78, 0.67, 0.55
2024-03-13 18:03:12 +08:00
tracer-ysyx
3a5bf0518a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 18:00:44  up   7:36,  2 users,  load average: 0.68, 0.44, 0.47
2024-03-13 18:00:44 +08:00
tracer-ysyx
15f2b5674f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:59:20  up   7:35,  2 users,  load average: 0.61, 0.38, 0.46
2024-03-13 17:59:20 +08:00
tracer-ysyx
e0e14d7ca4 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:57:07  up   7:33,  2 users,  load average: 0.22, 0.37, 0.47
2024-03-13 17:57:07 +08:00
tracer-ysyx
1f1ec6654b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:54:27  up   7:30,  2 users,  load average: 0.47, 0.54, 0.54
2024-03-13 17:54:27 +08:00
tracer-ysyx
47dedcbb43 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:53:22  up   7:29,  2 users,  load average: 0.42, 0.54, 0.55
2024-03-13 17:53:22 +08:00
tracer-ysyx
12b18e77fd > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:50:21  up   7:26,  2 users,  load average: 0.39, 0.50, 0.54
2024-03-13 17:50:21 +08:00
tracer-ysyx
e391bdd5df > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:21:28  up   6:57,  2 users,  load average: 0.57, 0.48, 0.45
2024-03-13 17:21:28 +08:00
tracer-ysyx
5cf348aff6 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:21:13  up   6:57,  2 users,  load average: 0.43, 0.45, 0.45
2024-03-13 17:21:13 +08:00
tracer-ysyx
5608d9ecfc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:08:36  up   6:44,  2 users,  load average: 0.37, 0.30, 0.42
2024-03-13 17:08:36 +08:00
tracer-ysyx
f147be9b5a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:08:13  up   6:44,  2 users,  load average: 0.34, 0.29, 0.42
2024-03-13 17:08:13 +08:00
tracer-ysyx
ed8cd21c75 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:04:10  up   6:40,  2 users,  load average: 0.24, 0.29, 0.46
2024-03-13 17:04:10 +08:00
tracer-ysyx
9c69044641 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:03:19  up   6:39,  2 users,  load average: 0.10, 0.28, 0.47
2024-03-13 17:03:19 +08:00
tracer-ysyx
aa7b91b900 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 17:01:04  up   6:37,  2 users,  load average: 0.28, 0.37, 0.53
2024-03-13 17:01:04 +08:00
tracer-ysyx
802fcb0846 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:14:37  up   5:50,  2 users,  load average: 0.41, 0.62, 0.54
2024-03-13 16:14:37 +08:00
tracer-ysyx
67a6ccdb6b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:13:43  up   5:49,  2 users,  load average: 0.57, 0.69, 0.56
2024-03-13 16:13:43 +08:00
tracer-ysyx
f1ade93f9a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:11:34  up   5:47,  2 users,  load average: 0.51, 0.72, 0.55
2024-03-13 16:11:34 +08:00
tracer-ysyx
c34f132985 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:10:36  up   5:46,  2 users,  load average: 0.80, 0.80, 0.57
2024-03-13 16:10:36 +08:00
tracer-ysyx
bdd1069c6e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:02:50  up   5:38,  2 users,  load average: 0.90, 0.50, 0.38
2024-03-13 16:02:50 +08:00
tracer-ysyx
0f6bc5ab08 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:01:42  up   5:37,  2 users,  load average: 0.39, 0.36, 0.33
2024-03-13 16:01:42 +08:00
tracer-ysyx
7e1535e3ba > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:01:32  up   5:37,  2 users,  load average: 0.46, 0.37, 0.33
2024-03-13 16:01:32 +08:00
tracer-ysyx
2a65951bdb > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 16:01:23  up   5:37,  2 users,  load average: 0.55, 0.39, 0.34
2024-03-13 16:01:23 +08:00
tracer-ysyx
a9eaba1ffa > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:47:38  up   5:23,  2 users,  load average: 0.30, 0.43, 0.44
2024-03-13 15:47:38 +08:00
tracer-ysyx
f79f430acc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:47:28  up   5:23,  2 users,  load average: 0.26, 0.43, 0.44
2024-03-13 15:47:28 +08:00
tracer-ysyx
08e1837cbe > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:46:28  up   5:22,  2 users,  load average: 0.44, 0.49, 0.45
2024-03-13 15:46:28 +08:00
tracer-ysyx
58985894f6 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:42:07  up   5:18,  2 users,  load average: 0.69, 0.52, 0.45
2024-03-13 15:42:07 +08:00
tracer-ysyx
18d33c363b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 15:34:03  up   5:10,  2 users,  load average: 0.44, 0.29, 0.40
2024-03-13 15:34:03 +08:00
tracer-ysyx
b5f076e957 > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:10:06  up   3:46,  2 users,  load average: 2.11, 0.94, 0.94
2024-03-13 14:10:06 +08:00
tracer-ysyx
020659b74e > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:09:40  up   3:45,  2 users,  load average: 1.36, 0.71, 0.86
2024-03-13 14:09:40 +08:00
tracer-ysyx
2c591550f7 > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:09:24  up   3:45,  2 users,  load average: 1.43, 0.67, 0.85
2024-03-13 14:09:24 +08:00
tracer-ysyx
3c476f0a57 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:08:47  up   3:44,  2 users,  load average: 0.32, 0.38, 0.77
2024-03-13 14:08:47 +08:00
tracer-ysyx
dd22b882f8 > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  13:41:31  up   3:17,  2 users,  load average: 2.47, 2.17, 1.65
2024-03-13 13:41:31 +08:00
tracer-ysyx
2f6b381c9d > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  13:38:28  up   3:14,  2 users,  load average: 4.33, 2.50, 1.64
2024-03-13 13:38:28 +08:00
tracer-ysyx
54c8243167 > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  13:35:29  up   3:11,  2 users,  load average: 2.89, 1.62, 1.26
2024-03-13 13:35:29 +08:00
tracer-ysyx
6be0953168 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  13:34:46  up   3:10,  2 users,  load average: 0.77, 1.10, 1.08
2024-03-13 13:34:46 +08:00
tracer-ysyx
545c64c479 > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  13:31:24  up   3:07,  2 users,  load average: 2.36, 1.52, 1.18
2024-03-13 13:31:24 +08:00
tracer-ysyx
3fc7b061a9 > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  12:01:11  up   1:37,  2 users,  load average: 1.69, 0.97, 0.90
2024-03-13 12:01:11 +08:00
tracer-ysyx
2688683069 > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:58:21  up   1:34,  2 users,  load average: 0.75, 0.76, 0.85
2024-03-13 11:58:21 +08:00
tracer-ysyx
a7be72f328 > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:57:45  up   1:33,  2 users,  load average: 0.89, 0.78, 0.86
2024-03-13 11:57:45 +08:00
tracer-ysyx
3d298ca442 > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:56:57  up   1:33,  2 users,  load average: 0.99, 0.78, 0.86
2024-03-13 11:56:57 +08:00
tracer-ysyx
3e3ad2ce06 > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:54:44  up   1:30,  2 users,  load average: 0.58, 0.75, 0.87
2024-03-13 11:54:44 +08:00
tracer-ysyx
a5c273ead8 > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:47:01  up   1:23,  2 users,  load average: 2.51, 1.51, 1.08
2024-03-13 11:47:01 +08:00
tracer-ysyx
efcfef915a > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:46:30  up   1:22,  2 users,  load average: 1.63, 1.23, 0.98
2024-03-13 11:46:30 +08:00
tracer-ysyx
b0793d3253 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:43:44  up   1:19,  2 users,  load average: 0.71, 0.92, 0.84
2024-03-13 11:43:44 +08:00
tracer-ysyx
4cc3da1f37 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:42:19  up   1:18,  2 users,  load average: 0.85, 0.93, 0.83
2024-03-13 11:42:19 +08:00
tracer-ysyx
718f180414 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:41:47  up   1:17,  2 users,  load average: 0.84, 0.92, 0.82
2024-03-13 11:41:47 +08:00
tracer-ysyx
110d8d5288 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:40:05  up   1:16,  2 users,  load average: 0.90, 0.86, 0.79
2024-03-13 11:40:05 +08:00
tracer-ysyx
2a27cd71c7 > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:24:57  up   1:01,  2 users,  load average: 0.87, 0.77, 0.53
2024-03-13 11:24:57 +08:00
tracer-ysyx
b3b2495a7b > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:21:34  up   0:57,  2 users,  load average: 1.43, 0.78, 0.48
2024-03-13 11:21:34 +08:00
tracer-ysyx
e55b17585d > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:19:34  up   0:55,  2 users,  load average: 0.95, 0.58, 0.40
2024-03-13 11:19:34 +08:00
tracer-ysyx
02c7ed6726 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:18:25  up   0:54,  2 users,  load average: 0.49, 0.45, 0.34
2024-03-13 11:18:25 +08:00
tracer-ysyx
db7c0c436b > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  10:27:54  up   0:04,  2 users,  load average: 2.64, 1.77, 0.77
2024-03-13 10:27:54 +08:00
tracer-ysyx
93b264b448 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  10:27:17  up   0:03,  2 users,  load average: 1.91, 1.48, 0.63
2024-03-13 10:27:17 +08:00
tracer-ysyx
08638dad89 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  10:26:27  up   0:02,  2 users,  load average: 2.48, 1.43, 0.57
2024-03-13 10:26:27 +08:00
tracer-ysyx
677ae0bd70 > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  10:25:56  up   0:02,  2 users,  load average: 3.85, 1.55, 0.58
2024-03-13 10:25:56 +08:00
tracer-ysyx
6620c3759f > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  10:24:55  up   0:01,  2 users,  load average: 2.65, 0.86, 0.31
2024-03-13 10:24:55 +08:00
tracer-ysyx
d707535d60 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  10:19:52  up 4 days  1:10,  2 users,  load average: 3.05, 1.85, 1.16
2024-03-13 10:19:52 +08:00
tracer-ysyx
cb2ecd29ac > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  10:19:24  up 4 days  1:09,  2 users,  load average: 1.63, 1.47, 1.02
2024-03-13 10:19:24 +08:00
tracer-ysyx
aeed35376f > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  00:33:44  up 3 days 15:24,  2 users,  load average: 1.20, 0.75, 0.43
2024-03-13 00:33:44 +08:00
tracer-ysyx
0cfa9d2eef > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  21:41:17  up 3 days 12:31,  2 users,  load average: 2.32, 1.59, 1.36
2024-03-12 21:41:17 +08:00
tracer-ysyx
2214ed95ab > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  21:32:08  up 3 days 12:22,  2 users,  load average: 0.52, 0.81, 1.17
2024-03-12 21:32:08 +08:00
tracer-ysyx
79adeb8f63 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  21:31:26  up 3 days 12:21,  2 users,  load average: 0.25, 0.81, 1.19
2024-03-12 21:31:26 +08:00
tracer-ysyx
2914694445 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  21:19:07  up 3 days 12:09,  2 users,  load average: 1.25, 1.77, 1.50
2024-03-12 21:19:07 +08:00
tracer-ysyx
7d581b47eb > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  21:14:33  up 3 days 12:05,  2 users,  load average: 4.43, 2.70, 1.61
2024-03-12 21:14:33 +08:00
tracer-ysyx
810a743e9e > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:29:29  up 3 days  6:19,  2 users,  load average: 1.49, 1.76, 1.65
2024-03-12 15:29:29 +08:00
tracer-ysyx
0a0c9d8fcb > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:28:19  up 3 days  6:18,  2 users,  load average: 3.01, 2.00, 1.71
2024-03-12 15:28:19 +08:00
tracer-ysyx
10f946e359 > build_flow_VFlow
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:26:44  up 3 days  6:17,  2 users,  load average: 2.72, 1.80, 1.63
2024-03-12 15:26:44 +08:00
tracer-ysyx
dd809b6712 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:23:35  up 3 days  6:14,  2 users,  load average: 1.57, 1.47, 1.51
2024-03-12 15:23:35 +08:00
tracer-ysyx
a7d59b4d37 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:19:20  up 3 days  6:09,  2 users,  load average: 2.75, 1.76, 1.60
2024-03-12 15:19:20 +08:00
tracer-ysyx
0560c97eda > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:27:30  up 3 days  5:18,  2 users,  load average: 1.26, 1.28, 1.31
2024-03-12 14:27:30 +08:00
tracer-ysyx
b1db549157 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  23:40:19  up 2 days 14:30,  2 users,  load average: 0.68, 0.41, 0.61
2024-03-11 23:40:19 +08:00
tracer-ysyx
5eda7412d2 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  23:27:34  up 2 days 14:18,  2 users,  load average: 0.56, 0.80, 0.93
2024-03-11 23:27:34 +08:00
tracer-ysyx
8fc1f3838b > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  23:25:23  up 2 days 14:15,  2 users,  load average: 0.55, 0.82, 0.95
2024-03-11 23:25:23 +08:00
tracer-ysyx
ee22c1541d > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  19:57:48  up 2 days 10:48,  2 users,  load average: 1.32, 1.10, 0.90
2024-03-11 19:57:48 +08:00
tracer-ysyx
f7f19ed102 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  11:54:52  up 2 days  2:45,  2 users,  load average: 2.66, 1.60, 1.17
2024-03-11 11:54:52 +08:00
tracer-ysyx
705ee17b3c > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 09:57:03  up   0:47,  2 users,  load average: 0.33, 0.69, 0.87
2024-03-09 09:57:03 +08:00
tracer-ysyx
bc3fe23781 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 09:57:03  up   0:47,  2 users,  load average: 0.33, 0.69, 0.87
2024-03-09 09:57:03 +08:00
tracer-ysyx
109036a4ca > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 09:56:48  up   0:47,  2 users,  load average: 0.32, 0.71, 0.88
2024-03-09 09:56:48 +08:00
tracer-ysyx
e0fd5031ef > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 09:56:48  up   0:47,  2 users,  load average: 0.32, 0.71, 0.88
2024-03-09 09:56:48 +08:00
tracer-ysyx
342939e228 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 09:55:45  up   0:46,  2 users,  load average: 0.72, 0.87, 0.94
2024-03-09 09:55:45 +08:00
tracer-ysyx
b8bd6afa13 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 09:55:45  up   0:46,  2 users,  load average: 0.72, 0.87, 0.94
2024-03-09 09:55:45 +08:00
tracer-ysyx
291ab7d16a > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 09:55:11  up   0:45,  2 users,  load average: 0.63, 0.87, 0.94
2024-03-09 09:55:11 +08:00
tracer-ysyx
3d2e72309b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 09:55:11  up   0:45,  2 users,  load average: 0.63, 0.87, 0.94
2024-03-09 09:55:11 +08:00
tracer-ysyx
b03f203288 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 09:54:54  up   0:45,  2 users,  load average: 0.57, 0.88, 0.95
2024-03-09 09:54:54 +08:00
tracer-ysyx
a7be56aa0c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 09:50:15  up   0:40,  2 users,  load average: 0.37, 0.68, 0.88
2024-03-09 09:50:15 +08:00
tracer-ysyx
993b779854 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 09:44:34  up   0:35,  2 users,  load average: 0.52, 0.89, 0.99
2024-03-09 09:44:34 +08:00
tracer-ysyx
68747c7d81 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
 09:44:34  up   0:35,  2 users,  load average: 0.52, 0.89, 0.99
2024-03-09 09:44:34 +08:00
tracer-ysyx
c97e7271b7 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  09:35:05  up   0:25,  2 users,  load average: 1.25, 1.08, 0.87
2024-03-09 09:35:05 +08:00
tracer-ysyx
dee37632f1 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  09:31:03  up   0:21,  2 users,  load average: 1.72, 1.48, 0.91
2024-03-09 09:31:03 +08:00
tracer-ysyx
147014c8fa > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  09:30:12  up   0:20,  2 users,  load average: 2.09, 1.42, 0.86
2024-03-09 09:30:12 +08:00
tracer-ysyx
1e10f8a249 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  09:29:14  up   0:19,  2 users,  load average: 1.32, 1.09, 0.72
2024-03-09 09:29:14 +08:00
tracer-ysyx
3fde1fbac5 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  12:40:20  up   0:29,  2 users,  load average: 1.87, 1.19, 0.71
2024-03-08 12:40:20 +08:00
tracer-ysyx
9a15f87c5e > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  12:37:54  up   0:27,  2 users,  load average: 2.38, 0.71, 0.48
2024-03-08 12:37:54 +08:00
tracer-ysyx
9735a8a7bb > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  12:37:35  up   0:27,  2 users,  load average: 0.98, 0.35, 0.36
2024-03-08 12:37:35 +08:00
tracer-ysyx
16c8af7dea > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  18:17:51  up   3:37,  2 users,  load average: 1.58, 0.74, 0.51
2024-03-07 18:17:51 +08:00
tracer-ysyx
ed7fca5a97 > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:51:06  up   2:10,  2 users,  load average: 6.01, 2.10, 1.40
2024-03-07 16:51:06 +08:00
tracer-ysyx
a9bb46ecb5 > build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:51:06  up   2:10,  2 users,  load average: 6.01, 2.10, 1.40
2024-03-07 16:51:06 +08:00
tracer-ysyx
e3a7de2aff > build_npc_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:51:05  up   2:10,  2 users,  load average: 5.58, 1.95, 1.35
2024-03-07 16:51:05 +08:00
tracer-ysyx
5db88a889f > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:51:04  up   2:10,  2 users,  load average: 5.58, 1.95, 1.35
2024-03-07 16:51:04 +08:00
tracer-ysyx
6fe73897dc > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:50:42  up   2:09,  2 users,  load average: 2.36, 1.15, 1.08
2024-03-07 16:50:42 +08:00
tracer-ysyx
4b8916a817 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:50:32  up   2:09,  2 users,  load average: 0.88, 0.83, 0.98
2024-03-07 16:50:32 +08:00
tracer-ysyx
7f9a1da640 > build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:34:55  up   1:54,  2 users,  load average: 3.58, 2.22, 1.27
2024-03-07 16:34:55 +08:00
tracer-ysyx
c7e841e43a > build_npc_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:34:54  up   1:54,  2 users,  load average: 3.45, 2.17, 1.25
2024-03-07 16:34:54 +08:00
tracer-ysyx
4eb9acf89f > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:34:42  up   1:53,  2 users,  load average: 3.91, 2.21, 1.26
2024-03-07 16:34:42 +08:00
tracer-ysyx
f5cd1d2b06 > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:34:33  up   1:53,  2 users,  load average: 3.79, 2.14, 1.22
2024-03-07 16:34:33 +08:00
tracer-ysyx
ffd87d2746 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:34:12  up   1:53,  2 users,  load average: 3.90, 2.03, 1.17
2024-03-07 16:34:12 +08:00
tracer-ysyx
17095f0bab > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:34:12  up   1:53,  2 users,  load average: 3.90, 2.03, 1.17
2024-03-07 16:34:12 +08:00
tracer-ysyx
abe0575323 > build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:34:12  up   1:53,  2 users,  load average: 3.90, 2.03, 1.17
2024-03-07 16:34:12 +08:00
tracer-ysyx
f6f27cd93a > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:34:11  up   1:53,  2 users,  load average: 3.90, 2.03, 1.17
2024-03-07 16:34:11 +08:00
tracer-ysyx
5fec4a374d > build_npc_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:34:11  up   1:53,  2 users,  load average: 3.90, 2.03, 1.17
2024-03-07 16:34:11 +08:00
tracer-ysyx
281b9712d7 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:33:42  up   1:52,  2 users,  load average: 2.20, 1.60, 1.01
2024-03-07 16:33:42 +08:00
tracer-ysyx
de0efb4986 > build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:32:46  up   1:52,  2 users,  load average: 3.78, 1.70, 1.00
2024-03-07 16:32:46 +08:00
tracer-ysyx
91315b7379 > build_npc_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:30:50  up   1:50,  2 users,  load average: 2.24, 0.99, 0.73
2024-03-07 16:30:50 +08:00
tracer-ysyx
942666806e > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:03:07  up   1:22,  2 users,  load average: 1.35, 1.30, 1.26
2024-03-07 16:03:07 +08:00
tracer-ysyx
04a8a9c0ad > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  16:02:46  up   1:22,  2 users,  load average: 1.19, 1.27, 1.25
2024-03-07 16:02:46 +08:00
tracer-ysyx
ad58f7f164 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:58:39  up   1:17,  2 users,  load average: 3.61, 1.72, 1.35
2024-03-07 15:58:39 +08:00
tracer-ysyx
854c0aa973 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:58:23  up   1:17,  2 users,  load average: 2.16, 1.34, 1.23
2024-03-07 15:58:23 +08:00
tracer-ysyx
c751a89edf > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:58:09  up   1:17,  2 users,  load average: 1.48, 1.19, 1.17
2024-03-07 15:58:09 +08:00
tracer-ysyx
00065136ff > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:58:04  up   1:17,  2 users,  load average: 1.01, 1.09, 1.14
2024-03-07 15:58:04 +08:00
tracer-ysyx
9012266a88 > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:51:07  up   1:10,  2 users,  load average: 2.19, 1.31, 1.20
2024-03-07 15:51:07 +08:00
tracer-ysyx
36b8b41e25 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:50:35  up   1:09,  2 users,  load average: 1.25, 1.06, 1.12
2024-03-07 15:50:35 +08:00
tracer-ysyx
75b5e9dbf5 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:49:59  up   1:09,  2 users,  load average: 0.30, 0.86, 1.06
2024-03-07 15:49:59 +08:00
tracer-ysyx
c960901f15 > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:47:20  up   1:06,  2 users,  load average: 2.50, 1.41, 1.25
2024-03-07 15:47:20 +08:00
tracer-ysyx
78fcc445b8 > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:46:57  up   1:06,  2 users,  load average: 2.88, 1.39, 1.24
2024-03-07 15:46:57 +08:00
tracer-ysyx
fe2c36c628 > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:46:49  up   1:06,  2 users,  load average: 3.03, 1.37, 1.23
2024-03-07 15:46:49 +08:00
tracer-ysyx
438e11c601 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:46:27  up   1:05,  2 users,  load average: 0.60, 0.83, 1.05
2024-03-07 15:46:27 +08:00
tracer-ysyx
a684a2364a > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:46:21  up   1:05,  2 users,  load average: 0.39, 0.79, 1.04
2024-03-07 15:46:21 +08:00
tracer-ysyx
9b51d595a0 > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:39:15  up   0:58,  2 users,  load average: 2.27, 1.66, 1.34
2024-03-07 15:39:15 +08:00
tracer-ysyx
0bc9f8419d > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:38:52  up   0:58,  2 users,  load average: 1.58, 1.48, 1.28
2024-03-07 15:38:52 +08:00
tracer-ysyx
f4c22467e9 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:37:56  up   0:57,  2 users,  load average: 0.93, 1.33, 1.22
2024-03-07 15:37:56 +08:00
tracer-ysyx
9e9ad4d425 > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:35:25  up   0:54,  2 users,  load average: 2.13, 1.82, 1.34
2024-03-07 15:35:25 +08:00
tracer-ysyx
1852f1f209 > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:34:55  up   0:54,  2 users,  load average: 2.84, 1.90, 1.35
2024-03-07 15:34:55 +08:00
tracer-ysyx
08109959b6 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:34:14  up   0:53,  2 users,  load average: 1.68, 1.49, 1.19
2024-03-07 15:34:14 +08:00
tracer-ysyx
79050953dd > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:33:29  up   0:52,  2 users,  load average: 2.32, 1.51, 1.18
2024-03-07 15:33:29 +08:00
tracer-ysyx
cf2dff4704 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:33:05  up   0:52,  2 users,  load average: 2.88, 1.55, 1.19
2024-03-07 15:33:05 +08:00
tracer-ysyx
b6e39b5b4a > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:32:37  up   0:51,  2 users,  load average: 3.30, 1.47, 1.15
2024-03-07 15:32:37 +08:00
tracer-ysyx
dcae1fe183 > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:32:32  up   0:51,  2 users,  load average: 2.28, 1.24, 1.07
2024-03-07 15:32:32 +08:00
tracer-ysyx
9d3f6bb729 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:32:05  up   0:51,  2 users,  load average: 0.40, 0.85, 0.95
2024-03-07 15:32:05 +08:00
tracer-ysyx
292f06b86f > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:30:31  up   0:49,  2 users,  load average: 1.22, 1.10, 1.03
2024-03-07 15:30:31 +08:00
tracer-ysyx
f50d27c825 > build_npc_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:29:56  up   0:49,  2 users,  load average: 1.31, 1.10, 1.03
2024-03-07 15:29:56 +08:00
tracer-ysyx
57b2248f8a > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:28:27  up   0:47,  2 users,  load average: 1.10, 0.97, 0.99
2024-03-07 15:28:27 +08:00
tracer-ysyx
b8c611ba60 > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:25:12  up   0:44,  2 users,  load average: 1.14, 0.98, 1.00
2024-03-07 15:25:12 +08:00
tracer-ysyx
262b9d8763 > build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:24:52  up   0:44,  2 users,  load average: 1.19, 0.98, 1.00
2024-03-07 15:24:52 +08:00
tracer-ysyx
24804a1546 > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:24:31  up   0:43,  2 users,  load average: 1.27, 0.97, 1.00
2024-03-07 15:24:31 +08:00
tracer-ysyx
9123986262 > build_npc_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:24:13  up   0:43,  2 users,  load average: 1.38, 0.97, 1.00
2024-03-07 15:24:13 +08:00
tracer-ysyx
c3b4a2ed6e > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:23:41  up   0:42,  2 users,  load average: 0.82, 0.81, 0.94
2024-03-07 15:23:41 +08:00
tracer-ysyx
7a7cfb6d17 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:21:37  up   0:40,  2 users,  load average: 0.71, 0.69, 0.92
2024-03-07 15:21:37 +08:00
tracer-ysyx
08a1ad30c6 > build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:13:05  up   0:32,  2 users,  load average: 1.79, 1.38, 1.22
2024-03-07 15:13:05 +08:00
tracer-ysyx
636f93c369 > build_npc_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:13:04  up   0:32,  2 users,  load average: 1.78, 1.37, 1.22
2024-03-07 15:13:04 +08:00
tracer-ysyx
b2ecdf5879 > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:13:01  up   0:32,  2 users,  load average: 1.78, 1.37, 1.22
2024-03-07 15:13:01 +08:00
tracer-ysyx
5c26da28bd > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:12:40  up   0:31,  2 users,  load average: 1.06, 1.22, 1.17
2024-03-07 15:12:40 +08:00
tracer-ysyx
6a74c48731 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:05:37  up   0:24,  2 users,  load average: 1.62, 1.53, 1.17
2024-03-07 15:05:37 +08:00
tracer-ysyx
508ff1220c > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  15:03:54  up   0:23,  2 users,  load average: 1.82, 1.32, 1.06
2024-03-07 15:03:54 +08:00
tracer-ysyx
35867470e0 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:56:54  up   0:16,  2 users,  load average: 0.90, 1.11, 0.88
2024-03-07 14:56:54 +08:00
tracer-ysyx
b623a71d8f > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:54:45  up   0:14,  2 users,  load average: 1.61, 1.22, 0.87
2024-03-07 14:54:45 +08:00
tracer-ysyx
20b153a334 > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:49:30  up   0:08,  2 users,  load average: 1.93, 1.52, 0.82
2024-03-07 14:49:30 +08:00
tracer-ysyx
167a15b85a > build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:49:10  up   0:08,  2 users,  load average: 1.30, 1.40, 0.76
2024-03-07 14:49:10 +08:00
tracer-ysyx
d5d4a436a0 > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:48:49  up   0:08,  2 users,  load average: 1.42, 1.43, 0.76
2024-03-07 14:48:49 +08:00
tracer-ysyx
0449cb2b96 > build_npc_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:48:41  up   0:07,  2 users,  load average: 1.50, 1.44, 0.76
2024-03-07 14:48:41 +08:00
tracer-ysyx
12b73de7f9 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:48:09  up   0:07,  2 users,  load average: 1.82, 1.49, 0.75
2024-03-07 14:48:09 +08:00
tracer-ysyx
be942b362f > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:47:25  up   0:06,  2 users,  load average: 2.02, 1.48, 0.71
2024-03-07 14:47:25 +08:00
tracer-ysyx
991bed91d8 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:46:21  up   0:05,  2 users,  load average: 1.92, 1.16, 0.54
2024-03-07 14:46:21 +08:00
tracer-ysyx
deb6687f98 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:45:41  up   0:04,  2 users,  load average: 0.69, 0.88, 0.43
2024-03-07 14:45:41 +08:00
tracer-ysyx
1641437447 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:43:22  up   0:02,  2 users,  load average: 1.81, 0.85, 0.33
2024-03-07 14:43:22 +08:00
tracer-ysyx
736ac0b0ac > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.19 #1-NixOS SMP PREEMPT_DYNAMIC Fri Mar  1 12:35:11 UTC 2024 x86_64 GNU/Linux
  14:41:24  up   0:00,  2 users,  load average: 1.37, 0.39, 0.14
2024-03-07 14:41:24 +08:00
tracer-ysyx
962d2c05f8 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
  14:35:35  up 2 days 18:03,  2 users,  load average: 1.12, 1.33, 1.18
2024-03-07 14:35:35 +08:00
tracer-ysyx
b95454d9f4 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
  13:58:09  up 2 days 17:26,  2 users,  load average: 1.82, 1.20, 1.05
2024-03-07 13:58:09 +08:00
tracer-ysyx
923d0200da > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
  13:58:03  up 2 days 17:26,  2 users,  load average: 1.09, 1.03, 1.00
2024-03-07 13:58:03 +08:00
tracer-ysyx
47ea3967ab > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
  13:52:23  up 2 days 17:20,  2 users,  load average: 0.79, 0.97, 0.94
2024-03-07 13:52:23 +08:00
tracer-ysyx
d821eff971 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
  13:48:58  up 2 days 17:17,  2 users,  load average: 0.75, 1.02, 0.94
2024-03-07 13:48:58 +08:00
tracer-ysyx
62718e8225 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
  13:47:17  up 2 days 17:15,  2 users,  load average: 0.67, 0.98, 0.91
2024-03-07 13:47:17 +08:00
tracer-ysyx
cb8ca4aba1 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
  13:42:57  up 2 days 17:11,  2 users,  load average: 1.25, 0.96, 0.85
2024-03-07 13:42:57 +08:00
tracer-ysyx
0be92d4c44 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
  13:40:50  up 2 days 17:09,  2 users,  load average: 0.63, 0.60, 0.73
2024-03-07 13:40:50 +08:00
tracer-ysyx
035a1e5cff > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
  11:53:06  up 2 days 15:21,  2 users,  load average: 1.63, 0.88, 0.44
2024-03-07 11:53:06 +08:00
tracer-ysyx
874694b06f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 00:54:44  up 2 days  4:23,  2 users,  load average: 0.52, 0.42, 0.67
2024-03-07 00:54:44 +08:00
tracer-ysyx
dc7cc0216c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 00:54:09  up 2 days  4:22,  2 users,  load average: 0.75, 0.44, 0.69
2024-03-07 00:54:09 +08:00
tracer-ysyx
28a9d21f9e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 00:53:51  up 2 days  4:22,  2 users,  load average: 0.69, 0.42, 0.68
2024-03-07 00:53:51 +08:00
tracer-ysyx
023dc80b98 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 00:53:28  up 2 days  4:21,  2 users,  load average: 0.36, 0.33, 0.67
2024-03-07 00:53:28 +08:00
tracer-ysyx
357519363f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 00:46:26  up 2 days  4:14,  2 users,  load average: 0.48, 0.45, 0.90
2024-03-07 00:46:26 +08:00
tracer-ysyx
0b3a3d34f2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 22:54:48  up 2 days  2:23,  2 users,  load average: 0.60, 0.47, 0.33
2024-03-06 22:54:48 +08:00
tracer-ysyx
da30b69262 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 22:53:15  up 2 days  2:21,  2 users,  load average: 0.37, 0.42, 0.30
2024-03-06 22:53:15 +08:00
tracer-ysyx
99d71a14a5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 22:50:34  up 2 days  2:18,  2 users,  load average: 0.51, 0.41, 0.28
2024-03-06 22:50:34 +08:00
tracer-ysyx
7eb0e2817f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 22:49:30  up 2 days  2:17,  2 users,  load average: 0.60, 0.41, 0.27
2024-03-06 22:49:30 +08:00
tracer-ysyx
9e92a32d15 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 22:47:10  up 2 days  2:15,  2 users,  load average: 0.58, 0.32, 0.23
2024-03-06 22:47:10 +08:00
tracer-ysyx
e628e42959 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 21:51:17  up 2 days  1:19,  2 users,  load average: 0.54, 0.25, 0.18
2024-03-06 21:51:17 +08:00
tracer-ysyx
c92096d729 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 21:48:41  up 2 days  1:17,  2 users,  load average: 0.34, 0.20, 0.15
2024-03-06 21:48:41 +08:00
tracer-ysyx
a9f2d6a56a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 21:48:13  up 2 days  1:16,  2 users,  load average: 0.22, 0.16, 0.14
2024-03-06 21:48:13 +08:00
tracer-ysyx
6132f650af > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:43:55  up 1 day 16:12,  2 users,  load average: 0.29, 0.19, 0.36
2024-03-06 12:43:55 +08:00
tracer-ysyx
4bade1f5d8 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:32:27  up 1 day 16:00,  2 users,  load average: 0.84, 0.64, 0.65
2024-03-06 12:32:27 +08:00
tracer-ysyx
5cc71bcf5b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:32:00  up 1 day 16:00,  2 users,  load average: 0.79, 0.61, 0.64
2024-03-06 12:32:00 +08:00
tracer-ysyx
2763cebb4f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:31:10  up 1 day 15:59,  2 users,  load average: 0.55, 0.55, 0.62
2024-03-06 12:31:10 +08:00
tracer-ysyx
c8857248f0 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:30:31  up 1 day 15:58,  2 users,  load average: 0.51, 0.54, 0.62
2024-03-06 12:30:31 +08:00
tracer-ysyx
016ea9b7b3 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:26:19  up 1 day 15:54,  2 users,  load average: 0.71, 0.70, 0.69
2024-03-06 12:26:19 +08:00
tracer-ysyx
df546432b1 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:25:25  up 1 day 15:53,  2 users,  load average: 0.53, 0.66, 0.67
2024-03-06 12:25:25 +08:00
tracer-ysyx
7d566158c6 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:25:16  up 1 day 15:53,  2 users,  load average: 0.54, 0.67, 0.67
2024-03-06 12:25:16 +08:00
tracer-ysyx
4fc0e0e247 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:15:20  up 1 day 15:43,  2 users,  load average: 1.21, 0.90, 0.67
2024-03-06 12:15:20 +08:00
tracer-ysyx
20c8c52468 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:06:16  up 1 day 15:34,  2 users,  load average: 0.31, 0.44, 0.46
2024-03-06 12:06:16 +08:00
tracer-ysyx
4bec6d86ef > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:04:51  up 1 day 15:33,  2 users,  load average: 0.60, 0.50, 0.48
2024-03-06 12:04:51 +08:00
tracer-ysyx
8c36e50e6a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:04:21  up 1 day 15:32,  2 users,  load average: 0.65, 0.49, 0.48
2024-03-06 12:04:21 +08:00
tracer-ysyx
d36bca5887 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:04:01  up 1 day 15:32,  2 users,  load average: 0.36, 0.42, 0.46
2024-03-06 12:04:01 +08:00
tracer-ysyx
0c6d16efd8 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:03:48  up 1 day 15:32,  2 users,  load average: 0.43, 0.43, 0.46
2024-03-06 12:03:48 +08:00
tracer-ysyx
eda2de1f21 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 12:03:32  up 1 day 15:31,  2 users,  load average: 0.51, 0.45, 0.47
2024-03-06 12:03:32 +08:00
tracer-ysyx
a941200a81 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:54:15  up 1 day 15:22,  2 users,  load average: 0.45, 0.51, 0.52
2024-03-06 11:54:15 +08:00
tracer-ysyx
ee20b97503 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:53:33  up 1 day 15:21,  2 users,  load average: 0.89, 0.59, 0.54
2024-03-06 11:53:33 +08:00
tracer-ysyx
69b5017409 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:52:58  up 1 day 15:21,  2 users,  load average: 0.43, 0.49, 0.51
2024-03-06 11:52:58 +08:00
tracer-ysyx
41bed73e10 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:52:35  up 1 day 15:20,  2 users,  load average: 0.35, 0.48, 0.51
2024-03-06 11:52:35 +08:00
tracer-ysyx
22071af276 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:50:34  up 1 day 15:18,  2 users,  load average: 0.35, 0.58, 0.54
2024-03-06 11:50:34 +08:00
tracer-ysyx
c06e1b2daa > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:47:51  up 1 day 15:16,  2 users,  load average: 1.03, 0.76, 0.58
2024-03-06 11:47:51 +08:00
tracer-ysyx
60a07edf6c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:47:41  up 1 day 15:16,  2 users,  load average: 0.69, 0.68, 0.55
2024-03-06 11:47:41 +08:00
tracer-ysyx
32f76be917 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:47:21  up 1 day 15:15,  2 users,  load average: 0.61, 0.66, 0.54
2024-03-06 11:47:21 +08:00
tracer-ysyx
95e819824b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:47:09  up 1 day 15:15,  2 users,  load average: 0.55, 0.65, 0.54
2024-03-06 11:47:09 +08:00
tracer-ysyx
574043ede5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:46:06  up 1 day 15:14,  2 users,  load average: 0.54, 0.67, 0.53
2024-03-06 11:46:06 +08:00
tracer-ysyx
bbc087a4a3 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:45:42  up 1 day 15:14,  2 users,  load average: 0.67, 0.70, 0.54
2024-03-06 11:45:42 +08:00
tracer-ysyx
b8bceb95ba > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:43:20  up 1 day 15:11,  2 users,  load average: 1.04, 0.76, 0.53
2024-03-06 11:43:20 +08:00
tracer-ysyx
b5c473419a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:43:06  up 1 day 15:11,  2 users,  load average: 1.08, 0.75, 0.52
2024-03-06 11:43:06 +08:00
tracer-ysyx
7bb59857a4 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:42:51  up 1 day 15:11,  2 users,  load average: 0.94, 0.70, 0.50
2024-03-06 11:42:51 +08:00
tracer-ysyx
682cc220f2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:42:39  up 1 day 15:10,  2 users,  load average: 0.93, 0.69, 0.49
2024-03-06 11:42:39 +08:00
tracer-ysyx
d9eb565c66 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:40:43  up 1 day 15:09,  2 users,  load average: 0.96, 0.62, 0.45
2024-03-06 11:40:43 +08:00
tracer-ysyx
6b63bc9c05 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:39:58  up 1 day 15:08,  2 users,  load average: 0.87, 0.55, 0.42
2024-03-06 11:39:58 +08:00
tracer-ysyx
7ed90d6241 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:39:50  up 1 day 15:08,  2 users,  load average: 0.58, 0.48, 0.40
2024-03-06 11:39:50 +08:00
tracer-ysyx
9aea490721 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:38:47  up 1 day 15:07,  2 users,  load average: 0.48, 0.44, 0.38
2024-03-06 11:38:47 +08:00
tracer-ysyx
427adbac29 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:38:09  up 1 day 15:06,  2 users,  load average: 0.42, 0.42, 0.37
2024-03-06 11:38:09 +08:00
tracer-ysyx
737b62dbee > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:37:09  up 1 day 15:05,  2 users,  load average: 0.58, 0.44, 0.38
2024-03-06 11:37:09 +08:00
tracer-ysyx
12f8eda9d7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:36:43  up 1 day 15:05,  2 users,  load average: 0.37, 0.39, 0.36
2024-03-06 11:36:43 +08:00
tracer-ysyx
7c3c2ce973 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:36:21  up 1 day 15:04,  2 users,  load average: 0.38, 0.39, 0.36
2024-03-06 11:36:21 +08:00
tracer-ysyx
7df9c941df > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:34:05  up 1 day 15:02,  2 users,  load average: 0.49, 0.42, 0.37
2024-03-06 11:34:05 +08:00
tracer-ysyx
e54b6110c0 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:33:52  up 1 day 15:02,  2 users,  load average: 0.39, 0.40, 0.36
2024-03-06 11:33:52 +08:00
tracer-ysyx
bb71f3bcea > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:30:48  up 1 day 14:59,  2 users,  load average: 0.47, 0.39, 0.35
2024-03-06 11:30:48 +08:00
tracer-ysyx
2e8ff661b5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:30:33  up 1 day 14:58,  2 users,  load average: 0.31, 0.36, 0.34
2024-03-06 11:30:33 +08:00
tracer-ysyx
4cae21faff > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:27:55  up 1 day 14:56,  2 users,  load average: 0.52, 0.44, 0.35
2024-03-06 11:27:55 +08:00
tracer-ysyx
d42898fb7e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:27:47  up 1 day 14:56,  2 users,  load average: 0.53, 0.44, 0.35
2024-03-06 11:27:47 +08:00
tracer-ysyx
dea0846feb > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:27:26  up 1 day 14:55,  2 users,  load average: 0.33, 0.40, 0.34
2024-03-06 11:27:26 +08:00
tracer-ysyx
4afbc21b33 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:26:23  up 1 day 14:54,  2 users,  load average: 0.30, 0.41, 0.34
2024-03-06 11:26:23 +08:00
tracer-ysyx
63f5339b1d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:26:05  up 1 day 14:54,  2 users,  load average: 0.33, 0.43, 0.34
2024-03-06 11:26:05 +08:00
tracer-ysyx
7e67e94a5c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:23:54  up 1 day 14:52,  2 users,  load average: 0.76, 0.47, 0.33
2024-03-06 11:23:54 +08:00
tracer-ysyx
36d61e2d9e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:23:22  up 1 day 14:51,  2 users,  load average: 0.74, 0.43, 0.32
2024-03-06 11:23:22 +08:00
tracer-ysyx
9a75bfd99f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:17:45  up 1 day 14:46,  2 users,  load average: 0.85, 0.49, 0.32
2024-03-06 11:17:45 +08:00
tracer-ysyx
0390d7f2aa > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:17:35  up 1 day 14:45,  2 users,  load average: 0.64, 0.44, 0.30
2024-03-06 11:17:35 +08:00
tracer-ysyx
83dba69a54 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:17:18  up 1 day 14:45,  2 users,  load average: 0.63, 0.43, 0.29
2024-03-06 11:17:18 +08:00
tracer-ysyx
38f1ed27a0 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:16:51  up 1 day 14:45,  2 users,  load average: 0.40, 0.37, 0.27
2024-03-06 11:16:51 +08:00
tracer-ysyx
a757dd4b43 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:14:58  up 1 day 14:43,  2 users,  load average: 0.29, 0.38, 0.26
2024-03-06 11:14:58 +08:00
tracer-ysyx
ef85b9f7bf > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:14:30  up 1 day 14:42,  2 users,  load average: 0.28, 0.39, 0.26
2024-03-06 11:14:30 +08:00
tracer-ysyx
c8f5c23463 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:14:17  up 1 day 14:42,  2 users,  load average: 0.23, 0.39, 0.26
2024-03-06 11:14:17 +08:00
tracer-ysyx
66af7a5e2e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:09:56  up 1 day 14:38,  2 users,  load average: 0.43, 0.30, 0.19
2024-03-06 11:09:56 +08:00
tracer-ysyx
4b1163d0ed > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 11:09:46  up 1 day 14:38,  2 users,  load average: 0.32, 0.28, 0.19
2024-03-06 11:09:46 +08:00
tracer-ysyx
125eb7c09b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 01:20:34  up 1 day  4:48,  2 users,  load average: 0.90, 0.61, 0.35
2024-03-06 01:20:34 +08:00
tracer-ysyx
ec8fdcbe38 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 01:20:25  up 1 day  4:48,  2 users,  load average: 0.98, 0.62, 0.35
2024-03-06 01:20:25 +08:00
tracer-ysyx
bc58e07285 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 01:08:44  up 1 day  4:37,  2 users,  load average: 0.27, 0.24, 0.20
2024-03-06 01:08:44 +08:00
tracer-ysyx
14e442c0a7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 00:36:52  up 1 day  4:05,  2 users,  load average: 0.31, 0.28, 0.21
2024-03-06 00:36:52 +08:00
tracer-ysyx
ce399c14d9 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 00:36:26  up 1 day  4:04,  2 users,  load average: 0.20, 0.25, 0.20
2024-03-06 00:36:26 +08:00
tracer-ysyx
c71b7bdb69 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 00:36:08  up 1 day  4:04,  2 users,  load average: 0.17, 0.25, 0.20
2024-03-06 00:36:08 +08:00
tracer-ysyx
2148f492f5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 00:35:46  up 1 day  4:04,  2 users,  load average: 0.25, 0.27, 0.21
2024-03-06 00:35:46 +08:00
tracer-ysyx
e89e18811b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:27:36  up 1 day  2:55,  2 users,  load average: 0.47, 0.43, 0.34
2024-03-05 23:27:36 +08:00
tracer-ysyx
468558417f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 22:55:01  up 1 day  2:23,  2 users,  load average: 1.05, 0.63, 0.33
2024-03-05 22:55:01 +08:00
tracer-ysyx
b564f649f2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 22:52:05  up 1 day  2:20,  2 users,  load average: 0.37, 0.30, 0.19
2024-03-05 22:52:05 +08:00
tracer-ysyx
2170c014b5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 19:10:20  up  22:38,  2 users,  load average: 0.28, 0.26, 0.35
2024-03-05 19:10:20 +08:00
tracer-ysyx
455cf3d498 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 19:08:50  up  22:37,  2 users,  load average: 0.46, 0.27, 0.37
2024-03-05 19:08:50 +08:00
tracer-ysyx
ee52b3b45a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 18:57:38  up  22:25,  2 users,  load average: 0.36, 0.56, 0.59
2024-03-05 18:57:38 +08:00
tracer-ysyx
a76068db9f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 18:47:34  up  22:15,  2 users,  load average: 0.21, 0.38, 0.49
2024-03-05 18:47:34 +08:00
tracer-ysyx
8b6d7689ca > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 18:41:36  up  22:09,  2 users,  load average: 0.50, 0.42, 0.54
2024-03-05 18:41:36 +08:00
tracer-ysyx
be5579f88d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 18:37:56  up  22:06,  2 users,  load average: 0.61, 0.53, 0.60
2024-03-05 18:37:56 +08:00
tracer-ysyx
30cd92be1f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 18:37:36  up  22:05,  2 users,  load average: 0.50, 0.50, 0.59
2024-03-05 18:37:36 +08:00
tracer-ysyx
0229b0601d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 18:37:12  up  22:05,  2 users,  load average: 0.76, 0.54, 0.61
2024-03-05 18:37:12 +08:00
tracer-ysyx
4ca052cb1b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 18:21:57  up  21:50,  2 users,  load average: 0.17, 0.54, 0.83
2024-03-05 18:21:57 +08:00
tracer-ysyx
3aceace0c3 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:16:47  up   7:34,  2 users,  load average: 0.30, 0.35, 0.32
2024-03-03 23:16:47 +08:00
tracer-ysyx
5214b46f0d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:16:47  up   7:34,  2 users,  load average: 0.30, 0.35, 0.32
2024-03-03 23:16:47 +08:00
tracer-ysyx
c60010964c > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:10:01  up   7:27,  2 users,  load average: 0.42, 0.32, 0.30
2024-03-03 23:10:01 +08:00
tracer-ysyx
9a4851ae1d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:10:01  up   7:27,  2 users,  load average: 0.42, 0.32, 0.30
2024-03-03 23:10:01 +08:00
tracer-ysyx
743140e390 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:09:32  up   7:26,  2 users,  load average: 0.29, 0.29, 0.29
2024-03-03 23:09:32 +08:00
tracer-ysyx
3238a7d4e7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:09:32  up   7:26,  2 users,  load average: 0.29, 0.29, 0.29
2024-03-03 23:09:32 +08:00
tracer-ysyx
3bcd10e12e > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:08:48  up   7:26,  2 users,  load average: 0.30, 0.28, 0.29
2024-03-03 23:08:48 +08:00
tracer-ysyx
2b28fdfb74 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:08:48  up   7:26,  2 users,  load average: 0.30, 0.28, 0.29
2024-03-03 23:08:48 +08:00
tracer-ysyx
51d980a489 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:08:30  up   7:25,  2 users,  load average: 0.10, 0.25, 0.28
2024-03-03 23:08:30 +08:00
tracer-ysyx
136bf5e2a5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:08:30  up   7:25,  2 users,  load average: 0.10, 0.25, 0.28
2024-03-03 23:08:30 +08:00
tracer-ysyx
7ec2bbc984 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:08:11  up   7:25,  2 users,  load average: 0.15, 0.26, 0.29
2024-03-03 23:08:11 +08:00
tracer-ysyx
31618716e9 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:08:11  up   7:25,  2 users,  load average: 0.15, 0.26, 0.29
2024-03-03 23:08:11 +08:00
tracer-ysyx
e9f3cf9ef1 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:06:22  up   7:23,  2 users,  load average: 0.43, 0.36, 0.33
2024-03-03 23:06:22 +08:00
tracer-ysyx
5fae67a50a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:06:22  up   7:23,  2 users,  load average: 0.43, 0.36, 0.33
2024-03-03 23:06:22 +08:00
tracer-ysyx
1b743d23f9 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:05:54  up   7:23,  2 users,  load average: 0.33, 0.34, 0.32
2024-03-03 23:05:54 +08:00
tracer-ysyx
5c562f9ac5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:05:53  up   7:23,  2 users,  load average: 0.33, 0.34, 0.32
2024-03-03 23:05:53 +08:00
tracer-ysyx
527f5061df > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:05:34  up   7:22,  2 users,  load average: 0.26, 0.33, 0.32
2024-03-03 23:05:34 +08:00
tracer-ysyx
b142f15165 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:05:34  up   7:22,  2 users,  load average: 0.26, 0.33, 0.32
2024-03-03 23:05:34 +08:00
tracer-ysyx
e569f20696 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:05:06  up   7:22,  2 users,  load average: 0.43, 0.37, 0.33
2024-03-03 23:05:06 +08:00
tracer-ysyx
01960837e0 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 23:05:05  up   7:22,  2 users,  load average: 0.43, 0.37, 0.33
2024-03-03 23:05:05 +08:00
tracer-ysyx
a915be2262 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 20:12:54  up   4:30,  2 users,  load average: 0.32, 0.30, 0.35
2024-03-03 20:12:54 +08:00
tracer-ysyx
52e9b6669e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 20:12:54  up   4:30,  2 users,  load average: 0.32, 0.30, 0.35
2024-03-03 20:12:54 +08:00
tracer-ysyx
f2a6cf21a5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 20:12:50  up   4:30,  2 users,  load average: 0.35, 0.31, 0.35
2024-03-03 20:12:50 +08:00
tracer-ysyx
e54e683cf5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 19:10:05  up   3:27,  2 users,  load average: 0.16, 0.35, 0.41
2024-03-03 19:10:05 +08:00
tracer-ysyx
a4d61ab418 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 18:52:52  up   3:10,  2 users,  load average: 0.35, 0.49, 0.42
2024-03-03 18:52:52 +08:00
tracer-ysyx
33acaf4f65 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 18:29:59  up   2:47,  2 users,  load average: 0.47, 0.35, 0.34
2024-03-03 18:29:59 +08:00
tracer-ysyx
4317af0dec > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.6.18 #1-NixOS SMP PREEMPT_DYNAMIC Fri Feb 23 08:25:28 UTC 2024 x86_64 GNU/Linux
 18:29:27  up   2:46,  2 users,  load average: 0.38, 0.32, 0.33
2024-03-03 18:29:27 +08:00
tracer-ysyx
2c5ef67d8e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:54:24  up 1 day  5:30,  2 users,  load average: 0.58, 0.75, 0.81
2024-02-08 19:54:24 +08:00
tracer-ysyx
a85a65873f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:53:37  up 1 day  5:29,  2 users,  load average: 0.82, 0.80, 0.83
2024-02-08 19:53:37 +08:00
tracer-ysyx
87cbb1571b > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:50:59  up 1 day  5:26,  2 users,  load average: 0.47, 0.88, 0.87
2024-02-08 19:50:59 +08:00
tracer-ysyx
d34c606c99 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:50:59  up 1 day  5:26,  2 users,  load average: 0.47, 0.88, 0.87
2024-02-08 19:50:59 +08:00
tracer-ysyx
fa7173194f > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:50:17  up 1 day  5:26,  2 users,  load average: 0.82, 1.00, 0.90
2024-02-08 19:50:17 +08:00
tracer-ysyx
5790387639 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:50:17  up 1 day  5:26,  2 users,  load average: 0.82, 1.00, 0.90
2024-02-08 19:50:17 +08:00
tracer-ysyx
0f2ccd6328 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:49:55  up 1 day  5:25,  2 users,  load average: 1.15, 1.07, 0.93
2024-02-08 19:49:55 +08:00
tracer-ysyx
b77eb2f191 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:49:55  up 1 day  5:25,  2 users,  load average: 1.15, 1.07, 0.93
2024-02-08 19:49:55 +08:00
tracer-ysyx
0dfe80c278 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:48:39  up 1 day  5:24,  2 users,  load average: 1.69, 1.04, 0.90
2024-02-08 19:48:39 +08:00
tracer-ysyx
f1667e6aec > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:48:39  up 1 day  5:24,  2 users,  load average: 1.69, 1.04, 0.90
2024-02-08 19:48:39 +08:00
tracer-ysyx
bd617e3c7b > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:47:58  up 1 day  5:23,  2 users,  load average: 1.68, 0.97, 0.87
2024-02-08 19:47:58 +08:00
tracer-ysyx
18db693c0f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:47:58  up 1 day  5:23,  2 users,  load average: 1.68, 0.97, 0.87
2024-02-08 19:47:58 +08:00
tracer-ysyx
b1fb8cd771 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:47:48  up 1 day  5:23,  2 users,  load average: 0.94, 0.81, 0.82
2024-02-08 19:47:48 +08:00
tracer-ysyx
19218ee4fc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:47:48  up 1 day  5:23,  2 users,  load average: 0.94, 0.81, 0.82
2024-02-08 19:47:48 +08:00
tracer-ysyx
4646631a8d > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:47:35  up 1 day  5:23,  2 users,  load average: 0.93, 0.81, 0.82
2024-02-08 19:47:35 +08:00
tracer-ysyx
4ccd4b7e2d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:47:35  up 1 day  5:23,  2 users,  load average: 0.93, 0.81, 0.82
2024-02-08 19:47:35 +08:00
tracer-ysyx
999afe3664 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:47:20  up 1 day  5:23,  2 users,  load average: 0.73, 0.76, 0.80
2024-02-08 19:47:20 +08:00
tracer-ysyx
867acd22fb > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:47:20  up 1 day  5:23,  2 users,  load average: 0.73, 0.76, 0.80
2024-02-08 19:47:20 +08:00
tracer-ysyx
c46b2b1ae0 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:44:33  up 1 day  5:20,  2 users,  load average: 0.77, 0.77, 0.81
2024-02-08 19:44:33 +08:00
tracer-ysyx
a089f0df65 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:44:33  up 1 day  5:20,  2 users,  load average: 0.77, 0.77, 0.81
2024-02-08 19:44:33 +08:00
tracer-ysyx
b8c4b91f2f > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:41:00  up 1 day  5:16,  2 users,  load average: 0.49, 0.84, 0.85
2024-02-08 19:41:00 +08:00
tracer-ysyx
2a1f781753 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:41:00  up 1 day  5:16,  2 users,  load average: 0.49, 0.84, 0.85
2024-02-08 19:41:00 +08:00
tracer-ysyx
8101d73575 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:40:34  up 1 day  5:16,  2 users,  load average: 0.75, 0.91, 0.87
2024-02-08 19:40:34 +08:00
tracer-ysyx
f1538e9662 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:40:34  up 1 day  5:16,  2 users,  load average: 0.73, 0.91, 0.87
2024-02-08 19:40:34 +08:00
tracer-ysyx
e61ddae575 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:40:09  up 1 day  5:16,  2 users,  load average: 0.92, 0.96, 0.88
2024-02-08 19:40:09 +08:00
tracer-ysyx
a91e261593 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:40:09  up 1 day  5:16,  2 users,  load average: 0.92, 0.96, 0.88
2024-02-08 19:40:09 +08:00
tracer-ysyx
7cd29cee97 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:39:20  up 1 day  5:15,  2 users,  load average: 1.12, 1.00, 0.89
2024-02-08 19:39:20 +08:00
tracer-ysyx
9f8ed6f17c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:39:20  up 1 day  5:15,  2 users,  load average: 1.12, 1.00, 0.89
2024-02-08 19:39:20 +08:00
tracer-ysyx
1a1132a7db > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:39:10  up 1 day  5:15,  2 users,  load average: 1.23, 1.02, 0.90
2024-02-08 19:39:10 +08:00
tracer-ysyx
9e7baa4bf4 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:39:10  up 1 day  5:15,  2 users,  load average: 1.23, 1.02, 0.90
2024-02-08 19:39:10 +08:00
tracer-ysyx
3911bb85f9 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:35:31  up 1 day  5:11,  2 users,  load average: 0.57, 0.79, 0.81
2024-02-08 19:35:31 +08:00
tracer-ysyx
d50355d77b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:35:31  up 1 day  5:11,  2 users,  load average: 0.57, 0.79, 0.81
2024-02-08 19:35:31 +08:00
tracer-ysyx
cb766b0d69 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:34:56  up 1 day  5:10,  2 users,  load average: 0.59, 0.82, 0.82
2024-02-08 19:34:56 +08:00
tracer-ysyx
66f4e11d6a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:34:56  up 1 day  5:10,  2 users,  load average: 0.59, 0.82, 0.82
2024-02-08 19:34:56 +08:00
tracer-ysyx
f42973dc9a > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:33:32  up 1 day  5:09,  2 users,  load average: 0.46, 0.90, 0.85
2024-02-08 19:33:32 +08:00
tracer-ysyx
b45e678f00 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:33:32  up 1 day  5:09,  2 users,  load average: 0.46, 0.90, 0.85
2024-02-08 19:33:32 +08:00
tracer-ysyx
f9fde57436 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:33:10  up 1 day  5:09,  2 users,  load average: 0.64, 0.96, 0.86
2024-02-08 19:33:10 +08:00
tracer-ysyx
46ad43c89e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:33:10  up 1 day  5:09,  2 users,  load average: 0.64, 0.96, 0.86
2024-02-08 19:33:10 +08:00
tracer-ysyx
6163d76369 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:32:51  up 1 day  5:08,  2 users,  load average: 0.79, 1.01, 0.88
2024-02-08 19:32:51 +08:00
tracer-ysyx
e5cfa3b6ab > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:32:51  up 1 day  5:08,  2 users,  load average: 0.79, 1.01, 0.88
2024-02-08 19:32:51 +08:00
tracer-ysyx
3b583720d9 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:32:18  up 1 day  5:08,  2 users,  load average: 1.02, 1.06, 0.89
2024-02-08 19:32:18 +08:00
tracer-ysyx
65432889e1 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:32:18  up 1 day  5:08,  2 users,  load average: 1.02, 1.06, 0.89
2024-02-08 19:32:18 +08:00
tracer-ysyx
989847e1cb > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:31:48  up 1 day  5:07,  2 users,  load average: 1.68, 1.18, 0.92
2024-02-08 19:31:48 +08:00
tracer-ysyx
4c3cd1ca9f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:31:48  up 1 day  5:07,  2 users,  load average: 1.68, 1.18, 0.92
2024-02-08 19:31:48 +08:00
tracer-ysyx
cff522a5ca > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:31:33  up 1 day  5:07,  2 users,  load average: 2.07, 1.22, 0.93
2024-02-08 19:31:33 +08:00
tracer-ysyx
4946f6f435 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:31:33  up 1 day  5:07,  2 users,  load average: 2.07, 1.22, 0.93
2024-02-08 19:31:33 +08:00
tracer-ysyx
14d91e6fe4 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:31:24  up 1 day  5:07,  2 users,  load average: 1.99, 1.19, 0.92
2024-02-08 19:31:24 +08:00
tracer-ysyx
dbed45814b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:31:24  up 1 day  5:07,  2 users,  load average: 1.99, 1.19, 0.92
2024-02-08 19:31:24 +08:00
tracer-ysyx
05dce9ed14 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:28:36  up 1 day  5:04,  2 users,  load average: 1.29, 0.88, 0.79
2024-02-08 19:28:36 +08:00
tracer-ysyx
66240f56d4 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:28:36  up 1 day  5:04,  2 users,  load average: 1.29, 0.88, 0.79
2024-02-08 19:28:36 +08:00
tracer-ysyx
c4049dfa39 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:25:40  up 1 day  5:01,  2 users,  load average: 1.09, 0.92, 0.80
2024-02-08 19:25:40 +08:00
tracer-ysyx
0531eb060a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:25:40  up 1 day  5:01,  2 users,  load average: 1.09, 0.92, 0.80
2024-02-08 19:25:40 +08:00
tracer-ysyx
53baebe06d > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:19:24  up 1 day  4:55,  2 users,  load average: 0.19, 0.40, 0.64
2024-02-08 19:19:24 +08:00
tracer-ysyx
29946273cd > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:19:24  up 1 day  4:55,  2 users,  load average: 0.19, 0.40, 0.64
2024-02-08 19:19:24 +08:00
tracer-ysyx
e444f69912 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:14:45  up 1 day  4:50,  2 users,  load average: 0.69, 0.90, 0.85
2024-02-08 19:14:45 +08:00
tracer-ysyx
87d3a424f3 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:14:45  up 1 day  4:50,  2 users,  load average: 0.69, 0.90, 0.85
2024-02-08 19:14:45 +08:00
tracer-ysyx
2b82e21363 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:14:37  up 1 day  4:50,  2 users,  load average: 0.62, 0.90, 0.84
2024-02-08 19:14:37 +08:00
tracer-ysyx
7e4321a906 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:14:37  up 1 day  4:50,  2 users,  load average: 0.62, 0.90, 0.84
2024-02-08 19:14:37 +08:00
tracer-ysyx
15417e3e7a > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:10:47  up 1 day  4:46,  2 users,  load average: 1.69, 0.98, 0.83
2024-02-08 19:10:47 +08:00
tracer-ysyx
2c89dd1f5d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:10:47  up 1 day  4:46,  2 users,  load average: 1.69, 0.98, 0.83
2024-02-08 19:10:47 +08:00
tracer-ysyx
dd9dbc5d01 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:05:34  up 1 day  4:41,  2 users,  load average: 0.93, 0.89, 0.81
2024-02-08 19:05:34 +08:00
tracer-ysyx
e00a227b62 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:05:34  up 1 day  4:41,  2 users,  load average: 0.93, 0.89, 0.81
2024-02-08 19:05:34 +08:00
tracer-ysyx
ad4eb5a370 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:05:19  up 1 day  4:41,  2 users,  load average: 1.09, 0.92, 0.82
2024-02-08 19:05:19 +08:00
tracer-ysyx
5f3581ad47 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:05:19  up 1 day  4:41,  2 users,  load average: 1.09, 0.92, 0.82
2024-02-08 19:05:19 +08:00
tracer-ysyx
2cb8584055 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:00:28  up 1 day  4:36,  2 users,  load average: 0.40, 0.63, 0.71
2024-02-08 19:00:28 +08:00
tracer-ysyx
71dc2933e2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:00:28  up 1 day  4:36,  2 users,  load average: 0.40, 0.63, 0.71
2024-02-08 19:00:28 +08:00
tracer-ysyx
ba85b52bc3 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:00:04  up 1 day  4:35,  2 users,  load average: 0.39, 0.65, 0.72
2024-02-08 19:00:04 +08:00
tracer-ysyx
fee84cb218 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:00:03  up 1 day  4:35,  2 users,  load average: 0.39, 0.65, 0.72
2024-02-08 19:00:03 +08:00
tracer-ysyx
6115718454 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:00:00  up 1 day  4:35,  2 users,  load average: 0.39, 0.65, 0.72
2024-02-08 19:00:00 +08:00
tracer-ysyx
f4813afbdc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 19:00:00  up 1 day  4:35,  2 users,  load average: 0.39, 0.65, 0.72
2024-02-08 19:00:00 +08:00
tracer-ysyx
7b5f53a170 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:59:17  up 1 day  4:35,  2 users,  load average: 0.36, 0.69, 0.73
2024-02-08 18:59:17 +08:00
tracer-ysyx
1094074a3c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:59:17  up 1 day  4:35,  2 users,  load average: 0.36, 0.69, 0.73
2024-02-08 18:59:17 +08:00
tracer-ysyx
00fc730e3e > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:59:10  up 1 day  4:35,  2 users,  load average: 0.39, 0.70, 0.73
2024-02-08 18:59:10 +08:00
tracer-ysyx
074ec5b4a1 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:59:10  up 1 day  4:35,  2 users,  load average: 0.39, 0.70, 0.73
2024-02-08 18:59:10 +08:00
tracer-ysyx
d784f80261 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:57:24  up 1 day  4:33,  2 users,  load average: 0.66, 0.87, 0.79
2024-02-08 18:57:24 +08:00
tracer-ysyx
10f368edbb > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:57:24  up 1 day  4:33,  2 users,  load average: 0.66, 0.87, 0.79
2024-02-08 18:57:24 +08:00
tracer-ysyx
d3eaab6a5f > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:46:11  up 1 day  4:22,  2 users,  load average: 0.76, 1.07, 0.74
2024-02-08 18:46:11 +08:00
tracer-ysyx
92b03e579b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:46:11  up 1 day  4:22,  2 users,  load average: 0.76, 1.07, 0.74
2024-02-08 18:46:11 +08:00
tracer-ysyx
e4812c59d5 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:44:25  up 1 day  4:20,  2 users,  load average: 0.94, 1.24, 0.75
2024-02-08 18:44:25 +08:00
tracer-ysyx
b6403747e0 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:44:25  up 1 day  4:20,  2 users,  load average: 0.94, 1.24, 0.75
2024-02-08 18:44:25 +08:00
tracer-ysyx
6681ed935c > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:44:02  up 1 day  4:19,  2 users,  load average: 1.32, 1.33, 0.77
2024-02-08 18:44:02 +08:00
tracer-ysyx
cb13d4d6f8 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:44:02  up 1 day  4:19,  2 users,  load average: 1.32, 1.33, 0.77
2024-02-08 18:44:02 +08:00
tracer-ysyx
375772441d > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:43:13  up 1 day  4:19,  2 users,  load average: 1.84, 1.38, 0.75
2024-02-08 18:43:13 +08:00
tracer-ysyx
d11dacef92 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:43:13  up 1 day  4:19,  2 users,  load average: 1.84, 1.38, 0.75
2024-02-08 18:43:13 +08:00
tracer-ysyx
515e7be314 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 18:43:12  up 1 day  4:19,  2 users,  load average: 1.84, 1.38, 0.75
2024-02-08 18:43:12 +08:00
tracer-ysyx
ace6b4a72b > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 20:46:44  up   6:22,  2 users,  load average: 0.45, 0.42, 0.45
2024-02-07 20:46:44 +08:00
tracer-ysyx
3d280fbe0b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 20:46:44  up   6:22,  2 users,  load average: 0.45, 0.42, 0.45
2024-02-07 20:46:44 +08:00
tracer-ysyx
3a604683b0 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 17:39:48  up   3:15,  2 users,  load average: 0.44, 0.67, 1.30
2024-02-07 17:39:48 +08:00
tracer-ysyx
59a4c87ed5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 17:39:48  up   3:15,  2 users,  load average: 0.44, 0.67, 1.30
2024-02-07 17:39:48 +08:00
tracer-ysyx
c9306cab5b > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 17:38:54  up   3:14,  2 users,  load average: 0.92, 0.78, 1.37
2024-02-07 17:38:54 +08:00
tracer-ysyx
7a45094712 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 17:38:54  up   3:14,  2 users,  load average: 0.92, 0.78, 1.37
2024-02-07 17:38:54 +08:00
tracer-ysyx
80ccc78e9b > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:47:35  up   4:48,  2 users,  load average: 0.20, 0.17, 0.14
2024-02-05 22:47:35 +08:00
tracer-ysyx
96b1a5dcec > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:47:35  up   4:48,  2 users,  load average: 0.20, 0.17, 0.14
2024-02-05 22:47:35 +08:00
tracer-ysyx
d04c357e5c > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:47:03  up   4:48,  2 users,  load average: 0.28, 0.18, 0.14
2024-02-05 22:47:03 +08:00
tracer-ysyx
9a0957389f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:47:03  up   4:48,  2 users,  load average: 0.28, 0.18, 0.14
2024-02-05 22:47:03 +08:00
tracer-ysyx
a0a3c459c4 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:46:44  up   4:47,  2 users,  load average: 0.06, 0.14, 0.13
2024-02-05 22:46:44 +08:00
tracer-ysyx
576f911ee9 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:46:44  up   4:47,  2 users,  load average: 0.06, 0.14, 0.13
2024-02-05 22:46:44 +08:00
tracer-ysyx
f8bfa45516 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:46:39  up   4:47,  2 users,  load average: 0.06, 0.14, 0.13
2024-02-05 22:46:39 +08:00
tracer-ysyx
b837fed781 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:46:39  up   4:47,  2 users,  load average: 0.06, 0.14, 0.13
2024-02-05 22:46:39 +08:00
tracer-ysyx
94d560187e > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:46:13  up   4:47,  2 users,  load average: 0.10, 0.16, 0.13
2024-02-05 22:46:13 +08:00
tracer-ysyx
6b9ae21fc6 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:46:13  up   4:47,  2 users,  load average: 0.10, 0.16, 0.13
2024-02-05 22:46:13 +08:00
tracer-ysyx
5233b02844 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:45:43  up   4:46,  2 users,  load average: 0.16, 0.17, 0.14
2024-02-05 22:45:43 +08:00
tracer-ysyx
40162a39ab > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:45:43  up   4:46,  2 users,  load average: 0.16, 0.17, 0.14
2024-02-05 22:45:43 +08:00
tracer-ysyx
ddc1510177 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:45:03  up   4:46,  2 users,  load average: 0.32, 0.20, 0.15
2024-02-05 22:45:03 +08:00
tracer-ysyx
b9aa7724a0 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:45:03  up   4:46,  2 users,  load average: 0.32, 0.20, 0.15
2024-02-05 22:45:03 +08:00
tracer-ysyx
a223953c52 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:44:49  up   4:45,  2 users,  load average: 0.41, 0.21, 0.15
2024-02-05 22:44:49 +08:00
tracer-ysyx
64cf984f5f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:44:49  up   4:45,  2 users,  load average: 0.41, 0.21, 0.15
2024-02-05 22:44:49 +08:00
tracer-ysyx
ce843e6adb > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:43:48  up   4:44,  2 users,  load average: 0.49, 0.20, 0.14
2024-02-05 22:43:48 +08:00
tracer-ysyx
8960f8b37a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:43:48  up   4:44,  2 users,  load average: 0.49, 0.20, 0.14
2024-02-05 22:43:48 +08:00
tracer-ysyx
188c2d8bb5 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:42:45  up   4:43,  2 users,  load average: 0.29, 0.13, 0.12
2024-02-05 22:42:45 +08:00
tracer-ysyx
b171442112 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:42:45  up   4:43,  2 users,  load average: 0.14, 0.10, 0.11
2024-02-05 22:42:45 +08:00
tracer-ysyx
093fb733a0 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:41:57  up   4:43,  2 users,  load average: 0.03, 0.08, 0.11
2024-02-05 22:41:57 +08:00
tracer-ysyx
3a0268ca34 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:41:56  up   4:43,  2 users,  load average: 0.03, 0.08, 0.11
2024-02-05 22:41:56 +08:00
tracer-ysyx
91ad6d4335 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:37:30  up   4:38,  2 users,  load average: 0.27, 0.16, 0.15
2024-02-05 22:37:30 +08:00
tracer-ysyx
38984882c1 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:37:30  up   4:38,  2 users,  load average: 0.27, 0.16, 0.15
2024-02-05 22:37:30 +08:00
tracer-ysyx
312c5a99cc > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:37:19  up   4:38,  2 users,  load average: 0.35, 0.17, 0.15
2024-02-05 22:37:19 +08:00
tracer-ysyx
7cb08dc9fa > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:37:19  up   4:38,  2 users,  load average: 0.35, 0.17, 0.15
2024-02-05 22:37:19 +08:00
tracer-ysyx
4bb0fb31ae > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:27:29  up   4:28,  2 users,  load average: 0.00, 0.05, 0.13
2024-02-05 22:27:29 +08:00
tracer-ysyx
6846ae6781 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:27:29  up   4:28,  2 users,  load average: 0.00, 0.05, 0.13
2024-02-05 22:27:29 +08:00
tracer-ysyx
6eb135a3b8 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:20:24  up   4:21,  2 users,  load average: 0.12, 0.18, 0.21
2024-02-05 22:20:24 +08:00
tracer-ysyx
58e93a3848 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:20:24  up   4:21,  2 users,  load average: 0.12, 0.18, 0.21
2024-02-05 22:20:24 +08:00
tracer-ysyx
3b98fd1372 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:16:38  up   4:17,  2 users,  load average: 0.46, 0.28, 0.26
2024-02-05 22:16:38 +08:00
tracer-ysyx
c6933b1c3a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:16:38  up   4:17,  2 users,  load average: 0.46, 0.28, 0.26
2024-02-05 22:16:38 +08:00
tracer-ysyx
536f134e4c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:16:36  up   4:17,  2 users,  load average: 0.46, 0.28, 0.26
2024-02-05 22:16:36 +08:00
tracer-ysyx
4a78296ebd > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.75 #1-NixOS SMP PREEMPT_DYNAMIC Thu Jan 25 23:27:52 UTC 2024 x86_64 GNU/Linux
 22:16:25  up   4:17,  2 users,  load average: 0.55, 0.29, 0.26
2024-02-05 22:16:25 +08:00
tracer-ysyx
80c13c3f6b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 21:06:54  up   0:22,  2 users,  load average: 0.64, 0.76, 0.65
2024-01-19 21:06:54 +08:00
tracer-ysyx
a9755df8de > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 21:02:07  up   0:17,  2 users,  load average: 0.80, 0.92, 0.65
2024-01-19 21:02:07 +08:00
tracer-ysyx
16c5601d6d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 21:00:46  up   0:16,  2 users,  load average: 0.67, 0.87, 0.61
2024-01-19 21:00:46 +08:00
tracer-ysyx
6ae1b559b8 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 20:57:13  up   0:12,  2 users,  load average: 1.12, 0.95, 0.54
2024-01-19 20:57:13 +08:00
tracer-ysyx
cde9611e61 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 20:56:45  up   0:12,  2 users,  load average: 1.40, 0.98, 0.54
2024-01-19 20:56:45 +08:00
tracer-ysyx
7416c3efd6 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 20:56:06  up   0:11,  2 users,  load average: 1.80, 0.97, 0.52
2024-01-19 20:56:06 +08:00
tracer-ysyx
21e6e0e708 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 20:52:30  up   0:08,  2 users,  load average: 0.51, 0.66, 0.35
2024-01-19 20:52:30 +08:00
tracer-ysyx
1111a00067 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 20:52:00  up   0:07,  2 users,  load average: 0.66, 0.70, 0.35
2024-01-19 20:52:00 +08:00
tracer-ysyx
16e1bc36e6 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 20:50:16  up   0:05,  2 users,  load average: 1.33, 0.73, 0.31
2024-01-19 20:50:16 +08:00
tracer-ysyx
cada53f571 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 00:12:50  up 2 days 13:07,  2 users,  load average: 0.38, 0.44, 0.46
2024-01-16 00:12:50 +08:00
tracer-ysyx
be9c694cab > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 00:12:16  up 2 days 13:07,  2 users,  load average: 0.53, 0.48, 0.47
2024-01-16 00:12:16 +08:00
tracer-ysyx
87b600d247 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 00:10:44  up 2 days 13:05,  2 users,  load average: 0.36, 0.44, 0.47
2024-01-16 00:10:44 +08:00
tracer-ysyx
51c91e8371 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 00:09:05  up 2 days 13:03,  2 users,  load average: 0.52, 0.51, 0.49
2024-01-16 00:09:05 +08:00
tracer-ysyx
c20efb9cd2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 00:08:29  up 2 days 13:03,  2 users,  load average: 0.64, 0.53, 0.50
2024-01-16 00:08:29 +08:00
tracer-ysyx
c35d714e1c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 00:08:13  up 2 days 13:03,  2 users,  load average: 0.23, 0.45, 0.48
2024-01-16 00:08:13 +08:00
tracer-ysyx
dcecd62533 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 00:06:48  up 2 days 13:01,  2 users,  load average: 0.74, 0.57, 0.51
2024-01-16 00:06:48 +08:00
tracer-ysyx
2318d48525 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 00:03:02  up 2 days 12:57,  2 users,  load average: 0.65, 0.62, 0.53
2024-01-16 00:03:02 +08:00
tracer-ysyx
abcdb33dbf > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 00:02:52  up 2 days 12:57,  2 users,  load average: 0.58, 0.61, 0.52
2024-01-16 00:02:52 +08:00
tracer-ysyx
549aaa40fd > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 00:02:43  up 2 days 12:57,  2 users,  load average: 0.59, 0.62, 0.52
2024-01-16 00:02:43 +08:00
tracer-ysyx
72ab3ad041 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 00:02:23  up 2 days 12:57,  2 users,  load average: 0.54, 0.61, 0.52
2024-01-16 00:02:23 +08:00
tracer-ysyx
4203d25098 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:58:27  up 2 days 12:53,  2 users,  load average: 0.45, 0.34, 0.41
2024-01-15 23:58:27 +08:00
tracer-ysyx
c83dbf0854 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:58:10  up 2 days 12:53,  2 users,  load average: 0.29, 0.31, 0.40
2024-01-15 23:58:10 +08:00
tracer-ysyx
f5ff6239c7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:57:38  up 2 days 12:52,  2 users,  load average: 0.28, 0.31, 0.40
2024-01-15 23:57:38 +08:00
tracer-ysyx
e6d3d052a1 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:54:50  up 2 days 12:49,  2 users,  load average: 0.15, 0.34, 0.43
2024-01-15 23:54:50 +08:00
tracer-ysyx
487f4d8f3e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:54:31  up 2 days 12:49,  2 users,  load average: 0.12, 0.35, 0.44
2024-01-15 23:54:31 +08:00
tracer-ysyx
d3f330e74a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:51:56  up 2 days 12:46,  2 users,  load average: 0.25, 0.53, 0.50
2024-01-15 23:51:56 +08:00
tracer-ysyx
22ce94f4a4 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:48:41  up 2 days 12:43,  2 users,  load average: 0.79, 0.65, 0.52
2024-01-15 23:48:41 +08:00
tracer-ysyx
fb0d244ddd > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:42:02  up 2 days 12:36,  2 users,  load average: 0.57, 0.54, 0.44
2024-01-15 23:42:02 +08:00
tracer-ysyx
ddd40738c8 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:41:20  up 2 days 12:36,  2 users,  load average: 0.69, 0.55, 0.44
2024-01-15 23:41:20 +08:00
tracer-ysyx
768e8efe9d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:40:46  up 2 days 12:35,  2 users,  load average: 0.95, 0.58, 0.44
2024-01-15 23:40:46 +08:00
tracer-ysyx
4404802163 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:40:16  up 2 days 12:35,  2 users,  load average: 0.91, 0.54, 0.42
2024-01-15 23:40:16 +08:00
tracer-ysyx
70829c8d56 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:37:50  up 2 days 12:32,  2 users,  load average: 0.24, 0.32, 0.35
2024-01-15 23:37:50 +08:00
tracer-ysyx
3ec0c3a635 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:35:32  up 2 days 12:30,  2 users,  load average: 0.30, 0.35, 0.36
2024-01-15 23:35:32 +08:00
tracer-ysyx
5c6c03272c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:35:06  up 2 days 12:29,  2 users,  load average: 0.46, 0.38, 0.37
2024-01-15 23:35:06 +08:00
tracer-ysyx
1ab8e91cc2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:34:10  up 2 days 12:29,  2 users,  load average: 0.47, 0.39, 0.37
2024-01-15 23:34:10 +08:00
tracer-ysyx
03de8f744e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:32:34  up 2 days 12:27,  2 users,  load average: 0.56, 0.39, 0.37
2024-01-15 23:32:34 +08:00
tracer-ysyx
216d76ecef > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:32:05  up 2 days 12:26,  2 users,  load average: 0.47, 0.36, 0.36
2024-01-15 23:32:05 +08:00
tracer-ysyx
800cd64f98 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:31:50  up 2 days 12:26,  2 users,  load average: 0.42, 0.34, 0.35
2024-01-15 23:31:50 +08:00
tracer-ysyx
8970a2cac4 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:27:00  up 2 days 12:21,  2 users,  load average: 0.53, 0.46, 0.40
2024-01-15 23:27:00 +08:00
tracer-ysyx
0436356a3b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:21:37  up 2 days 12:16,  2 users,  load average: 0.25, 0.31, 0.35
2024-01-15 23:21:37 +08:00
tracer-ysyx
3f9d84b539 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:12:20  up 2 days 12:07,  2 users,  load average: 0.48, 0.40, 0.38
2024-01-15 23:12:20 +08:00
tracer-ysyx
370dc66f05 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:04:10  up 2 days 11:59,  2 users,  load average: 0.39, 0.40, 0.38
2024-01-15 23:04:10 +08:00
tracer-ysyx
c05cf3ce21 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 23:00:31  up 2 days 11:55,  2 users,  load average: 0.40, 0.44, 0.40
2024-01-15 23:00:31 +08:00
tracer-ysyx
d464f3f0c6 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:57:44  up 2 days 11:52,  2 users,  load average: 0.62, 0.43, 0.39
2024-01-15 22:57:44 +08:00
tracer-ysyx
819b096cbb > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:57:06  up 2 days 11:51,  2 users,  load average: 0.57, 0.38, 0.37
2024-01-15 22:57:06 +08:00
tracer-ysyx
469c1f22e5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:50:16  up 2 days 11:45,  2 users,  load average: 0.59, 0.39, 0.40
2024-01-15 22:50:16 +08:00
tracer-ysyx
77080c0707 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:49:55  up 2 days 11:44,  2 users,  load average: 0.72, 0.40, 0.41
2024-01-15 22:49:55 +08:00
tracer-ysyx
b4f72c1d57 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:48:27  up 2 days 11:43,  2 users,  load average: 0.35, 0.27, 0.37
2024-01-15 22:48:27 +08:00
tracer-ysyx
3938534a04 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:44:01  up 2 days 11:38,  2 users,  load average: 0.23, 0.39, 0.44
2024-01-15 22:44:01 +08:00
tracer-ysyx
7a387883ea > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:41:46  up 2 days 11:36,  2 users,  load average: 0.27, 0.48, 0.49
2024-01-15 22:41:46 +08:00
tracer-ysyx
06d81b80bd > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:40:44  up 2 days 11:35,  2 users,  load average: 0.59, 0.57, 0.52
2024-01-15 22:40:44 +08:00
tracer-ysyx
b2d030f081 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:40:24  up 2 days 11:35,  2 users,  load average: 0.20, 0.50, 0.49
2024-01-15 22:40:24 +08:00
tracer-ysyx
3a1d39bebf > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:34:52  up 2 days 11:29,  2 users,  load average: 0.89, 0.70, 0.50
2024-01-15 22:34:52 +08:00
tracer-ysyx
3ed490ab52 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:33:06  up 2 days 11:27,  2 users,  load average: 1.01, 0.67, 0.47
2024-01-15 22:33:06 +08:00
tracer-ysyx
435161caa3 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:32:57  up 2 days 11:27,  2 users,  load average: 1.01, 0.66, 0.47
2024-01-15 22:32:57 +08:00
tracer-ysyx
b1a8710d27 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:31:22  up 2 days 11:26,  2 users,  load average: 0.69, 0.53, 0.41
2024-01-15 22:31:22 +08:00
tracer-ysyx
20fc4cedbc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:30:48  up 2 days 11:25,  2 users,  load average: 0.74, 0.54, 0.41
2024-01-15 22:30:48 +08:00
tracer-ysyx
88a963e177 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:30:22  up 2 days 11:25,  2 users,  load average: 0.38, 0.45, 0.38
2024-01-15 22:30:22 +08:00
tracer-ysyx
b63d1203c9 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:26:51  up 2 days 11:21,  2 users,  load average: 1.14, 0.55, 0.39
2024-01-15 22:26:51 +08:00
tracer-ysyx
15c6204a16 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:26:36  up 2 days 11:21,  2 users,  load average: 0.96, 0.49, 0.37
2024-01-15 22:26:36 +08:00
tracer-ysyx
645d749c51 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:25:33  up 2 days 11:20,  2 users,  load average: 0.37, 0.36, 0.33
2024-01-15 22:25:33 +08:00
tracer-ysyx
8094cf286e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:23:31  up 2 days 11:18,  2 users,  load average: 0.45, 0.38, 0.33
2024-01-15 22:23:31 +08:00
tracer-ysyx
9d9c6f46fd > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:22:48  up 2 days 11:17,  2 users,  load average: 0.21, 0.33, 0.31
2024-01-15 22:22:48 +08:00
tracer-ysyx
a2ba5e8afd > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:18:32  up 2 days 11:13,  2 users,  load average: 0.65, 0.62, 0.38
2024-01-15 22:18:32 +08:00
tracer-ysyx
79f9a57165 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:18:26  up 2 days 11:13,  2 users,  load average: 0.57, 0.60, 0.38
2024-01-15 22:18:26 +08:00
tracer-ysyx
31aceb7bc9 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:17:42  up 2 days 11:12,  2 users,  load average: 1.12, 0.69, 0.40
2024-01-15 22:17:42 +08:00
tracer-ysyx
c995a80ce8 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 22:17:14  up 2 days 11:12,  2 users,  load average: 1.39, 0.69, 0.39
2024-01-15 22:17:14 +08:00
tracer-ysyx
f5cdb499b8 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 17:24:14  up 2 days  6:19,  2 users,  load average: 0.62, 0.49, 0.56
2024-01-15 17:24:14 +08:00
tracer-ysyx
9362deec51 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 17:21:16  up 2 days  6:16,  2 users,  load average: 0.33, 0.35, 0.54
2024-01-15 17:21:16 +08:00
tracer-ysyx
a9b909b66f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 17:17:47  up 2 days  6:12,  2 users,  load average: 0.22, 0.40, 0.60
2024-01-15 17:17:47 +08:00
tracer-ysyx
d3321a6fe8 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 17:17:38  up 2 days  6:12,  2 users,  load average: 0.16, 0.39, 0.60
2024-01-15 17:17:38 +08:00
tracer-ysyx
dfada8101b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 17:17:22  up 2 days  6:12,  2 users,  load average: 0.13, 0.40, 0.60
2024-01-15 17:17:22 +08:00
tracer-ysyx
1cd32d4968 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 17:09:34  up 2 days  6:04,  2 users,  load average: 1.21, 0.99, 0.84
2024-01-15 17:09:34 +08:00
tracer-ysyx
f8b8ae50b7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 17:03:26  up 2 days  5:58,  2 users,  load average: 0.73, 0.67, 0.70
2024-01-15 17:03:26 +08:00
tracer-ysyx
e5c95f5767 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 17:03:16  up 2 days  5:58,  2 users,  load average: 0.87, 0.69, 0.71
2024-01-15 17:03:16 +08:00
tracer-ysyx
a718c5c723 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 17:03:16  up 2 days  5:58,  2 users,  load average: 0.87, 0.69, 0.71
2024-01-15 17:03:16 +08:00
tracer-ysyx
7ccd5d8e83 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 16:27:37  up 2 days  5:22,  2 users,  load average: 0.21, 0.59, 0.70
2024-01-15 16:27:37 +08:00
tracer-ysyx
dd8a42d378 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 16:07:06  up 2 days  5:01,  2 users,  load average: 0.58, 0.64, 0.65
2024-01-15 16:07:06 +08:00
tracer-ysyx
363867e231 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 16:07:06  up 2 days  5:01,  2 users,  load average: 0.58, 0.64, 0.65
2024-01-15 16:07:06 +08:00
tracer-ysyx
296bd0483f > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 16:04:15  up 2 days  4:59,  2 users,  load average: 1.20, 0.76, 0.69
2024-01-15 16:04:15 +08:00
tracer-ysyx
294353437a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 16:04:14  up 2 days  4:59,  2 users,  load average: 1.20, 0.76, 0.69
2024-01-15 16:04:14 +08:00
tracer-ysyx
9507e0e4ac > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 14:24:08  up   3:18,  2 users,  load average: 1.49, 1.02, 0.78
2024-01-13 14:24:08 +08:00
tracer-ysyx
c2c33ebc33 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 14:24:08  up   3:18,  2 users,  load average: 1.49, 1.02, 0.78
2024-01-13 14:24:08 +08:00
tracer-ysyx
9e4228401a > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 14:23:56  up   3:18,  2 users,  load average: 1.48, 1.00, 0.77
2024-01-13 14:23:56 +08:00
tracer-ysyx
1e532e291b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 14:23:56  up   3:18,  2 users,  load average: 1.48, 1.00, 0.77
2024-01-13 14:23:56 +08:00
tracer-ysyx
d8ca076590 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 14:23:41  up   3:18,  2 users,  load average: 1.90, 1.06, 0.79
2024-01-13 14:23:41 +08:00
tracer-ysyx
8190bd4c1f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 14:23:41  up   3:18,  2 users,  load average: 1.90, 1.06, 0.79
2024-01-13 14:23:41 +08:00
tracer-ysyx
1b6da73d6c > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 14:15:08  up   3:09,  2 users,  load average: 0.44, 0.56, 0.61
2024-01-13 14:15:08 +08:00
tracer-ysyx
e57e2391ee > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 14:15:08  up   3:09,  2 users,  load average: 0.44, 0.56, 0.61
2024-01-13 14:15:08 +08:00
tracer-ysyx
e98c720d0b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 14:05:09  up   2:59,  2 users,  load average: 0.49, 0.83, 0.70
2024-01-13 14:05:09 +08:00
tracer-ysyx
c95d01a41c > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 11:22:12  up   0:17,  2 users,  load average: 0.25, 0.31, 0.19
2024-01-13 11:22:12 +08:00
tracer-ysyx
2eb45163a4 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 11:22:12  up   0:17,  2 users,  load average: 0.25, 0.31, 0.19
2024-01-13 11:22:12 +08:00
tracer-ysyx
1f36080d06 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 11:22:01  up   0:16,  2 users,  load average: 0.22, 0.31, 0.19
2024-01-13 11:22:01 +08:00
tracer-ysyx
faa5744d8f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 11:22:01  up   0:16,  2 users,  load average: 0.22, 0.31, 0.19
2024-01-13 11:22:01 +08:00
tracer-ysyx
f21008931b > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 11:21:51  up   0:16,  2 users,  load average: 0.24, 0.32, 0.19
2024-01-13 11:21:51 +08:00
tracer-ysyx
abab954dbb > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 11:21:51  up   0:16,  2 users,  load average: 0.24, 0.32, 0.19
2024-01-13 11:21:51 +08:00
tracer-ysyx
f72f814469 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 11:18:56  up   0:13,  2 users,  load average: 0.36, 0.26, 0.15
2024-01-13 11:18:56 +08:00
tracer-ysyx
e6d74ffc61 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 11:18:56  up   0:13,  2 users,  load average: 0.36, 0.26, 0.15
2024-01-13 11:18:56 +08:00
tracer-ysyx
995babb9e4 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 11:18:45  up   0:13,  2 users,  load average: 0.33, 0.25, 0.14
2024-01-13 11:18:45 +08:00
tracer-ysyx
eee17319a0 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 11:18:45  up   0:13,  2 users,  load average: 0.33, 0.25, 0.14
2024-01-13 11:18:45 +08:00
tracer-ysyx
7d8c7c33dd > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 11:18:05  up   0:12,  2 users,  load average: 0.53, 0.27, 0.14
2024-01-13 11:18:05 +08:00
tracer-ysyx
c70ced4738 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.71 #1-NixOS SMP PREEMPT_DYNAMIC Fri Jan  5 14:18:41 UTC 2024 x86_64 GNU/Linux
 11:18:05  up   0:12,  2 users,  load average: 0.53, 0.27, 0.14
2024-01-13 11:18:05 +08:00
tracer-ysyx
f5a7ed17f6 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:36:30  up 1 day 10:52,  2 users,  load average: 0.74, 0.65, 0.56
2024-01-13 10:36:30 +08:00
tracer-ysyx
c74f692289 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:36:30  up 1 day 10:52,  2 users,  load average: 0.74, 0.65, 0.56
2024-01-13 10:36:30 +08:00
tracer-ysyx
973429f199 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:35:17  up 1 day 10:51,  2 users,  load average: 0.51, 0.59, 0.53
2024-01-13 10:35:17 +08:00
tracer-ysyx
27f68fcbbe > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:35:17  up 1 day 10:51,  2 users,  load average: 0.51, 0.59, 0.53
2024-01-13 10:35:17 +08:00
tracer-ysyx
a9a1b391c9 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:35:03  up 1 day 10:50,  2 users,  load average: 0.56, 0.60, 0.54
2024-01-13 10:35:03 +08:00
tracer-ysyx
246fb09e16 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:35:03  up 1 day 10:50,  2 users,  load average: 0.56, 0.60, 0.54
2024-01-13 10:35:03 +08:00
tracer-ysyx
48d7905d0a > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:33:58  up 1 day 10:49,  2 users,  load average: 0.71, 0.64, 0.54
2024-01-13 10:33:58 +08:00
tracer-ysyx
3fce44c3e5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:33:58  up 1 day 10:49,  2 users,  load average: 0.71, 0.64, 0.54
2024-01-13 10:33:58 +08:00
tracer-ysyx
73e355b21d > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:31:58  up 1 day 10:47,  2 users,  load average: 0.88, 0.67, 0.54
2024-01-13 10:31:58 +08:00
tracer-ysyx
99d4110a2c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:31:58  up 1 day 10:47,  2 users,  load average: 0.88, 0.67, 0.54
2024-01-13 10:31:58 +08:00
tracer-ysyx
14a5d1d6b5 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:30:40  up 1 day 10:46,  2 users,  load average: 0.78, 0.59, 0.50
2024-01-13 10:30:40 +08:00
tracer-ysyx
b51e58a20f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:30:40  up 1 day 10:46,  2 users,  load average: 0.78, 0.59, 0.50
2024-01-13 10:30:40 +08:00
tracer-ysyx
d0e2e99305 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:29:01  up 1 day 10:44,  2 users,  load average: 1.05, 0.53, 0.48
2024-01-13 10:29:01 +08:00
tracer-ysyx
ba9e90e090 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:29:01  up 1 day 10:44,  2 users,  load average: 1.05, 0.53, 0.48
2024-01-13 10:29:01 +08:00
tracer-ysyx
7e0b6894fe > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:26:19  up 1 day 10:42,  2 users,  load average: 0.15, 0.33, 0.43
2024-01-13 10:26:19 +08:00
tracer-ysyx
f3e9318d98 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:26:19  up 1 day 10:42,  2 users,  load average: 0.15, 0.33, 0.43
2024-01-13 10:26:19 +08:00
tracer-ysyx
32912eed06 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:25:01  up 1 day 10:40,  2 users,  load average: 0.54, 0.43, 0.46
2024-01-13 10:25:01 +08:00
tracer-ysyx
5016ef5266 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:25:01  up 1 day 10:40,  2 users,  load average: 0.54, 0.43, 0.46
2024-01-13 10:25:01 +08:00
tracer-ysyx
0fd2cb98d4 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:23:33  up 1 day 10:39,  2 users,  load average: 0.48, 0.42, 0.47
2024-01-13 10:23:33 +08:00
tracer-ysyx
9e7d1f9f9f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:23:33  up 1 day 10:39,  2 users,  load average: 0.48, 0.42, 0.47
2024-01-13 10:23:33 +08:00
tracer-ysyx
f614d7afd5 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:21:59  up 1 day 10:37,  2 users,  load average: 0.48, 0.43, 0.49
2024-01-13 10:21:59 +08:00
tracer-ysyx
1811c60cf9 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:21:59  up 1 day 10:37,  2 users,  load average: 0.48, 0.43, 0.49
2024-01-13 10:21:59 +08:00
tracer-ysyx
8da91efc80 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:21:30  up 1 day 10:37,  2 users,  load average: 0.29, 0.40, 0.48
2024-01-13 10:21:30 +08:00
tracer-ysyx
436fd0a6cd > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:21:30  up 1 day 10:37,  2 users,  load average: 0.29, 0.40, 0.48
2024-01-13 10:21:30 +08:00
tracer-ysyx
ea30467cd6 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:19:57  up 1 day 10:35,  2 users,  load average: 0.21, 0.43, 0.50
2024-01-13 10:19:57 +08:00
tracer-ysyx
8629a28ed5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:19:57  up 1 day 10:35,  2 users,  load average: 0.21, 0.43, 0.50
2024-01-13 10:19:57 +08:00
tracer-ysyx
7a000a01a7 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:19:23  up 1 day 10:35,  2 users,  load average: 0.38, 0.49, 0.52
2024-01-13 10:19:23 +08:00
tracer-ysyx
b2e8c88532 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:19:23  up 1 day 10:35,  2 users,  load average: 0.38, 0.49, 0.52
2024-01-13 10:19:23 +08:00
tracer-ysyx
be1ac1f0a6 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:18:42  up 1 day 10:34,  2 users,  load average: 0.17, 0.47, 0.52
2024-01-13 10:18:42 +08:00
tracer-ysyx
862f8be292 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:18:42  up 1 day 10:34,  2 users,  load average: 0.17, 0.47, 0.52
2024-01-13 10:18:42 +08:00
tracer-ysyx
1cb2e8ebdf > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:15:52  up 1 day 10:31,  2 users,  load average: 0.57, 0.60, 0.56
2024-01-13 10:15:52 +08:00
tracer-ysyx
565bd887cc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:15:52  up 1 day 10:31,  2 users,  load average: 0.57, 0.60, 0.56
2024-01-13 10:15:52 +08:00
tracer-ysyx
cdd498e2be > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:13:56  up 1 day 10:29,  2 users,  load average: 0.82, 0.66, 0.57
2024-01-13 10:13:56 +08:00
tracer-ysyx
4c3fe9b49b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:13:34  up 1 day 10:29,  2 users,  load average: 0.87, 0.65, 0.57
2024-01-13 10:13:34 +08:00
tracer-ysyx
b823a50a03 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:13:19  up 1 day 10:29,  2 users,  load average: 0.42, 0.56, 0.54
2024-01-13 10:13:19 +08:00
tracer-ysyx
ed5286d81a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:12:48  up 1 day 10:28,  2 users,  load average: 0.51, 0.59, 0.55
2024-01-13 10:12:48 +08:00
tracer-ysyx
507190a9f2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:11:35  up 1 day 10:27,  2 users,  load average: 0.53, 0.61, 0.55
2024-01-13 10:11:35 +08:00
tracer-ysyx
9273d0c7d8 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:10:36  up 1 day 10:26,  2 users,  load average: 0.41, 0.59, 0.54
2024-01-13 10:10:36 +08:00
tracer-ysyx
a392840f6c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:08:55  up 1 day 10:24,  2 users,  load average: 0.84, 0.71, 0.58
2024-01-13 10:08:55 +08:00
tracer-ysyx
9bafb10c43 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:08:26  up 1 day 10:24,  2 users,  load average: 0.71, 0.67, 0.57
2024-01-13 10:08:26 +08:00
tracer-ysyx
bbdc49b229 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 10:08:10  up 1 day 10:24,  2 users,  load average: 0.92, 0.71, 0.58
2024-01-13 10:08:10 +08:00
tracer-ysyx
d20ea706e8 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:59:57  up 1 day 10:15,  2 users,  load average: 0.35, 0.44, 0.48
2024-01-13 09:59:57 +08:00
tracer-ysyx
6e4b46c26d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:59:57  up 1 day 10:15,  2 users,  load average: 0.35, 0.44, 0.48
2024-01-13 09:59:57 +08:00
tracer-ysyx
bf538dd98e > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:59:06  up 1 day 10:14,  2 users,  load average: 0.15, 0.44, 0.49
2024-01-13 09:59:06 +08:00
tracer-ysyx
622aeb1c58 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:59:06  up 1 day 10:14,  2 users,  load average: 0.15, 0.44, 0.49
2024-01-13 09:59:06 +08:00
tracer-ysyx
3d4e3243b3 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:58:59  up 1 day 10:14,  2 users,  load average: 0.18, 0.46, 0.50
2024-01-13 09:58:59 +08:00
tracer-ysyx
30b6784b8e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:58:59  up 1 day 10:14,  2 users,  load average: 0.18, 0.46, 0.50
2024-01-13 09:58:59 +08:00
tracer-ysyx
9b561034f5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:56:59  up 1 day 10:12,  2 users,  load average: 0.36, 0.59, 0.54
2024-01-13 09:56:59 +08:00
tracer-ysyx
f3b615a63e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:52:36  up 1 day 10:08,  2 users,  load average: 0.58, 0.76, 0.57
2024-01-13 09:52:36 +08:00
tracer-ysyx
70028b686f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:50:46  up 1 day 10:06,  2 users,  load average: 1.55, 0.84, 0.56
2024-01-13 09:50:46 +08:00
tracer-ysyx
8e6574b477 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:50:32  up 1 day 10:06,  2 users,  load average: 1.81, 0.85, 0.56
2024-01-13 09:50:32 +08:00
tracer-ysyx
d0d15c6088 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:50:26  up 1 day 10:06,  2 users,  load average: 1.88, 0.85, 0.56
2024-01-13 09:50:26 +08:00
tracer-ysyx
44a42b4d3c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:50:01  up 1 day 10:05,  2 users,  load average: 0.38, 0.51, 0.44
2024-01-13 09:50:01 +08:00
tracer-ysyx
0f52515269 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:48:32  up 1 day 10:04,  2 users,  load average: 0.68, 0.58, 0.46
2024-01-13 09:48:32 +08:00
tracer-ysyx
596a26b36c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:46:26  up 1 day 10:02,  2 users,  load average: 0.56, 0.48, 0.42
2024-01-13 09:46:26 +08:00
tracer-ysyx
0cfb776bc1 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:45:40  up 1 day 10:01,  2 users,  load average: 0.53, 0.46, 0.40
2024-01-13 09:45:40 +08:00
tracer-ysyx
2a3b7e9b2e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:45:22  up 1 day 10:01,  2 users,  load average: 0.56, 0.45, 0.40
2024-01-13 09:45:22 +08:00
tracer-ysyx
b2bb61bd4b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:43:01  up 1 day  9:58,  2 users,  load average: 0.47, 0.39, 0.38
2024-01-13 09:43:01 +08:00
tracer-ysyx
4bd3dd9803 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:42:29  up 1 day  9:58,  2 users,  load average: 0.55, 0.39, 0.38
2024-01-13 09:42:29 +08:00
tracer-ysyx
694c54c044 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:39:21  up 1 day  9:55,  2 users,  load average: 0.44, 0.34, 0.38
2024-01-13 09:39:21 +08:00
tracer-ysyx
5a9ac07d90 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:38:51  up 1 day  9:54,  2 users,  load average: 0.42, 0.32, 0.37
2024-01-13 09:38:51 +08:00
tracer-ysyx
b7dbbaeedc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:34:52  up 1 day  9:50,  2 users,  load average: 0.40, 0.34, 0.41
2024-01-13 09:34:52 +08:00
tracer-ysyx
d3f715fb4f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:34:30  up 1 day  9:50,  2 users,  load average: 0.38, 0.33, 0.41
2024-01-13 09:34:30 +08:00
tracer-ysyx
0a571ee71b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:32:38  up 1 day  9:48,  2 users,  load average: 0.04, 0.29, 0.41
2024-01-13 09:32:38 +08:00
tracer-ysyx
6988dfddbd > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:28:33  up 1 day  9:44,  2 users,  load average: 0.79, 0.56, 0.51
2024-01-13 09:28:33 +08:00
tracer-ysyx
41bf877ab7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:28:16  up 1 day  9:44,  2 users,  load average: 0.73, 0.54, 0.51
2024-01-13 09:28:16 +08:00
tracer-ysyx
c72c271524 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:28:02  up 1 day  9:43,  2 users,  load average: 0.57, 0.50, 0.49
2024-01-13 09:28:02 +08:00
tracer-ysyx
4dd025b960 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:27:47  up 1 day  9:43,  2 users,  load average: 0.56, 0.49, 0.49
2024-01-13 09:27:47 +08:00
tracer-ysyx
e79bf232dc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:27:33  up 1 day  9:43,  2 users,  load average: 0.45, 0.46, 0.48
2024-01-13 09:27:33 +08:00
tracer-ysyx
755eaa921c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:26:58  up 1 day  9:42,  2 users,  load average: 0.63, 0.49, 0.49
2024-01-13 09:26:58 +08:00
tracer-ysyx
74e272b7b5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 09:25:24  up 1 day  9:41,  2 users,  load average: 0.21, 0.43, 0.48
2024-01-13 09:25:24 +08:00
tracer-ysyx
6fe396f201 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 03:21:25  up 1 day  3:37,  2 users,  load average: 0.99, 0.64, 0.58
2024-01-13 03:21:25 +08:00
tracer-ysyx
39078a89c0 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 03:20:34  up 1 day  3:36,  2 users,  load average: 0.36, 0.53, 0.55
2024-01-13 03:20:34 +08:00
tracer-ysyx
f1bbfbbfc5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 03:18:57  up 1 day  3:34,  2 users,  load average: 0.61, 0.52, 0.55
2024-01-13 03:18:57 +08:00
tracer-ysyx
91370f0e4d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 03:17:26  up 1 day  3:33,  2 users,  load average: 0.49, 0.50, 0.55
2024-01-13 03:17:26 +08:00
tracer-ysyx
bddf345f41 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 03:15:33  up 1 day  3:31,  2 users,  load average: 0.44, 0.48, 0.55
2024-01-13 03:15:33 +08:00
tracer-ysyx
07cfd138c6 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 03:14:53  up 1 day  3:30,  2 users,  load average: 0.36, 0.48, 0.55
2024-01-13 03:14:53 +08:00
tracer-ysyx
e481c738ea > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 03:14:44  up 1 day  3:30,  2 users,  load average: 0.39, 0.49, 0.55
2024-01-13 03:14:44 +08:00
tracer-ysyx
dca6a95b84 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 03:14:31  up 1 day  3:30,  2 users,  load average: 0.50, 0.51, 0.56
2024-01-13 03:14:31 +08:00
tracer-ysyx
816ab15a75 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 03:11:38  up 1 day  3:27,  2 users,  load average: 0.37, 0.52, 0.58
2024-01-13 03:11:38 +08:00
tracer-ysyx
a3e3ce99dc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 03:10:22  up 1 day  3:26,  2 users,  load average: 0.80, 0.61, 0.61
2024-01-13 03:10:22 +08:00
tracer-ysyx
6e1385df6b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 03:06:03  up 1 day  3:21,  2 users,  load average: 0.57, 0.58, 0.62
2024-01-13 03:06:03 +08:00
tracer-ysyx
ace487b36e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 03:02:28  up 1 day  3:18,  2 users,  load average: 0.56, 0.61, 0.63
2024-01-13 03:02:28 +08:00
tracer-ysyx
1ec03cfb13 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 02:58:42  up 1 day  3:14,  2 users,  load average: 0.82, 0.81, 0.69
2024-01-13 02:58:42 +08:00
tracer-ysyx
a0c0c2c776 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 02:58:02  up 1 day  3:13,  2 users,  load average: 1.13, 0.85, 0.70
2024-01-13 02:58:02 +08:00
tracer-ysyx
b97e2bf469 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 02:55:41  up 1 day  3:11,  2 users,  load average: 0.95, 0.77, 0.65
2024-01-13 02:55:41 +08:00
tracer-ysyx
70ec0a166a > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 01:11:44  up 1 day  1:27,  2 users,  load average: 1.55, 1.68, 1.74
2024-01-13 01:11:44 +08:00
tracer-ysyx
20bf8669d7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 01:11:44  up 1 day  1:27,  2 users,  load average: 1.55, 1.68, 1.74
2024-01-13 01:11:44 +08:00
tracer-ysyx
3ccf684730 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 01:09:03  up 1 day  1:24,  2 users,  load average: 1.94, 1.94, 1.82
2024-01-13 01:09:03 +08:00
tracer-ysyx
570e2d97f2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 01:09:03  up 1 day  1:24,  2 users,  load average: 1.94, 1.94, 1.82
2024-01-13 01:09:03 +08:00
tracer-ysyx
32db339856 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 01:07:20  up 1 day  1:23,  2 users,  load average: 1.59, 1.88, 1.78
2024-01-13 01:07:20 +08:00
tracer-ysyx
6b0a221401 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 01:07:20  up 1 day  1:23,  2 users,  load average: 1.59, 1.88, 1.78
2024-01-13 01:07:20 +08:00
tracer-ysyx
b88c898e3b > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 23:23:55  up  23:39,  2 users,  load average: 0.66, 0.70, 0.57
2024-01-12 23:23:55 +08:00
tracer-ysyx
695a1d6acb > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 23:23:55  up  23:39,  2 users,  load average: 0.66, 0.70, 0.57
2024-01-12 23:23:55 +08:00
tracer-ysyx
2b478c7c47 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 23:23:43  up  23:39,  2 users,  load average: 0.78, 0.72, 0.57
2024-01-12 23:23:43 +08:00
tracer-ysyx
a1e7000829 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 23:23:43  up  23:39,  2 users,  load average: 0.78, 0.72, 0.57
2024-01-12 23:23:43 +08:00
tracer-ysyx
965ce580d8 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:12:25  up  22:28,  2 users,  load average: 0.30, 0.31, 0.44
2024-01-12 22:12:25 +08:00
tracer-ysyx
3761d8b7b6 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:12:25  up  22:28,  2 users,  load average: 0.30, 0.31, 0.44
2024-01-12 22:12:25 +08:00
tracer-ysyx
89132dd14d > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:12:08  up  22:28,  2 users,  load average: 0.25, 0.30, 0.44
2024-01-12 22:12:08 +08:00
tracer-ysyx
6de96db503 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:12:08  up  22:28,  2 users,  load average: 0.25, 0.30, 0.44
2024-01-12 22:12:08 +08:00
tracer-ysyx
460a221325 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:12:04  up  22:27,  2 users,  load average: 0.27, 0.31, 0.44
2024-01-12 22:12:04 +08:00
tracer-ysyx
b80e1a928b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:12:04  up  22:27,  2 users,  load average: 0.27, 0.31, 0.44
2024-01-12 22:12:04 +08:00
tracer-ysyx
bada305a29 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:07:58  up  22:23,  2 users,  load average: 0.20, 0.36, 0.50
2024-01-12 22:07:58 +08:00
tracer-ysyx
e6f189549e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:07:58  up  22:23,  2 users,  load average: 0.20, 0.36, 0.50
2024-01-12 22:07:58 +08:00
tracer-ysyx
1fe8443630 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:07:12  up  22:23,  2 users,  load average: 0.30, 0.40, 0.52
2024-01-12 22:07:12 +08:00
tracer-ysyx
37ae884365 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:07:12  up  22:23,  2 users,  load average: 0.30, 0.40, 0.52
2024-01-12 22:07:12 +08:00
tracer-ysyx
def5654aa5 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:06:18  up  22:22,  2 users,  load average: 0.60, 0.46, 0.55
2024-01-12 22:06:18 +08:00
tracer-ysyx
a3d60c6b24 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:06:18  up  22:22,  2 users,  load average: 0.60, 0.46, 0.55
2024-01-12 22:06:18 +08:00
tracer-ysyx
63393e0648 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:00:44  up  22:16,  2 users,  load average: 0.46, 0.49, 0.61
2024-01-12 22:00:44 +08:00
tracer-ysyx
8edca8921c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:00:44  up  22:16,  2 users,  load average: 0.46, 0.49, 0.61
2024-01-12 22:00:44 +08:00
tracer-ysyx
566ea65ff6 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:59:40  up  22:15,  2 users,  load average: 0.93, 0.57, 0.64
2024-01-12 21:59:40 +08:00
tracer-ysyx
436948cfb2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:59:40  up  22:15,  2 users,  load average: 0.93, 0.57, 0.64
2024-01-12 21:59:40 +08:00
tracer-ysyx
c23729e4dc > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:59:09  up  22:15,  2 users,  load average: 0.66, 0.49, 0.62
2024-01-12 21:59:09 +08:00
tracer-ysyx
67bf630b6b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:59:09  up  22:15,  2 users,  load average: 0.66, 0.49, 0.62
2024-01-12 21:59:09 +08:00
tracer-ysyx
831b0b6889 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:58:51  up  22:14,  2 users,  load average: 0.55, 0.46, 0.61
2024-01-12 21:58:51 +08:00
tracer-ysyx
49fac50878 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:58:50  up  22:14,  2 users,  load average: 0.55, 0.46, 0.61
2024-01-12 21:58:50 +08:00
tracer-ysyx
2cbfd0dbfb > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:57:22  up  22:13,  2 users,  load average: 0.25, 0.43, 0.61
2024-01-12 21:57:22 +08:00
tracer-ysyx
527cca1e9b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:57:22  up  22:13,  2 users,  load average: 0.25, 0.43, 0.61
2024-01-12 21:57:22 +08:00
tracer-ysyx
a1953d329b > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:56:31  up  22:12,  2 users,  load average: 0.25, 0.47, 0.64
2024-01-12 21:56:31 +08:00
tracer-ysyx
70eaa7c2bf > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:56:31  up  22:12,  2 users,  load average: 0.25, 0.47, 0.64
2024-01-12 21:56:31 +08:00
tracer-ysyx
03a073a56d > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:54:29  up  22:10,  2 users,  load average: 0.59, 0.63, 0.71
2024-01-12 21:54:29 +08:00
tracer-ysyx
f6e3993939 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:54:29  up  22:10,  2 users,  load average: 0.59, 0.63, 0.71
2024-01-12 21:54:29 +08:00
tracer-ysyx
44cd3c1fb3 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:53:00  up  22:08,  2 users,  load average: 0.43, 0.60, 0.71
2024-01-12 21:53:00 +08:00
tracer-ysyx
e1e510bd1a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:52:59  up  22:08,  2 users,  load average: 0.43, 0.60, 0.71
2024-01-12 21:52:59 +08:00
tracer-ysyx
d49f403def > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:52:51  up  22:08,  2 users,  load average: 0.38, 0.60, 0.71
2024-01-12 21:52:51 +08:00
tracer-ysyx
db7df57f9e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:52:51  up  22:08,  2 users,  load average: 0.38, 0.60, 0.71
2024-01-12 21:52:51 +08:00
tracer-ysyx
0836546f6a > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:51:59  up  22:07,  2 users,  load average: 0.66, 0.68, 0.74
2024-01-12 21:51:59 +08:00
tracer-ysyx
c8f6eb8ea1 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:51:59  up  22:07,  2 users,  load average: 0.66, 0.68, 0.74
2024-01-12 21:51:59 +08:00
tracer-ysyx
6c46a1d918 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:51:48  up  22:07,  2 users,  load average: 0.69, 0.69, 0.74
2024-01-12 21:51:48 +08:00
tracer-ysyx
72c1de1a91 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:51:48  up  22:07,  2 users,  load average: 0.69, 0.69, 0.74
2024-01-12 21:51:48 +08:00
tracer-ysyx
d8dd740c97 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:51:19  up  22:07,  2 users,  load average: 1.01, 0.74, 0.76
2024-01-12 21:51:19 +08:00
tracer-ysyx
eee0b219db > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:51:18  up  22:07,  2 users,  load average: 1.01, 0.74, 0.76
2024-01-12 21:51:18 +08:00
tracer-ysyx
89bca987dc > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:50:11  up  22:06,  2 users,  load average: 0.67, 0.64, 0.74
2024-01-12 21:50:11 +08:00
tracer-ysyx
15d3ff87e2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:50:10  up  22:06,  2 users,  load average: 0.67, 0.64, 0.74
2024-01-12 21:50:10 +08:00
tracer-ysyx
f7481e5870 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:49:53  up  22:05,  2 users,  load average: 0.53, 0.61, 0.73
2024-01-12 21:49:53 +08:00
tracer-ysyx
4290e11bc7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:49:52  up  22:05,  2 users,  load average: 0.53, 0.61, 0.73
2024-01-12 21:49:52 +08:00
tracer-ysyx
fed7bc355d > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:47:39  up  22:03,  2 users,  load average: 0.62, 0.67, 0.77
2024-01-12 21:47:39 +08:00
tracer-ysyx
b4ee94a1dd > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:47:38  up  22:03,  2 users,  load average: 0.62, 0.67, 0.77
2024-01-12 21:47:38 +08:00
tracer-ysyx
9e09270bde > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:47:09  up  22:03,  2 users,  load average: 0.41, 0.65, 0.77
2024-01-12 21:47:09 +08:00
tracer-ysyx
47109ce3f2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:47:08  up  22:03,  2 users,  load average: 0.41, 0.65, 0.77
2024-01-12 21:47:08 +08:00
tracer-ysyx
34e53c9d92 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:43:12  up  21:59,  2 users,  load average: 0.67, 0.75, 0.81
2024-01-12 21:43:12 +08:00
tracer-ysyx
ef896f8c3e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:43:11  up  21:59,  2 users,  load average: 0.67, 0.75, 0.81
2024-01-12 21:43:11 +08:00
tracer-ysyx
8f4aa65a0f > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:40:01  up  21:55,  2 users,  load average: 1.02, 0.93, 0.88
2024-01-12 21:40:01 +08:00
tracer-ysyx
44874a3696 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:40:01  up  21:55,  2 users,  load average: 1.02, 0.93, 0.88
2024-01-12 21:40:01 +08:00
tracer-ysyx
7e74c0c20b > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:34:25  up  21:50,  2 users,  load average: 0.53, 0.70, 0.82
2024-01-12 21:34:25 +08:00
tracer-ysyx
c344fcd2d2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:34:25  up  21:50,  2 users,  load average: 0.53, 0.70, 0.82
2024-01-12 21:34:25 +08:00
tracer-ysyx
680b1d1913 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:25:07  up  21:40,  2 users,  load average: 0.81, 0.77, 0.89
2024-01-12 21:25:07 +08:00
tracer-ysyx
4c1ec5b003 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 21:25:07  up  21:40,  2 users,  load average: 0.81, 0.77, 0.89
2024-01-12 21:25:07 +08:00
tracer-ysyx
74fcff1ca7 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:18:06  up  18:33,  2 users,  load average: 0.52, 0.47, 0.37
2024-01-12 18:18:06 +08:00
tracer-ysyx
2f28626c6f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:18:06  up  18:33,  2 users,  load average: 0.52, 0.47, 0.37
2024-01-12 18:18:06 +08:00
tracer-ysyx
d64ce4f9ad > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:17:14  up  18:33,  2 users,  load average: 0.78, 0.50, 0.38
2024-01-12 18:17:14 +08:00
tracer-ysyx
c959913320 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:17:14  up  18:33,  2 users,  load average: 0.78, 0.50, 0.38
2024-01-12 18:17:14 +08:00
tracer-ysyx
4d35124b2d > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:16:58  up  18:32,  2 users,  load average: 0.53, 0.44, 0.35
2024-01-12 18:16:58 +08:00
tracer-ysyx
42fb48b9da > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:16:58  up  18:32,  2 users,  load average: 0.53, 0.44, 0.35
2024-01-12 18:16:58 +08:00
tracer-ysyx
06659f91d0 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:44:55  up  18:00,  2 users,  load average: 0.40, 0.41, 0.43
2024-01-12 17:44:55 +08:00
tracer-ysyx
572c21e107 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:44:55  up  18:00,  2 users,  load average: 0.40, 0.41, 0.43
2024-01-12 17:44:55 +08:00
tracer-ysyx
c797ce8fb4 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:44:19  up  18:00,  2 users,  load average: 0.36, 0.40, 0.43
2024-01-12 17:44:19 +08:00
tracer-ysyx
c5221fb06e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:44:19  up  18:00,  2 users,  load average: 0.36, 0.40, 0.43
2024-01-12 17:44:19 +08:00
tracer-ysyx
2e79ea300a > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:44:16  up  18:00,  2 users,  load average: 0.40, 0.41, 0.43
2024-01-12 17:44:16 +08:00
tracer-ysyx
f899642a31 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:44:16  up  18:00,  2 users,  load average: 0.40, 0.41, 0.43
2024-01-12 17:44:16 +08:00
tracer-ysyx
efdf654607 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:43:52  up  17:59,  2 users,  load average: 0.25, 0.39, 0.43
2024-01-12 17:43:52 +08:00
tracer-ysyx
efd9877b30 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:43:52  up  17:59,  2 users,  load average: 0.25, 0.39, 0.43
2024-01-12 17:43:52 +08:00
tracer-ysyx
d4ca18ee2e > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:43:42  up  17:59,  2 users,  load average: 0.30, 0.40, 0.43
2024-01-12 17:43:42 +08:00
tracer-ysyx
1ae4b8e87b > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:43:42  up  17:59,  2 users,  load average: 0.30, 0.40, 0.43
2024-01-12 17:43:42 +08:00
tracer-ysyx
2e10b2abe0 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:40:39  up  17:56,  2 users,  load average: 0.54, 0.46, 0.45
2024-01-12 17:40:39 +08:00
tracer-ysyx
1b4338bb0f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:40:39  up  17:56,  2 users,  load average: 0.54, 0.46, 0.45
2024-01-12 17:40:39 +08:00
tracer-ysyx
3ed5a7e2c2 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:29:50  up  17:45,  2 users,  load average: 0.36, 0.53, 0.43
2024-01-12 17:29:50 +08:00
tracer-ysyx
8f73809a16 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:29:50  up  17:45,  2 users,  load average: 0.36, 0.53, 0.43
2024-01-12 17:29:50 +08:00
tracer-ysyx
3eac7a318f > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 16:01:06  up  16:16,  2 users,  load average: 0.51, 0.45, 0.54
2024-01-12 16:01:06 +08:00
tracer-ysyx
1ecdd3e6e2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 16:01:06  up  16:16,  2 users,  load average: 0.51, 0.45, 0.54
2024-01-12 16:01:06 +08:00
tracer-ysyx
affc1c5ff9 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 15:19:28  up  15:35,  2 users,  load average: 0.29, 0.58, 0.59
2024-01-12 15:19:28 +08:00
tracer-ysyx
a7b6bc015f > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 15:19:28  up  15:35,  2 users,  load average: 0.29, 0.58, 0.59
2024-01-12 15:19:28 +08:00
tracer-ysyx
09a6519005 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 15:19:17  up  15:35,  2 users,  load average: 0.35, 0.60, 0.60
2024-01-12 15:19:17 +08:00
tracer-ysyx
86c55d7b06 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 15:19:17  up  15:35,  2 users,  load average: 0.35, 0.60, 0.60
2024-01-12 15:19:17 +08:00
tracer-ysyx
146ba011af > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 23:13:32  up 3 days 22:14,  2 users,  load average: 0.32, 0.51, 0.72
2024-01-11 23:13:32 +08:00
tracer-ysyx
478aedf87a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 23:13:32  up 3 days 22:14,  2 users,  load average: 0.32, 0.51, 0.72
2024-01-11 23:13:32 +08:00
tracer-ysyx
62a4d0f5c4 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 23:11:46  up 3 days 22:12,  2 users,  load average: 0.49, 0.61, 0.78
2024-01-11 23:11:46 +08:00
tracer-ysyx
17e04161c2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 23:11:45  up 3 days 22:12,  2 users,  load average: 0.49, 0.61, 0.78
2024-01-11 23:11:45 +08:00
tracer-ysyx
2df6be0dfa > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 23:10:26  up 3 days 22:11,  2 users,  load average: 0.50, 0.63, 0.80
2024-01-11 23:10:26 +08:00
tracer-ysyx
2174a96662 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 23:10:26  up 3 days 22:11,  2 users,  load average: 0.50, 0.63, 0.80
2024-01-11 23:10:26 +08:00
tracer-ysyx
a251ef6adc > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:43:45  up 3 days 21:44,  2 users,  load average: 0.83, 0.84, 0.90
2024-01-11 22:43:45 +08:00
tracer-ysyx
cc29fd2f1c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:43:45  up 3 days 21:44,  2 users,  load average: 0.82, 0.84, 0.90
2024-01-11 22:43:45 +08:00
tracer-ysyx
0f88247e0d > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:43:13  up 3 days 21:43,  2 users,  load average: 0.46, 0.80, 0.89
2024-01-11 22:43:13 +08:00
tracer-ysyx
26df7f1440 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:43:13  up 3 days 21:43,  2 users,  load average: 0.46, 0.80, 0.89
2024-01-11 22:43:13 +08:00
tracer-ysyx
991cc19536 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:42:36  up 3 days 21:43,  2 users,  load average: 0.65, 0.87, 0.92
2024-01-11 22:42:36 +08:00
tracer-ysyx
2c1747eaab > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:42:36  up 3 days 21:43,  2 users,  load average: 0.65, 0.87, 0.92
2024-01-11 22:42:36 +08:00
tracer-ysyx
656ddd2dfd > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:42:22  up 3 days 21:43,  2 users,  load average: 0.64, 0.88, 0.92
2024-01-11 22:42:22 +08:00
tracer-ysyx
df71a7b030 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:42:22  up 3 days 21:43,  2 users,  load average: 0.64, 0.88, 0.92
2024-01-11 22:42:22 +08:00
tracer-ysyx
2efa6cd15e > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:41:21  up 3 days 21:42,  2 users,  load average: 0.69, 0.94, 0.95
2024-01-11 22:41:21 +08:00
tracer-ysyx
f4c4758627 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:41:21  up 3 days 21:42,  2 users,  load average: 0.69, 0.94, 0.95
2024-01-11 22:41:21 +08:00
tracer-ysyx
40dccf6a54 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:40:36  up 3 days 21:41,  2 users,  load average: 0.95, 1.01, 0.97
2024-01-11 22:40:36 +08:00
tracer-ysyx
04ab911f43 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:40:36  up 3 days 21:41,  2 users,  load average: 0.95, 1.01, 0.97
2024-01-11 22:40:36 +08:00
tracer-ysyx
efa7de48cc > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:40:01  up 3 days 21:40,  2 users,  load average: 1.22, 1.06, 0.98
2024-01-11 22:40:01 +08:00
tracer-ysyx
9385743084 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:40:01  up 3 days 21:40,  2 users,  load average: 1.22, 1.06, 0.98
2024-01-11 22:40:01 +08:00
tracer-ysyx
262133eb4c > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:38:24  up 3 days 21:39,  2 users,  load average: 0.88, 1.02, 0.96
2024-01-11 22:38:24 +08:00
tracer-ysyx
b8c56ce819 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:38:24  up 3 days 21:39,  2 users,  load average: 0.88, 1.02, 0.96
2024-01-11 22:38:24 +08:00
tracer-ysyx
10cdf4151f > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:38:02  up 3 days 21:38,  2 users,  load average: 1.03, 1.06, 0.97
2024-01-11 22:38:02 +08:00
tracer-ysyx
7bf17d3663 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:38:02  up 3 days 21:38,  2 users,  load average: 1.03, 1.06, 0.97
2024-01-11 22:38:02 +08:00
tracer-ysyx
b3a7f26b9d > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:37:37  up 3 days 21:38,  2 users,  load average: 1.56, 1.15, 1.00
2024-01-11 22:37:37 +08:00
tracer-ysyx
08177e20f4 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:37:36  up 3 days 21:38,  2 users,  load average: 1.56, 1.15, 1.00
2024-01-11 22:37:36 +08:00
tracer-ysyx
6c2aa3fa5c > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:35:40  up 3 days 21:36,  2 users,  load average: 1.54, 1.13, 0.98
2024-01-11 22:35:40 +08:00
tracer-ysyx
074ac0a663 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:35:40  up 3 days 21:36,  2 users,  load average: 1.54, 1.13, 0.98
2024-01-11 22:35:40 +08:00
tracer-ysyx
14ae14bd41 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:32:06  up 3 days 21:32,  2 users,  load average: 0.55, 0.87, 0.88
2024-01-11 22:32:06 +08:00
tracer-ysyx
fc41461acf > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:32:06  up 3 days 21:32,  2 users,  load average: 0.55, 0.87, 0.88
2024-01-11 22:32:06 +08:00
tracer-ysyx
9f11fdf30e > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:31:44  up 3 days 21:32,  2 users,  load average: 0.84, 0.95, 0.90
2024-01-11 22:31:44 +08:00
tracer-ysyx
bbc96cb7cf > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:31:44  up 3 days 21:32,  2 users,  load average: 0.84, 0.95, 0.90
2024-01-11 22:31:44 +08:00
tracer-ysyx
b1f026977e > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:31:30  up 3 days 21:32,  2 users,  load average: 0.99, 0.98, 0.92
2024-01-11 22:31:30 +08:00
tracer-ysyx
ed1d62143c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:31:30  up 3 days 21:32,  2 users,  load average: 0.99, 0.98, 0.92
2024-01-11 22:31:30 +08:00
tracer-ysyx
04ccee4b8c > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:30:34  up 3 days 21:31,  2 users,  load average: 0.83, 0.97, 0.91
2024-01-11 22:30:34 +08:00
tracer-ysyx
44d5ac60aa > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:30:34  up 3 days 21:31,  2 users,  load average: 0.83, 0.97, 0.91
2024-01-11 22:30:34 +08:00
tracer-ysyx
8f7e17253f > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:29:34  up 3 days 21:30,  2 users,  load average: 1.01, 1.05, 0.93
2024-01-11 22:29:34 +08:00
tracer-ysyx
f354b3af92 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:29:34  up 3 days 21:30,  2 users,  load average: 1.01, 1.05, 0.93
2024-01-11 22:29:34 +08:00
tracer-ysyx
eac5301908 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:28:54  up 3 days 21:29,  2 users,  load average: 0.64, 1.01, 0.91
2024-01-11 22:28:54 +08:00
tracer-ysyx
3fd601183a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:28:54  up 3 days 21:29,  2 users,  load average: 0.64, 1.01, 0.91
2024-01-11 22:28:54 +08:00
tracer-ysyx
32f5ddfed0 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:27:22  up 3 days 21:28,  2 users,  load average: 0.86, 1.16, 0.95
2024-01-11 22:27:22 +08:00
tracer-ysyx
e824fa77dd > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:27:22  up 3 days 21:28,  2 users,  load average: 0.86, 1.16, 0.95
2024-01-11 22:27:22 +08:00
tracer-ysyx
d98cf10f17 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:27:05  up 3 days 21:27,  2 users,  load average: 0.92, 1.18, 0.95
2024-01-11 22:27:05 +08:00
tracer-ysyx
e2d7943dd8 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:27:05  up 3 days 21:27,  2 users,  load average: 0.92, 1.18, 0.95
2024-01-11 22:27:05 +08:00
tracer-ysyx
cecb184229 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:25:29  up 3 days 21:26,  2 users,  load average: 1.44, 1.34, 0.97
2024-01-11 22:25:29 +08:00
tracer-ysyx
9674f3b0c2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:25:29  up 3 days 21:26,  2 users,  load average: 1.44, 1.34, 0.97
2024-01-11 22:25:29 +08:00
tracer-ysyx
6dde11822d > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:23:16  up 3 days 21:24,  2 users,  load average: 1.66, 1.11, 0.84
2024-01-11 22:23:16 +08:00
tracer-ysyx
21c7c9ce35 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 22:23:16  up 3 days 21:24,  2 users,  load average: 1.66, 1.11, 0.84
2024-01-11 22:23:16 +08:00
tracer-ysyx
43ea6aac16 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:59:20  up 3 days 20:00,  2 users,  load average: 1.03, 0.92, 0.79
2024-01-11 20:59:20 +08:00
tracer-ysyx
c0d4b9ff30 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:59:20  up 3 days 20:00,  2 users,  load average: 1.03, 0.92, 0.79
2024-01-11 20:59:20 +08:00
tracer-ysyx
291935091a > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:57:18  up 3 days 19:58,  2 users,  load average: 0.33, 0.80, 0.74
2024-01-11 20:57:18 +08:00
tracer-ysyx
28aa2d11dc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:57:18  up 3 days 19:58,  2 users,  load average: 0.33, 0.80, 0.74
2024-01-11 20:57:18 +08:00
tracer-ysyx
fabdb57796 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:56:49  up 3 days 19:57,  2 users,  load average: 0.44, 0.86, 0.76
2024-01-11 20:56:49 +08:00
tracer-ysyx
c8a662c9e2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:56:49  up 3 days 19:57,  2 users,  load average: 0.44, 0.86, 0.76
2024-01-11 20:56:49 +08:00
tracer-ysyx
fc7a46b721 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:56:08  up 3 days 19:56,  2 users,  load average: 0.65, 0.96, 0.78
2024-01-11 20:56:08 +08:00
tracer-ysyx
336213bdfc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:56:08  up 3 days 19:56,  2 users,  load average: 0.65, 0.96, 0.78
2024-01-11 20:56:08 +08:00
tracer-ysyx
eff5ed0086 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:55:52  up 3 days 19:56,  2 users,  load average: 0.80, 1.00, 0.79
2024-01-11 20:55:52 +08:00
tracer-ysyx
deb8742bc0 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:55:51  up 3 days 19:56,  2 users,  load average: 0.80, 1.00, 0.79
2024-01-11 20:55:51 +08:00
tracer-ysyx
fe0fed108c > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:54:51  up 3 days 19:55,  2 users,  load average: 1.23, 1.12, 0.81
2024-01-11 20:54:51 +08:00
tracer-ysyx
ffe976ca81 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:54:51  up 3 days 19:55,  2 users,  load average: 1.23, 1.12, 0.81
2024-01-11 20:54:51 +08:00
tracer-ysyx
2a51f1df41 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:54:18  up 3 days 19:55,  2 users,  load average: 1.92, 1.22, 0.83
2024-01-11 20:54:18 +08:00
tracer-ysyx
d57c650281 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:54:18  up 3 days 19:55,  2 users,  load average: 1.92, 1.22, 0.83
2024-01-11 20:54:18 +08:00
tracer-ysyx
d785479b62 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:51:56  up 3 days 19:52,  2 users,  load average: 0.43, 0.73, 0.64
2024-01-11 20:51:56 +08:00
tracer-ysyx
4df280320a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:51:56  up 3 days 19:52,  2 users,  load average: 0.43, 0.73, 0.64
2024-01-11 20:51:56 +08:00
tracer-ysyx
73a811a814 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:49:57  up 3 days 19:50,  2 users,  load average: 1.14, 0.90, 0.68
2024-01-11 20:49:57 +08:00
tracer-ysyx
5ed1278cd7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:49:56  up 3 days 19:50,  2 users,  load average: 1.14, 0.90, 0.68
2024-01-11 20:49:56 +08:00
tracer-ysyx
28587868a2 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:49:42  up 3 days 19:50,  2 users,  load average: 1.26, 0.91, 0.68
2024-01-11 20:49:42 +08:00
tracer-ysyx
60cb7ee36a > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:49:42  up 3 days 19:50,  2 users,  load average: 1.26, 0.91, 0.68
2024-01-11 20:49:42 +08:00
tracer-ysyx
ba8658f385 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:34:02  up 3 days 19:34,  2 users,  load average: 0.42, 0.44, 0.47
2024-01-11 20:34:02 +08:00
tracer-ysyx
eb22a9779c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:34:02  up 3 days 19:34,  2 users,  load average: 0.42, 0.44, 0.47
2024-01-11 20:34:02 +08:00
tracer-ysyx
9a0c647c48 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:30:55  up 3 days 19:31,  2 users,  load average: 0.70, 0.55, 0.51
2024-01-11 20:30:55 +08:00
tracer-ysyx
8447e18ab9 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:30:55  up 3 days 19:31,  2 users,  load average: 0.70, 0.55, 0.51
2024-01-11 20:30:55 +08:00
tracer-ysyx
9930dd6f20 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:30:31  up 3 days 19:31,  2 users,  load average: 0.37, 0.49, 0.49
2024-01-11 20:30:31 +08:00
tracer-ysyx
a192a386e8 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:30:31  up 3 days 19:31,  2 users,  load average: 0.37, 0.49, 0.49
2024-01-11 20:30:31 +08:00
tracer-ysyx
6576960b2c > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:30:13  up 3 days 19:30,  2 users,  load average: 0.48, 0.52, 0.50
2024-01-11 20:30:13 +08:00
tracer-ysyx
7d529b95c4 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:30:13  up 3 days 19:30,  2 users,  load average: 0.48, 0.52, 0.50
2024-01-11 20:30:13 +08:00
tracer-ysyx
ee735b67d2 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:28:18  up 3 days 19:29,  2 users,  load average: 0.68, 0.51, 0.49
2024-01-11 20:28:18 +08:00
tracer-ysyx
4a991f9773 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:28:18  up 3 days 19:29,  2 users,  load average: 0.68, 0.51, 0.49
2024-01-11 20:28:18 +08:00
tracer-ysyx
e22f28b1c6 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:25:38  up 3 days 19:26,  2 users,  load average: 0.53, 0.42, 0.47
2024-01-11 20:25:38 +08:00
tracer-ysyx
06ccc28961 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:25:38  up 3 days 19:26,  2 users,  load average: 0.53, 0.42, 0.47
2024-01-11 20:25:38 +08:00
tracer-ysyx
094ac9557b > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:25:29  up 3 days 19:26,  2 users,  load average: 0.62, 0.44, 0.48
2024-01-11 20:25:29 +08:00
tracer-ysyx
b59a54d020 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:25:29  up 3 days 19:26,  2 users,  load average: 0.62, 0.44, 0.48
2024-01-11 20:25:29 +08:00
tracer-ysyx
b1ce077811 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:23:21  up 3 days 19:24,  2 users,  load average: 0.18, 0.39, 0.48
2024-01-11 20:23:21 +08:00
tracer-ysyx
06f8a46912 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:23:21  up 3 days 19:24,  2 users,  load average: 0.18, 0.39, 0.48
2024-01-11 20:23:21 +08:00
tracer-ysyx
1b68eabc57 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:22:54  up 3 days 19:23,  2 users,  load average: 0.28, 0.42, 0.49
2024-01-11 20:22:54 +08:00
tracer-ysyx
bcf00da892 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:22:54  up 3 days 19:23,  2 users,  load average: 0.28, 0.42, 0.49
2024-01-11 20:22:54 +08:00
tracer-ysyx
734c1bbcfc > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:22:35  up 3 days 19:23,  2 users,  load average: 0.39, 0.45, 0.50
2024-01-11 20:22:35 +08:00
tracer-ysyx
4ef7fe649d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:22:35  up 3 days 19:23,  2 users,  load average: 0.39, 0.45, 0.50
2024-01-11 20:22:35 +08:00
tracer-ysyx
dd5c889dde > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:21:36  up 3 days 19:22,  2 users,  load average: 0.78, 0.51, 0.52
2024-01-11 20:21:36 +08:00
tracer-ysyx
7c0812eceb > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:21:36  up 3 days 19:22,  2 users,  load average: 0.58, 0.47, 0.51
2024-01-11 20:21:36 +08:00
tracer-ysyx
e7a70564c0 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:20:22  up 3 days 19:21,  2 users,  load average: 0.46, 0.45, 0.51
2024-01-11 20:20:22 +08:00
tracer-ysyx
9e3faba490 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:20:22  up 3 days 19:21,  2 users,  load average: 0.46, 0.45, 0.51
2024-01-11 20:20:22 +08:00
tracer-ysyx
14929a3ea5 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:19:20  up 3 days 19:20,  2 users,  load average: 0.37, 0.45, 0.52
2024-01-11 20:19:20 +08:00
tracer-ysyx
90b4f46467 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:19:20  up 3 days 19:20,  2 users,  load average: 0.37, 0.45, 0.52
2024-01-11 20:19:20 +08:00
tracer-ysyx
037e6fdef9 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:18:53  up 3 days 19:19,  2 users,  load average: 0.34, 0.45, 0.52
2024-01-11 20:18:53 +08:00
tracer-ysyx
2415d5400e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:18:53  up 3 days 19:19,  2 users,  load average: 0.34, 0.45, 0.52
2024-01-11 20:18:53 +08:00
tracer-ysyx
21a88c7333 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:12:07  up 3 days 19:12,  2 users,  load average: 0.23, 0.47, 0.55
2024-01-11 20:12:07 +08:00
tracer-ysyx
a3466a3fec > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:12:07  up 3 days 19:12,  2 users,  load average: 0.23, 0.47, 0.55
2024-01-11 20:12:07 +08:00
tracer-ysyx
f49dad2a0e > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:11:42  up 3 days 19:12,  2 users,  load average: 0.35, 0.52, 0.56
2024-01-11 20:11:42 +08:00
tracer-ysyx
bc41537fe2 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 20:11:42  up 3 days 19:12,  2 users,  load average: 0.35, 0.52, 0.56
2024-01-11 20:11:42 +08:00
tracer-ysyx
39e23eeec0 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:17:20  up 3 days 17:18,  2 users,  load average: 0.29, 0.88, 0.81
2024-01-11 18:17:20 +08:00
tracer-ysyx
053540b119 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:17:20  up 3 days 17:18,  2 users,  load average: 0.29, 0.88, 0.81
2024-01-11 18:17:20 +08:00
tracer-ysyx
a3720bdcce > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:16:08  up 3 days 17:16,  2 users,  load average: 1.03, 1.13, 0.89
2024-01-11 18:16:08 +08:00
tracer-ysyx
e338bdf059 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:16:08  up 3 days 17:16,  2 users,  load average: 1.03, 1.13, 0.89
2024-01-11 18:16:08 +08:00
tracer-ysyx
dc8644a8c5 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:13:59  up 3 days 17:14,  2 users,  load average: 1.71, 1.18, 0.85
2024-01-11 18:13:59 +08:00
tracer-ysyx
d00209e32c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:13:59  up 3 days 17:14,  2 users,  load average: 1.71, 1.18, 0.85
2024-01-11 18:13:59 +08:00
tracer-ysyx
10258e5894 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:13:14  up 3 days 17:13,  2 users,  load average: 1.40, 1.04, 0.79
2024-01-11 18:13:14 +08:00
tracer-ysyx
150f858358 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:13:13  up 3 days 17:13,  2 users,  load average: 1.40, 1.04, 0.79
2024-01-11 18:13:13 +08:00
tracer-ysyx
499874a7b9 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:13:00  up 3 days 17:13,  2 users,  load average: 1.51, 1.04, 0.79
2024-01-11 18:13:00 +08:00
tracer-ysyx
e4b98e80ec > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:13:00  up 3 days 17:13,  2 users,  load average: 1.51, 1.04, 0.79
2024-01-11 18:13:00 +08:00
tracer-ysyx
05ba7cc2a7 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:12:53  up 3 days 17:13,  2 users,  load average: 1.60, 1.04, 0.78
2024-01-11 18:12:53 +08:00
tracer-ysyx
aa62355a53 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:12:53  up 3 days 17:13,  2 users,  load average: 1.60, 1.04, 0.78
2024-01-11 18:12:53 +08:00
tracer-ysyx
17fd4903c5 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:12:47  up 3 days 17:13,  2 users,  load average: 1.57, 1.03, 0.78
2024-01-11 18:12:47 +08:00
tracer-ysyx
bdca6f53d5 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:12:46  up 3 days 17:13,  2 users,  load average: 1.57, 1.03, 0.78
2024-01-11 18:12:46 +08:00
tracer-ysyx
49c7933690 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:12:41  up 3 days 17:13,  2 users,  load average: 1.62, 1.03, 0.77
2024-01-11 18:12:41 +08:00
tracer-ysyx
72e9b7f2ae > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:12:41  up 3 days 17:13,  2 users,  load average: 1.62, 1.03, 0.77
2024-01-11 18:12:41 +08:00
tracer-ysyx
42f90bc227 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:12:37  up 3 days 17:13,  2 users,  load average: 1.50, 0.99, 0.76
2024-01-11 18:12:37 +08:00
tracer-ysyx
78c21c38b7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:12:37  up 3 days 17:13,  2 users,  load average: 1.50, 0.99, 0.76
2024-01-11 18:12:37 +08:00
tracer-ysyx
d8993a1170 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:12:27  up 3 days 17:13,  2 users,  load average: 1.49, 0.98, 0.75
2024-01-11 18:12:27 +08:00
tracer-ysyx
25a52d7fca > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 18:12:27  up 3 days 17:13,  2 users,  load average: 1.49, 0.98, 0.75
2024-01-11 18:12:27 +08:00
tracer-ysyx
cd677498e8 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:50:33  up 3 days 16:51,  2 users,  load average: 1.93, 0.94, 0.97
2024-01-11 17:50:33 +08:00
tracer-ysyx
58445dc816 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:50:33  up 3 days 16:51,  2 users,  load average: 1.93, 0.94, 0.97
2024-01-11 17:50:33 +08:00
tracer-ysyx
b606028fc0 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:47:36  up 3 days 16:48,  2 users,  load average: 0.59, 0.45, 0.86
2024-01-11 17:47:36 +08:00
tracer-ysyx
81466dcfec > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:47:36  up 3 days 16:48,  2 users,  load average: 0.59, 0.45, 0.86
2024-01-11 17:47:36 +08:00
tracer-ysyx
8623165405 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:40:01  up 3 days 16:40,  2 users,  load average: 0.83, 0.94, 1.24
2024-01-11 17:40:01 +08:00
tracer-ysyx
e9a0162871 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:40:01  up 3 days 16:40,  2 users,  load average: 0.83, 0.94, 1.24
2024-01-11 17:40:01 +08:00
tracer-ysyx
4d66ecf0d3 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:35:40  up 3 days 16:36,  2 users,  load average: 1.05, 0.89, 1.31
2024-01-11 17:35:40 +08:00
tracer-ysyx
38987ace72 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:35:39  up 3 days 16:36,  2 users,  load average: 1.05, 0.89, 1.31
2024-01-11 17:35:39 +08:00
tracer-ysyx
e094a0e019 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:32:51  up 3 days 16:33,  2 users,  load average: 0.40, 0.63, 1.33
2024-01-11 17:32:51 +08:00
tracer-ysyx
3df6358a6d > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:32:50  up 3 days 16:33,  2 users,  load average: 0.40, 0.63, 1.33
2024-01-11 17:32:50 +08:00
tracer-ysyx
1553586196 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:30:36  up 3 days 16:31,  2 users,  load average: 0.59, 0.82, 1.50
2024-01-11 17:30:36 +08:00
tracer-ysyx
6b25e80704 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:30:36  up 3 days 16:31,  2 users,  load average: 0.59, 0.82, 1.50
2024-01-11 17:30:36 +08:00
tracer-ysyx
b5c2838870 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:25:49  up 3 days 16:26,  2 users,  load average: 0.14, 0.84, 1.75
2024-01-11 17:25:49 +08:00
tracer-ysyx
9c0cac63ff > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:25:49  up 3 days 16:26,  2 users,  load average: 0.14, 0.84, 1.75
2024-01-11 17:25:49 +08:00
tracer-ysyx
add54ff1c7 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:23:16  up 3 days 16:24,  2 users,  load average: 0.25, 1.27, 2.03
2024-01-11 17:23:16 +08:00
tracer-ysyx
8102c8b7bb > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:23:15  up 3 days 16:24,  2 users,  load average: 0.25, 1.27, 2.03
2024-01-11 17:23:15 +08:00
tracer-ysyx
73449abc2b > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 16:17:36  up 3 days 15:18,  2 users,  load average: 1.17, 0.84, 0.72
2024-01-11 16:17:36 +08:00
tracer-ysyx
d8118d058e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 16:17:36  up 3 days 15:18,  2 users,  load average: 1.17, 0.84, 0.72
2024-01-11 16:17:36 +08:00
tracer-ysyx
1ae82067ce
> run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 16:17:04  up 3 days 15:17,  2 users,  load average: 1.17, 0.81, 0.70
2024-01-11 16:17:04 +08:00
tracer-ysyx
2f8255e336
> compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 16:16:42  up 3 days 15:17,  2 users,  load average: 0.88, 0.74, 0.68
2024-01-11 16:16:42 +08:00
tracer-ysyx
80c192b99b > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  21:47:25  up 2 days 20:48,  2 users,  load average: 1.46, 1.24, 1.23
2024-01-10 21:47:25 +08:00
tracer-ysyx
a260adda92 > build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  21:44:14  up 2 days 20:44,  2 users,  load average: 1.59, 1.63, 1.35
2024-01-10 21:44:14 +08:00
tracer-ysyx
3819674d60 > build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  21:43:03  up 2 days 20:43,  2 users,  load average: 2.99, 1.81, 1.39
2024-01-10 21:43:03 +08:00
tracer-ysyx
afb0748963 > build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  21:40:52  up 2 days 20:41,  2 users,  load average: 2.26, 1.40, 1.22
2024-01-10 21:40:52 +08:00
tracer-ysyx
cbff32c35c > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  21:25:48  up 2 days 20:26,  2 users,  load average: 1.07, 1.30, 1.00
2024-01-10 21:25:48 +08:00
tracer-ysyx
8a51531a09 > build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:50:49  up 2 days 19:51,  2 users,  load average: 1.16, 0.91, 0.89
2024-01-10 20:50:49 +08:00
tracer-ysyx
187aa3fc23 > build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:48:55  up 2 days 19:49,  2 users,  load average: 0.84, 0.81, 0.86
2024-01-10 20:48:55 +08:00
tracer-ysyx
d35f3cea17 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:47:01  up 2 days 19:47,  2 users,  load average: 0.93, 0.76, 0.85
2024-01-10 20:47:01 +08:00
tracer-ysyx
d64383ffd0 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:16:11  up 2 days 19:16,  2 users,  load average: 1.49, 1.68, 1.19
2024-01-10 20:16:11 +08:00
tracer-ysyx
35ede2f567 > build_npc_VKeyboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:12:01  up 2 days 19:12,  2 users,  load average: 5.39, 2.22, 1.16
2024-01-10 20:12:01 +08:00
tracer-ysyx
5844ceb022 > build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:12:01  up 2 days 19:12,  2 users,  load average: 5.39, 2.22, 1.16
2024-01-10 20:12:01 +08:00
tracer-ysyx
542c208dde > build_npc_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:12:00  up 2 days 19:12,  2 users,  load average: 4.99, 2.09, 1.11
2024-01-10 20:12:00 +08:00
tracer-ysyx
87a2c70364 > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:11:59  up 2 days 19:12,  2 users,  load average: 4.99, 2.09, 1.11
2024-01-10 20:11:59 +08:00
tracer-ysyx
01e59ebc99 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:11:41  up 2 days 19:12,  2 users,  load average: 1.36, 1.27, 0.83
2024-01-10 20:11:41 +08:00
tracer-ysyx
4244a6ca66 > build_npc_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:09:49  up 2 days 19:10,  2 users,  load average: 2.23, 1.21, 0.76
2024-01-10 20:09:49 +08:00
tracer-ysyx
29e9fc5416 > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:09:38  up 2 days 19:10,  2 users,  load average: 1.90, 1.12, 0.72
2024-01-10 20:09:38 +08:00
tracer-ysyx
7a1358e291 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:09:09  up 2 days 19:09,  2 users,  load average: 0.58, 0.81, 0.61
2024-01-10 20:09:09 +08:00
tracer-ysyx
982e28f43a
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:02:26  up 2 days 19:03,  2 users,  load average: 2.28, 1.07, 0.50
2024-01-10 20:02:26 +08:00
tracer-ysyx
6f08380bc3
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:01:29  up 2 days 19:02,  2 users,  load average: 2.24, 0.68, 0.34
2024-01-10 20:01:29 +08:00
tracer-ysyx
5504cf6cf9
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  18:43:05  up 2 days 17:43,  2 users,  load average: 0.90, 0.92, 0.90
2024-01-10 18:43:05 +08:00
tracer-ysyx
f44cedc71d
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  18:42:28  up 2 days 17:43,  2 users,  load average: 1.11, 0.95, 0.90
2024-01-10 18:42:28 +08:00
tracer-ysyx
b8d0ecf1b3
> build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  18:33:05  up 2 days 17:33,  2 users,  load average: 2.66, 1.03, 0.86
2024-01-10 18:33:05 +08:00
tracer-ysyx
475b881843
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  18:32:30  up 2 days 17:33,  2 users,  load average: 0.59, 0.57, 0.71
2024-01-10 18:32:30 +08:00
tracer-ysyx
01c708a1b7
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  18:22:57  up 2 days 17:23,  2 users,  load average: 1.10, 1.05, 0.90
2024-01-10 18:22:57 +08:00
tracer-ysyx
602c9bdd2b
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  18:21:53  up 2 days 17:22,  2 users,  load average: 1.06, 0.99, 0.87
2024-01-10 18:21:53 +08:00
tracer-ysyx
16a3563224
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  18:19:10  up 2 days 17:19,  2 users,  load average: 1.22, 0.69, 0.76
2024-01-10 18:19:10 +08:00
tracer-ysyx
1dff79ed45
> build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  18:18:50  up 2 days 17:19,  2 users,  load average: 1.17, 0.65, 0.75
2024-01-10 18:18:50 +08:00
tracer-ysyx
df630abf1a
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  18:18:26  up 2 days 17:19,  2 users,  load average: 1.03, 0.58, 0.73
2024-01-10 18:18:26 +08:00
tracer-ysyx
d3812b75e3
> build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  17:33:36  up 2 days 16:34,  2 users,  load average: 2.88, 1.66, 1.14
2024-01-10 17:33:36 +08:00
tracer-ysyx
285a079b55
> build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  17:29:37  up 2 days 16:30,  2 users,  load average: 2.18, 1.16, 0.90
2024-01-10 17:29:37 +08:00
tracer-ysyx
3b03aee937
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  17:29:22  up 2 days 16:30,  2 users,  load average: 1.28, 0.94, 0.82
2024-01-10 17:29:22 +08:00
tracer-ysyx
4a4ff0d3ae
> build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  17:27:21  up 2 days 16:28,  2 users,  load average: 0.54, 0.76, 0.75
2024-01-10 17:27:21 +08:00
tracer-ysyx
3595b4802e
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  17:25:37  up 2 days 16:26,  2 users,  load average: 0.75, 0.79, 0.76
2024-01-10 17:25:37 +08:00
tracer-ysyx
e13fd327e5
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  17:24:32  up 2 days 16:25,  2 users,  load average: 0.46, 0.75, 0.74
2024-01-10 17:24:32 +08:00
tracer-ysyx
0f74d13b9e
> build_npc_VSegHandler_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  17:11:08  up 2 days 16:11,  2 users,  load average: 1.70, 0.98, 0.69
2024-01-10 17:11:08 +08:00
tracer-ysyx
34c3b29d2d
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  17:10:11  up 2 days 16:10,  2 users,  load average: 0.52, 0.61, 0.56
2024-01-10 17:10:11 +08:00
tracer-ysyx
c03db677e8
> build_npc_VSegHandler_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  16:34:44  up 2 days 15:35,  2 users,  load average: 2.26, 1.39, 1.34
2024-01-10 16:34:44 +08:00
tracer-ysyx
333f61e96f
> build_npc_VSegHandler_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  16:29:50  up 2 days 15:30,  2 users,  load average: 1.74, 1.46, 1.37
2024-01-10 16:29:50 +08:00
tracer-ysyx
3ce159ac56
> build_npc_VSegHandler_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  16:27:51  up 2 days 15:28,  2 users,  load average: 1.80, 1.42, 1.35
2024-01-10 16:27:51 +08:00
tracer-ysyx
336a2d1c27
> build_npc_VSegHandler_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  16:26:13  up 2 days 15:26,  2 users,  load average: 1.88, 1.39, 1.33
2024-01-10 16:26:13 +08:00
tracer-ysyx
32fa4c916e
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  16:11:11  up 2 days 15:11,  2 users,  load average: 0.92, 0.92, 1.23
2024-01-10 16:11:11 +08:00
tracer-ysyx
1a698bb4d2
> build_npc_VSegHandler_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  15:34:59  up 2 days 14:35,  2 users,  load average: 3.01, 2.66, 2.06
2024-01-10 15:34:59 +08:00
tracer-ysyx
8a539713b6
> build_npc_VSegHandler_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  15:33:27  up 2 days 14:34,  2 users,  load average: 5.23, 2.91, 2.08
2024-01-10 15:33:27 +08:00
tracer-ysyx
d4f0936612
> build_npc_VSegHandler_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  15:29:05  up 2 days 14:29,  2 users,  load average: 1.69, 1.94, 1.64
2024-01-10 15:29:05 +08:00
tracer-ysyx
5dd819c241
> build_npc_VSegHandler_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  15:25:14  up 2 days 14:25,  2 users,  load average: 2.18, 1.80, 1.50
2024-01-10 15:25:14 +08:00
tracer-ysyx
d5101dba35
> build_npc_VSegHandler_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  15:22:48  up 2 days 14:23,  2 users,  load average: 3.53, 1.75, 1.44
2024-01-10 15:22:48 +08:00
tracer-ysyx
e071d43cce
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  15:22:15  up 2 days 14:23,  2 users,  load average: 2.20, 1.37, 1.31
2024-01-10 15:22:15 +08:00
tracer-ysyx
aaf894d5e6
> build_npc_VSegHandler_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  15:20:50  up 2 days 14:21,  2 users,  load average: 0.89, 1.09, 1.23
2024-01-10 15:20:50 +08:00
tracer-ysyx
df20ddd658
> build_npc_VSegHandler_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  15:07:02  up 2 days 14:07,  2 users,  load average: 1.00, 1.26, 1.42
2024-01-10 15:07:02 +08:00
tracer-ysyx
b88d57976a
> build_npc_VSegHandler_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  15:02:16  up 2 days 14:03,  2 users,  load average: 1.59, 1.65, 1.57
2024-01-10 15:02:16 +08:00
tracer-ysyx
f808bb6b13
> build_npc_VSegHandler_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  14:59:16  up 2 days 14:00,  2 users,  load average: 1.66, 1.78, 1.59
2024-01-10 14:59:16 +08:00
tracer-ysyx
b64875495c
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  14:57:57  up 2 days 13:58,  2 users,  load average: 1.71, 1.78, 1.57
2024-01-10 14:57:57 +08:00
tracer-ysyx
0fb20c00d7
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  14:56:56  up 2 days 13:57,  2 users,  load average: 1.19, 1.64, 1.52
2024-01-10 14:56:56 +08:00
tracer-ysyx
aa6fd1e0f5
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  14:55:29  up 2 days 13:56,  2 users,  load average: 1.74, 1.79, 1.54
2024-01-10 14:55:29 +08:00
tracer-ysyx
f17cfd7946
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  14:54:44  up 2 days 13:55,  2 users,  load average: 1.87, 1.83, 1.54
2024-01-10 14:54:44 +08:00
tracer-ysyx
abb76552fb
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  14:44:17  up 2 days 13:45,  2 users,  load average: 1.18, 1.21, 1.18
2024-01-10 14:44:17 +08:00
tracer-ysyx
0458aba520
> build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:52:39  up 1 day 19:53,  2 users,  load average: 0.93, 0.76, 0.81
2024-01-09 20:52:39 +08:00
tracer-ysyx
e28c482d5d
> build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:50:18  up 1 day 19:51,  2 users,  load average: 0.65, 0.62, 0.77
2024-01-09 20:50:18 +08:00
tracer-ysyx
b30b2170cb
> build_npc_VKeyboard_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:42:08  up 1 day 19:42,  2 users,  load average: 1.42, 1.30, 1.00
2024-01-09 20:42:08 +08:00
tracer-ysyx
3ccbccee77
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:40:32  up 1 day 19:41,  2 users,  load average: 2.01, 1.24, 0.95
2024-01-09 20:40:32 +08:00
tracer-ysyx
f715cbd941
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:33:44  up 1 day 19:34,  2 users,  load average: 0.48, 0.78, 0.73
2024-01-09 20:33:44 +08:00
tracer-ysyx
6b8cd8ac33
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:31:50  up 1 day 19:32,  2 users,  load average: 1.21, 0.96, 0.78
2024-01-09 20:31:50 +08:00
tracer-ysyx
45b0983c4a
> configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  20:30:51  up 1 day 19:31,  2 users,  load average: 0.75, 0.84, 0.73
2024-01-09 20:30:51 +08:00
tracer-ysyx
d02c8f5681 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  14:07:43  up 1 day 22:54,  2 users,  load average: 3.27, 1.80, 1.55
2024-01-06 14:07:43 +08:00
tracer-ysyx
dd03e43fbd > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  13:54:52  up 1 day 22:41,  2 users,  load average: 2.48, 1.99, 1.57
2024-01-06 13:54:52 +08:00
tracer-ysyx
b4bef0fb64 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  13:51:33  up 1 day 22:38,  2 users,  load average: 3.60, 1.55, 1.34
2024-01-06 13:51:33 +08:00
tracer-ysyx
d4ab3e5752 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  13:21:08  up 1 day 22:07,  2 users,  load average: 0.94, 1.60, 1.63
2024-01-06 13:21:08 +08:00
tracer-ysyx
bdc86fba9f > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  13:19:11  up 1 day 22:05,  2 users,  load average: 1.57, 1.99, 1.74
2024-01-06 13:19:11 +08:00
tracer-ysyx
629cd5ba8e > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  13:18:35  up 1 day 22:05,  2 users,  load average: 1.52, 2.01, 1.74
2024-01-06 13:18:35 +08:00
tracer-ysyx
37bedd23e4 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  13:17:48  up 1 day 22:04,  2 users,  load average: 1.37, 2.02, 1.72
2024-01-06 13:17:48 +08:00
tracer-ysyx
70168608dd > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  13:17:13  up 1 day 22:03,  2 users,  load average: 1.36, 2.08, 1.73
2024-01-06 13:17:13 +08:00
tracer-ysyx
dada9884cd > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  13:14:29  up 1 day 22:01,  2 users,  load average: 3.16, 2.35, 1.71
2024-01-06 13:14:29 +08:00
tracer-ysyx
a5fb5aade5 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  13:13:59  up 1 day 22:00,  2 users,  load average: 2.85, 2.23, 1.65
2024-01-06 13:13:59 +08:00
tracer-ysyx
ed2a349a45 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  13:12:48  up 1 day 21:59,  2 users,  load average: 3.02, 2.00, 1.53
2024-01-06 13:12:48 +08:00
tracer-ysyx
c988547827 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  13:06:55  up 1 day 21:53,  2 users,  load average: 2.89, 2.11, 1.36
2024-01-06 13:06:55 +08:00
tracer-ysyx
88bc3723ee > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  13:05:48  up 1 day 21:52,  2 users,  load average: 1.74, 1.56, 1.12
2024-01-06 13:05:48 +08:00
tracer-ysyx
239492c366 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  12:59:00  up 1 day 21:45,  2 users,  load average: 1.24, 1.19, 0.81
2024-01-06 12:59:00 +08:00
tracer-ysyx
323e36c454 > build_npc_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:58:47  up 1 day  9:45,  2 users,  load average: 0.79, 0.87, 0.79
2024-01-06 00:58:47 +08:00
tracer-ysyx
077f785c26 > build_npc_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:58:28  up 1 day  9:45,  2 users,  load average: 0.71, 0.86, 0.78
2024-01-06 00:58:28 +08:00
tracer-ysyx
50bdb461c1 > build_npc_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:57:20  up 1 day  9:43,  2 users,  load average: 0.53, 0.88, 0.78
2024-01-06 00:57:20 +08:00
tracer-ysyx
44848fbf49 > build_npc_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:57:19  up 1 day  9:43,  2 users,  load average: 0.53, 0.88, 0.78
2024-01-06 00:57:19 +08:00
tracer-ysyx
4d9ee0160d > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:57:07  up 1 day  9:43,  2 users,  load average: 0.45, 0.87, 0.78
2024-01-06 00:57:07 +08:00
tracer-ysyx
49327b8257 > build_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:55:37  up 1 day  9:42,  2 users,  load average: 1.33, 1.11, 0.84
2024-01-06 00:55:37 +08:00
tracer-ysyx
c2f07ab3bb > build_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:55:36  up 1 day  9:42,  2 users,  load average: 1.18, 1.08, 0.83
2024-01-06 00:55:36 +08:00
tracer-ysyx
a98f586258 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:55:19  up 1 day  9:41,  2 users,  load average: 0.48, 0.93, 0.78
2024-01-06 00:55:19 +08:00
tracer-ysyx
bfd963d0d2 > build_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:52:13  up 1 day  9:38,  2 users,  load average: 3.21, 1.48, 0.89
2024-01-06 00:52:13 +08:00
tracer-ysyx
5c72f2ec32 > build_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:52:13  up 1 day  9:38,  2 users,  load average: 3.21, 1.48, 0.89
2024-01-06 00:52:13 +08:00
tracer-ysyx
f6ccc0873a > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:52:04  up 1 day  9:38,  2 users,  load average: 0.39, 0.89, 0.70
2024-01-06 00:52:04 +08:00
tracer-ysyx
ba36c9eda1 > build_VSwitch_nvboard
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:50:39  up 1 day  9:37,  2 users,  load average: 1.17, 1.14, 0.75
2024-01-06 00:50:39 +08:00
tracer-ysyx
88918445be > build_VSwitch
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:50:39  up 1 day  9:37,  2 users,  load average: 1.17, 1.14, 0.75
2024-01-06 00:50:39 +08:00
tracer-ysyx
abf88be21e > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:50:14  up 1 day  9:36,  2 users,  load average: 1.04, 1.11, 0.73
2024-01-06 00:50:14 +08:00
tracer-ysyx
7bf937e4bb > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:49:01  up 1 day  9:35,  2 users,  load average: 1.81, 1.12, 0.70
2024-01-06 00:49:01 +08:00
tracer-ysyx
752a0cf178 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:48:34  up 1 day  9:35,  2 users,  load average: 1.32, 0.95, 0.63
2024-01-06 00:48:34 +08:00
tracer-ysyx
0d85ad7ab8 > Build
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:47:48  up 1 day  9:34,  2 users,  load average: 2.56, 1.07, 0.65
2024-01-06 00:47:48 +08:00
tracer-ysyx
82a8080af4 > Build
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:47:48  up 1 day  9:34,  2 users,  load average: 2.56, 1.07, 0.65
2024-01-06 00:47:48 +08:00
tracer-ysyx
da1b895cc5 > configure(npc)
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:47:23  up 1 day  9:34,  2 users,  load average: 0.36, 0.58, 0.49
2024-01-06 00:47:23 +08:00
tracer-ysyx
aced1bf25e > 'configure
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:45:53  up 1 day  9:32,  2 users,  load average: 0.76, 0.64, 0.49
2024-01-06 00:45:53 +08:00
tracer-ysyx
cd8c1a686b > configure
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:44:45  up 1 day  9:31,  2 users,  load average: 0.53, 0.52, 0.45
2024-01-06 00:44:46 +08:00
tracer-ysyx
66d0ce915b > configure
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:43:00  up 1 day  9:29,  2 users,  load average: 0.45, 0.46, 0.41
2024-01-06 00:43:00 +08:00
tracer-ysyx
4c0d17004a > configure
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:41:42  up 1 day  9:28,  2 users,  load average: 0.67, 0.50, 0.42
2024-01-06 00:41:42 +08:00
tracer-ysyx
f0ce5198cf > configure
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:40:41  up 1 day  9:27,  2 users,  load average: 0.35, 0.36, 0.37
2024-01-06 00:40:41 +08:00
tracer-ysyx
0e11c2e0fb > git_commit.sh
ysyx_22040000 李心杨
 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
  00:07:40  up   8:54,  2 users,  load average: 0.53, 0.45, 0.39
2024-01-05 00:07:40 +08:00
tracer-ysyx
de7d50753d > git_commit.sh ysyx_22040000 李心杨 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux 00:06:21 up 8:52, 2 users, load average: 0.31, 0.43, 0.39 2024-01-05 00:06:21 +08:00
tracer-ysyx
3b7e367af1 > git_commit.sh ysyx_22040000 李心杨 Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux 00:05:11 up 8:51, 2 users, load average: 0.57, 0.50, 0.41 2024-01-05 00:05:11 +08:00
tracer-ysyx
7e177f8b04 > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:34:28  up   2:21,  2 users,  load average: 0.50, 0.69, 0.87
2024-01-04 17:34:28 +08:00
tracer-ysyx
750c12d5b3 > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:33:59  up   2:20,  2 users,  load average: 0.64, 0.74, 0.89
2024-01-04 17:33:59 +08:00
tracer-ysyx
c1f25225e0 > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:33:49  up   2:20,  2 users,  load average: 0.39, 0.69, 0.87
2024-01-04 17:33:49 +08:00
tracer-ysyx
134633fb6c > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:32:31  up   2:19,  2 users,  load average: 0.91, 0.85, 0.94
2024-01-04 17:32:31 +08:00
tracer-ysyx
758ff7fef5 > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:32:22  up   2:19,  2 users,  load average: 0.99, 0.86, 0.94
2024-01-04 17:32:22 +08:00
tracer-ysyx
3543a2442d > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:27:48  up   2:14,  2 users,  load average: 0.35, 0.91, 1.00
2024-01-04 17:27:48 +08:00
tracer-ysyx
5810984cbb > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:26:20  up   2:12,  2 users,  load average: 0.63, 1.11, 1.07
2024-01-04 17:26:20 +08:00
tracer-ysyx
5a23c53fff > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:25:05  up   2:11,  2 users,  load average: 1.25, 1.33, 1.13
2024-01-04 17:25:05 +08:00
tracer-ysyx
2b96284bab > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:24:52  up   2:11,  2 users,  load average: 1.51, 1.39, 1.15
2024-01-04 17:24:52 +08:00
tracer-ysyx
fb03cbe36a > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:24:30  up   2:11,  2 users,  load average: 1.06, 1.29, 1.11
2024-01-04 17:24:30 +08:00
tracer-ysyx
8dfae1f22d > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 17:23:05  up   2:09,  2 users,  load average: 2.15, 1.50, 1.16
2024-01-04 17:23:05 +08:00
tracer-ysyx
5feabac34d > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 00:35:10  up 2 days  9:14,  2 users,  load average: 0.92, 0.73, 0.56
2024-01-03 00:35:10 +08:00
tracer-ysyx
ea05c4598d > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 00:34:33  up 2 days  9:13,  2 users,  load average: 0.94, 0.71, 0.55
2024-01-03 00:34:33 +08:00
tracer-ysyx
6a25f4def6 > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 00:34:19  up 2 days  9:13,  2 users,  load average: 0.92, 0.69, 0.54
2024-01-03 00:34:19 +08:00
tracer-ysyx
8cfd961e2a > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 00:10:17  up 2 days  8:49,  2 users,  load average: 0.47, 0.57, 0.49
2024-01-03 00:10:17 +08:00
tracer-ysyx
eb9c99b0fd > nvboard
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 00:10:12  up 2 days  8:49,  2 users,  load average: 0.43, 0.56, 0.49
2024-01-03 00:10:12 +08:00
tracer-ysyx
5592866540 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 14:37:00  up  23:15,  2 users,  load average: 0.97, 1.44, 1.28
2024-01-01 14:37:00 +08:00
tracer-ysyx
d9a1e124e8 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 14:36:38  up  23:15,  2 users,  load average: 1.36, 1.54, 1.31
2024-01-01 14:36:38 +08:00
tracer-ysyx
aa62c3b7b7 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 14:33:22  up  23:12,  2 users,  load average: 2.22, 1.69, 1.30
2024-01-01 14:33:22 +08:00
tracer-ysyx
6d90812a9b > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 14:32:17  up  23:11,  2 users,  load average: 1.48, 1.49, 1.21
2024-01-01 14:32:16 +08:00
tracer-ysyx
6f8ea382a0 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 14:28:58  up  23:07,  2 users,  load average: 1.33, 1.43, 1.13
2024-01-01 14:28:58 +08:00
tracer-ysyx
4860b552d5 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 14:26:46  up  23:05,  2 users,  load average: 2.62, 1.66, 1.15
2024-01-01 14:26:46 +08:00
tracer-ysyx
3deed069e8 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 14:23:04  up  23:02,  2 users,  load average: 1.68, 1.08, 0.90
2024-01-01 14:23:04 +08:00
tracer-ysyx
9803dc5b07 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 14:21:10  up  23:00,  2 users,  load average: 0.72, 0.81, 0.80
2024-01-01 14:21:10 +08:00
tracer-ysyx
47d9d90d46 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 14:20:04  up  22:59,  2 users,  load average: 1.07, 0.89, 0.82
2024-01-01 14:20:04 +08:00
tracer-ysyx
e5c49478ad > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 14:13:54  up  22:52,  2 users,  load average: 0.91, 0.72, 0.76
2024-01-01 14:13:54 +08:00
tracer-ysyx
61b96bf48a > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 14:10:54  up  22:49,  2 users,  load average: 0.89, 0.77, 0.79
2024-01-01 14:10:54 +08:00
tracer-ysyx
7b9dbca4b4 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 14:10:45  up  22:49,  2 users,  load average: 1.05, 0.80, 0.80
2024-01-01 14:10:45 +08:00
tracer-ysyx
1a6f02c20a > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 14:05:24  up  22:44,  2 users,  load average: 0.93, 0.77, 0.80
2024-01-01 14:05:24 +08:00
tracer-ysyx
23766bd467 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 13:56:48  up  22:35,  2 users,  load average: 0.69, 0.78, 0.80
2024-01-01 13:56:48 +08:00
tracer-ysyx
fc920227b2 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 13:43:44  up  22:22,  2 users,  load average: 0.73, 0.83, 0.84
2024-01-01 13:43:44 +08:00
tracer-ysyx
6615352b77 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 13:43:05  up  22:22,  2 users,  load average: 1.05, 0.90, 0.86
2024-01-01 13:43:05 +08:00
tracer-ysyx
419fbdb941 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 13:42:14  up  22:21,  2 users,  load average: 1.25, 0.88, 0.85
2024-01-01 13:42:14 +08:00
tracer-ysyx
e3d600fc21 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 13:29:52  up  22:08,  2 users,  load average: 1.26, 1.02, 1.00
2024-01-01 13:29:52 +08:00
tracer-ysyx
19e19610f8 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 11:10:14  up  19:49,  2 users,  load average: 0.77, 0.64, 0.85
2024-01-01 11:10:14 +08:00
tracer-ysyx
f0177f7cea > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 11:10:11  up  19:49,  2 users,  load average: 0.77, 0.64, 0.85
2024-01-01 11:10:11 +08:00
tracer-ysyx
d278cae607 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.69 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 20 16:00:29 UTC 2023 x86_64 GNU/Linux
 11:09:46  up  19:48,  2 users,  load average: 0.84, 0.64, 0.85
2024-01-01 11:09:46 +08:00
tracer-ysyx
88a55f87ea > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:21:56  up  23:19,  2 users,  load average: 0.30, 0.29, 0.42
2023-12-23 20:21:56 +08:00
tracer-ysyx
c1c37d64a4 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:20:56  up  23:18,  2 users,  load average: 0.28, 0.30, 0.43
2023-12-23 20:20:56 +08:00
tracer-ysyx
73a0bfe5a8 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:20:39  up  23:18,  2 users,  load average: 0.35, 0.32, 0.44
2023-12-23 20:20:39 +08:00
tracer-ysyx
5ab7080342 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:20:35  up  23:18,  2 users,  load average: 0.39, 0.32, 0.44
2023-12-23 20:20:35 +08:00
tracer-ysyx
1d8692714e > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:18:56  up  23:16,  2 users,  load average: 0.09, 0.27, 0.44
2023-12-23 20:18:56 +08:00
tracer-ysyx
1e48a0d862 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:18:51  up  23:16,  2 users,  load average: 0.09, 0.28, 0.44
2023-12-23 20:18:51 +08:00
tracer-ysyx
20004b4416 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:18:01  up  23:16,  2 users,  load average: 0.22, 0.33, 0.47
2023-12-23 20:18:01 +08:00
tracer-ysyx
9af75b0fbb > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:17:45  up  23:15,  2 users,  load average: 0.28, 0.35, 0.48
2023-12-23 20:17:45 +08:00
tracer-ysyx
386c3ce04c > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:17:34  up  23:15,  2 users,  load average: 0.33, 0.36, 0.48
2023-12-23 20:17:34 +08:00
tracer-ysyx
ee94bc8eea > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:12:49  up  23:10,  2 users,  load average: 0.22, 0.50, 0.57
2023-12-23 20:12:49 +08:00
tracer-ysyx
a4d19717db > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:12:45  up  23:10,  2 users,  load average: 0.24, 0.51, 0.57
2023-12-23 20:12:45 +08:00
tracer-ysyx
ceb06fd70c > trace RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:12:41  up  23:10,  2 users,  load average: 0.26, 0.52, 0.57
2023-12-23 20:12:41 +08:00
tracer-ysyx
702116d8ad > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:11:07  up  23:09,  2 users,  load average: 0.52, 0.64, 0.62
2023-12-23 20:11:07 +08:00
tracer-ysyx
cdf6ff8030 > trace RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:11:04  up  23:09,  2 users,  load average: 0.52, 0.64, 0.62
2023-12-23 20:11:04 +08:00
tracer-ysyx
a1624036d1 > trace RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:10:23  up  23:08,  2 users,  load average: 0.72, 0.68, 0.62
2023-12-23 20:10:23 +08:00
tracer-ysyx
fce7b3fcb3 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:00:39  up  22:58,  2 users,  load average: 0.63, 0.68, 0.57
2023-12-23 20:00:39 +08:00
tracer-ysyx
764d95f844 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 20:00:32  up  22:58,  2 users,  load average: 0.75, 0.70, 0.58
2023-12-23 20:00:32 +08:00
tracer-ysyx
2d510e0aa3 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 19:58:48  up  22:56,  2 users,  load average: 0.51, 0.62, 0.54
2023-12-23 19:58:48 +08:00
tracer-ysyx
d3d2eaf59e > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 19:57:21  up  22:55,  2 users,  load average: 1.18, 0.73, 0.57
2023-12-23 19:57:21 +08:00
tracer-ysyx
8b71fb7db5 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 19:57:04  up  22:55,  2 users,  load average: 0.71, 0.62, 0.53
2023-12-23 19:57:04 +08:00
tracer-ysyx
3b0310ef47 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 19:50:34  up  22:48,  2 users,  load average: 0.25, 0.38, 0.46
2023-12-23 19:50:34 +08:00
tracer-ysyx
a58f8d9020 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 19:41:35  up  22:39,  2 users,  load average: 0.53, 0.50, 0.54
2023-12-23 19:41:35 +08:00
tracer-ysyx
8303b1d6fe > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 19:41:15  up  22:39,  2 users,  load average: 0.63, 0.51, 0.55
2023-12-23 19:41:15 +08:00
tracer-ysyx
a2204cebed > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 19:32:07  up  22:30,  2 users,  load average: 0.34, 0.57, 0.64
2023-12-23 19:32:07 +08:00
tracer-ysyx
7013e53eb3 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 19:26:08  up  22:24,  2 users,  load average: 0.62, 0.76, 0.71
2023-12-23 19:26:08 +08:00
tracer-ysyx
e5be598dc9 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 19:25:05  up  22:23,  2 users,  load average: 0.61, 0.82, 0.72
2023-12-23 19:25:05 +08:00
tracer-ysyx
df992995ca > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 18:31:48  up  21:29,  2 users,  load average: 1.18, 0.83, 0.63
2023-12-23 18:31:48 +08:00
tracer-ysyx
b66f0c6d56 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 18:28:18  up  21:26,  2 users,  load average: 1.13, 0.58, 0.53
2023-12-23 18:28:18 +08:00
tracer-ysyx
a3aa285f55 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 17:33:43  up  20:31,  2 users,  load average: 1.31, 1.24, 0.99
2023-12-23 17:33:43 +08:00
tracer-ysyx
4de7238c45 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 17:33:39  up  20:31,  2 users,  load average: 1.43, 1.26, 1.00
2023-12-23 17:33:39 +08:00
tracer-ysyx
d6227bf009 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 17:33:03  up  20:31,  2 users,  load average: 1.50, 1.26, 0.99
2023-12-23 17:33:03 +08:00
tracer-ysyx
a315f9ac2b > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 17:29:41  up  20:27,  2 users,  load average: 1.23, 1.01, 0.86
2023-12-23 17:29:41 +08:00
tracer-ysyx
24f8dfbf52 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 17:28:31  up  20:26,  2 users,  load average: 1.12, 0.88, 0.80
2023-12-23 17:28:31 +08:00
tracer-ysyx
f46c08ec71 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 17:28:21  up  20:26,  2 users,  load average: 1.06, 0.86, 0.79
2023-12-23 17:28:21 +08:00
tracer-ysyx
0c20423285 > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 17:27:35  up  20:25,  2 users,  load average: 0.44, 0.75, 0.76
2023-12-23 17:27:35 +08:00
tracer-ysyx
355bd72c8d > sim RTL
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 17:27:29  up  20:25,  2 users,  load average: 0.48, 0.77, 0.76
2023-12-23 17:27:29 +08:00
tracer-ysyx
397cf4da54 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 21:56:54  up   0:54,  2 users,  load average: 0.64, 0.54, 0.53
2023-12-22 21:56:54 +08:00
tracer-ysyx
aca54dbeeb > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 21:56:45  up   0:54,  2 users,  load average: 0.66, 0.55, 0.53
2023-12-22 21:56:45 +08:00
tracer-ysyx
4821733dbc > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 21:49:04  up   0:47,  2 users,  load average: 0.20, 0.35, 0.48
2023-12-22 21:49:04 +08:00
tracer-ysyx
91012bbf71 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 10:33:23  up 145 days 17:05,  2 users,  load average: 1.90, 1.23, 0.66
2023-12-21 10:33:23 +08:00
tracer-ysyx
c5c607f91e > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 10:33:15  up 145 days 17:05,  2 users,  load average: 2.15, 1.26, 0.66
2023-12-21 10:33:15 +08:00
tracer-ysyx
3d19904c24 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 10:33:05  up 145 days 17:05,  2 users,  load average: 2.35, 1.27, 0.66
2023-12-21 10:33:05 +08:00
tracer-ysyx
a293d46558 > run NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 00:32:30  up 145 days  7:05,  2 users,  load average: 0.47, 0.49, 0.49
2023-12-21 00:32:30 +08:00
tracer-ysyx
e8205c35c7 > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 00:32:30  up 145 days  7:05,  2 users,  load average: 0.47, 0.49, 0.49
2023-12-21 00:32:30 +08:00
tracer-ysyx
bd8a6c4d6c > compile NEMU
ysyx_22040000 李心杨
Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec  3 06:32:13 UTC 2023 x86_64 GNU/Linux
 00:31:43  up 145 days  7:04,  2 users,  load average: 0.30, 0.48, 0.49
2023-12-21 00:31:43 +08:00
167 changed files with 2735 additions and 6898 deletions

View file

@ -1,4 +0,0 @@
---
Language: Cpp
BasedOnStyle: LLVM
ReflowComments: false

View file

@ -0,0 +1,21 @@
name: Build abstract machine with nix
on: [push]
jobs:
build-abstract-machine:
runs-on: nix
steps:
- uses: https://github.com/cachix/cachix-action@v14
with:
name: ysyx
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- uses: actions/checkout@v4
with:
submodules: true
- name: Build abstract-machine
run: |
nix build .?submodules=1#abstract-machine
- name: Build nemu
run: |
nix build .?submodules=1#nemu

View file

@ -1,28 +0,0 @@
name: Build abstract machine with nix
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build-packages:
runs-on: nix
strategy:
matrix:
package:
- "abstract-machine"
- "nemu"
- "nemu-lib"
- "rv32Cross.abstract-machine"
steps:
- uses: https://github.com/cachix/cachix-action@v14
with:
name: ysyx
authToken: '${{ secrets.CACHIX_SIGNING_KEY }}'
- uses: actions/checkout@v4
- name: Build package
run: |
nix build -L .#${{ matrix.package }}

View file

@ -1,21 +0,0 @@
name: Build npc tests
on: [push]
jobs:
npc-build:
strategy:
matrix:
package: [ "flow", "flow-simlib"]
runs-on: nix
defaults:
run:
working-directory: ./npc
steps:
- uses: https://github.com/cachix/cachix-action@v14
with:
name: ysyx
authToken: '${{ secrets.CACHIX_SIGNING_KEY }}'
- uses: actions/checkout@v4
- name: Build package
run: |
nix build -L .#${{ matrix.package }}

14
.gitignore vendored
View file

@ -1,8 +1,14 @@
*/.gdbinit !*/
difftest/ !/nemu/*
!/nexus-am/*
!/nanos-lite/*
!/navy-apps/*
!/npc/*
!Makefile
!README.md
!.gitignore
!init.sh
/fceux-am /fceux-am
/nvboard /nvboard
**/.cache **/.cache
**/result **/result
/.pre-commit-config.yaml
**/.vscode/

4
.gitmodules vendored
View file

@ -1,7 +1,3 @@
[submodule "am-kernels"] [submodule "am-kernels"]
path = am-kernels path = am-kernels
url = https://git.xinyang.life/xin/am-kernels.git url = https://git.xinyang.life/xin/am-kernels.git
branch = dev
[submodule "diffu"]
path = diffu
url = git@github.com:xinyangli/diffu.git

View file

@ -1,2 +0,0 @@
version = 3.7.17
runner.dialect = scala213source3

View file

@ -2,7 +2,5 @@
**/build/ **/build/
**/.envrc **/.envrc
**/.cache **/.cache
out/
.vscode .vscode
compile_commands.json compile_commands.json
cmakeUserh

View file

@ -6,121 +6,82 @@ set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD 11)
include(CMakeDependentOption) include(CMakeDependentOption)
include(CMakePackageConfigHelpers) # Used to find libcheck include(CMakePackageConfigHelpers) # Used to find libcheck
include(CTest) include(CTest)
include(GNUInstallDirs)
# -- General options # -- General options
set(ISA CACHE STRING "Target ISA") set(ISA CACHE STRING "Target ISA")
set_property(CACHE ISA PROPERTY STRINGS "riscv" "x86" "x86_64" "native") set_property(CACHE ISA PROPERTY STRINGS "riscv" "x86" "x86_64" "native")
string(TOUPPER ${ISA} ISA_UPPER) string(TOUPPER ${ISA} ISA_UPPER)
cmake_dependent_option(__PLATFORM_NEMU__ "Run on NEMU" ON cmake_dependent_option(
"ISA MATCHES \"(riscv | x86)\"" OFF) __PLATFORM_NEMU__ "Run on NEMU"
cmake_dependent_option(__PLATFORM_NPC__ "Run on NPC" ON "ISA MATCHES riscv" OFF) ON "ISA MATCHES \"(riscv | x86)\"" OFF)
cmake_dependent_option(__PLATFORM_NATIVE__ "Run on native" ON cmake_dependent_option(
"ISA MATCHES native" OFF) __PLATFORM_NATIVE__ "Run on native"
ON "ISA MATCHES native" OFF)
# -- Set PLATFORM according to options # -- Set PLATFORM according to options
set(MATCH_PLATFORM_PATTERN "^__PLATFORM_([A-Z]*)__$") set(MATCH_PLATFORM_PATTERN "^__PLATFORM_([A-Z]*)__")
get_cmake_property(CACHE_VARS CACHE_VARIABLES) get_cmake_property(CACHE_VARS CACHE_VARIABLES)
message(STATUS "ISA: ${ISA}") message(STATUS "ISA: ${ISA}")
foreach(VAR IN LISTS CACHE_VARS) foreach(VAR IN LISTS CACHE_VARS)
if(VAR MATCHES ${MATCH_PLATFORM_PATTERN}) if(VAR MATCHES ${MATCH_PLATFORM_PATTERN})
# Retrieve the value of the cache variable # Retrieve the value of the cache variable
get_property( get_property(VAR_VALUE CACHE ${VAR} PROPERTY VALUE)
VAR_VALUE set(PLATFORM_UPPER ${CMAKE_MATCH_1})
CACHE ${VAR} string(TOLOWER ${PLATFORM_UPPER} PLATFORM)
PROPERTY VALUE) message(STATUS "Variable: ${VAR}=${VAR_VALUE}, Platform: ${PLATFORM}")
set(PLATFORM_UPPER ${CMAKE_MATCH_1}) endif()
string(TOLOWER ${PLATFORM_UPPER} PLATFORM)
list(APPEND PLATFORMS ${PLATFORM})
message(STATUS "Variable: ${VAR}=${VAR_VALUE}, Platform: ${PLATFORM}")
endif()
endforeach() endforeach()
if((NOT PLATFORM) AND (NOT ISA MATCHES native)) if(${PLATFORM} MATCHES "native")
message(FATAL_ERROR "Platform not given!") set(ARCH "native")
else()
set(ARCH ${ISA}-${PLATFORM})
endif() endif()
string(TOUPPER ${ARCH} ARCH_UPPER)
set(SUPPORTED_ARCH "riscv-nemu" "riscv-npc" "native")
foreach(PLATFORM IN LISTS PLATFORMS)
if(${ISA} MATCHES "native")
set(ARCH "native")
else()
set(ARCH ${ISA}-${PLATFORM})
endif()
if(NOT ARCH IN_LIST SUPPORTED_ARCH)
message(
FATAL_ERROR
"Given ISA-PLATFORM (${ISA}-${PLATFORM}) does not match one of the following: ${SUPPORTED_ARCH}"
)
endif()
endforeach()
# -- Target specific options # -- Target specific options
cmake_dependent_option(NATIVE_USE_KLIB "Use Klib even if on native" ON cmake_dependent_option(
"NOT __ISA_NATIVE__" OFF) NATIVE_USE_KLIB "Use Klib even if on native"
ON "NOT __ISA_NATIVE__" OFF)
# -- Add compile definitions based on options # -- Add compile definitions based on options
add_compile_definitions(
$<MAKE_C_IDENTIFIER:__ARCH_${ARCH_UPPER}__>
__ISA_${ISA_UPPER}__
__PLATFORM_${PLATFORM_UPPER}__
)
add_compile_definitions(
$<$<BOOL:${NATIVE_USE_KLIB}>:__NATIVE_USE_KLIB__>
)
# -- Required compiler flags
add_compile_options(
# -Werror
-Wno-main
-fno-asynchronous-unwind-tables
-fno-builtin
-fno-stack-protector
-U_FORTIFY_SOURCE
$<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>
$<$<COMPILE_LANGUAGE:CXX>:-ffreestanding>
$<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>)
add_link_options(
-znoexecstack
)
# -- Include linker script here. Use this linker script at link time if INCLUDE_LINKER_SCRIPT is set to true
set(LINKER_SCRIPT linker.ld)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
# NOTE: klib and am include header files in each other, so we need to create add_compile_options(-march=rv32if -mabi=ilp32)
# interface libraries for correct dependency add_link_options(-march=rv32if -mabi=ilp32)
add_library(am_interface INTERFACE)
target_include_directories(
am_interface
INTERFACE $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/am/include>
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/am/src>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
target_compile_definitions(am_interface INTERFACE ARCH_H=<arch/${ISA}.h>
"__ISA__=\"${ISA}\"")
file(GLOB_RECURSE AM_HEADERS "${CMAKE_SOURCE_DIR}/am/include/*.h")
target_sources(
am_interface
PUBLIC FILE_SET
am_headers
TYPE
HEADERS
BASE_DIRS
${CMAKE_SOURCE_DIR}/am/include
FILES
${AM_HEADERS})
add_library(klib_interface INTERFACE)
target_include_directories(
klib_interface
INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/klib/include>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
file(GLOB_RECURSE KLIB_HEADERS "${CMAKE_SOURCE_DIR}/klib/include/*.h")
target_sources(
klib_interface
PUBLIC FILE_SET
klib_headers
TYPE
HEADERS
BASE_DIRS
${CMAKE_SOURCE_DIR}/klib/include
FILES
${KLIB_HEADERS})
install(
TARGETS am_interface klib_interface
EXPORT interfaceTargets
FILE_SET klib_headers FILE_SET am_headers
INCLUDES
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(
EXPORT interfaceTargets
FILE interfaceTargets.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
add_subdirectory(klib) add_subdirectory(klib)
add_subdirectory(am) add_subdirectory(am)
# -- Test depends on klib and am should be added last.
add_subdirectory(klib/tests)

View file

@ -7,21 +7,21 @@
"generator": "Unix Makefiles", "generator": "Unix Makefiles",
"binaryDir": "${sourceDir}/out/build/${presetName}", "binaryDir": "${sourceDir}/out/build/${presetName}",
"cacheVariables": { "cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo", "CMAKE_BUILD_TYPE": "Debug",
"ISA": "native", "ISA": "native",
"__PLATFORM_NATIVE__": true, "__PLATFORM_NATIVE__": true,
"NATIVE_USE_KLIB": true "NATIVE_USE_KLIB": true
} }
}, },
{ {
"name": "riscv", "name": "riscv-nemu",
"displayName": "RV32 all platform", "displayName": "Riscv32 NEMU",
"generator": "Unix Makefiles", "generator": "Unix Makefiles",
"binaryDir": "${sourceDir}/out/build/${presetName}", "binaryDir": "${sourceDir}/out/build/${presetName}",
"installDir": "/home/xin/repo/ysyx-workbench/abstract-machine/out/install",
"cacheVariables": { "cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo", "CMAKE_BUILD_TYPE": "Debug",
"ISA": "riscv", "ISA": "riscv",
"__PLATFORM_NPC__": true,
"__PLATFORM_NEMU__": true "__PLATFORM_NEMU__": true
} }
} }

View file

@ -1,15 +0,0 @@
{
"version": 6,
"configurePresets": [
{
"name": "Native install",
"inherits": "native",
"installDir": "/home/xin/repo/ysyx-workbench/abstract-machine/out/install"
},
{
"name": "RISCV install",
"inherits": "riscv",
"installDir": "/home/xin/repo/ysyx-workbench/abstract-machine/out/install"
}
]
}

View file

@ -1,26 +1,10 @@
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
add_library(am_interface INTERFACE)
target_include_directories(am_interface INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include/abstract-machine>)
add_subdirectory(src) add_subdirectory(src)
foreach(PLATFORM IN LISTS PLATFORMS) install(DIRECTORY include/ DESTINATION include/abstract-machine)
if(ISA MATCHES "native")
set(ARCH "native")
else()
set(ARCH ${ISA}-${PLATFORM})
endif()
install(
TARGETS am-${ARCH}
EXPORT amTargets-${ARCH}
LIBRARY DESTINATION lib)
install(
EXPORT amTargets-${ARCH}
FILE amTargets.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/am-${ARCH})
configure_package_config_file(
${CMAKE_SOURCE_DIR}/cmake/am-config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/am-${ARCH}-config.cmake
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/am-${ARCH})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/am-${ARCH}-config.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/am-${ARCH})
endforeach()

View file

@ -1,6 +1,5 @@
#ifndef ARCH_H__ #ifndef ARCH_H__
#define ARCH_H__ #define ARCH_H__
#include <stdint.h>
#ifdef __riscv_e #ifdef __riscv_e
#define NR_REGS 16 #define NR_REGS 16
@ -10,13 +9,10 @@
struct Context { struct Context {
// TODO: fix the order of these members to match trap.S // TODO: fix the order of these members to match trap.S
uintptr_t gpr[NR_REGS]; uintptr_t mepc, mcause, gpr[NR_REGS], mstatus;
uintptr_t mcause, mstatus, mepc;
void *pdir; void *pdir;
}; };
enum Cause { CauseEnvironmentCallFromMMode = 11 };
#ifdef __riscv_e #ifdef __riscv_e
#define GPR1 gpr[15] // a5 #define GPR1 gpr[15] // a5
#else #else

View file

@ -1 +1,53 @@
add_subdirectory(${ISA}) if(ISA MATCHES "native")
set(SOURCEDIR "./${PLATFORM}")
else()
set(SOURCEDIR "./${ISA}/${PLATFORM}")
endif()
add_subdirectory(${SOURCEDIR})
target_include_directories(am-${ARCH}
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
$<INSTALL_INTERFACE:include/abstract-machine>)
target_link_libraries(am-${ARCH}
PUBLIC klib_interface
INTERFACE m)
# TODO: Check
target_link_options(am-${ARCH} INTERFACE
$<BUILD_INTERFACE:-T${CMAKE_SOURCE_DIR}/scripts/${LINKER_SCRIPT}>
$<INSTALL_INTERFACE:-T${CMAKE_INSTALL_LIBDIR}/cmake/am-${ARCH}/${LINKER_SCRIPT}>)
# Interface compile flags
target_link_options(am-${ARCH} INTERFACE
-znoexecstack)
target_compile_options(am-${ARCH} INTERFACE
-fno-asynchronous-unwind-tables
-fno-builtin
-fno-stack-protector
-U_FORTIFY_SOURCE
$<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>
$<$<COMPILE_LANGUAGE:CXX>:-ffreestanding>
$<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>)
install(TARGETS am-${ARCH} klib_interface am_interface
EXPORT amTargets
LIBRARY DESTINATION lib)
install(EXPORT amTargets
FILE amTargets.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/am-${ARCH})
configure_package_config_file(${CMAKE_SOURCE_DIR}/cmake/am-config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/am-${ARCH}-config.cmake
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/am-${ARCH})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/am-${ARCH}-config.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/am-${ARCH})
# TODO: check
install(FILES ${CMAKE_SOURCE_DIR}/scripts/${LINKER_SCRIPT}
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/am-${ARCH})

View file

@ -1,3 +1,6 @@
include(CheckPIESupported)
check_pie_supported()
set(SOURCES set(SOURCES
trap.S trap.S
cte.c cte.c
@ -10,16 +13,14 @@ set(SOURCES
ioe/disk.c ioe/disk.c
ioe/gpu.c ioe/gpu.c
ioe/input.c ioe/input.c
ioe/timer.c) ioe/timer.c
)
add_library(am-native ${SOURCES}) add_library(am-native ${SOURCES})
# FIXME: get free(): invalid address when user program compiled without pie # FIXME: get free(): invalid address when user program compiled without pie
set_target_properties( set_target_properties(am-native PROPERTIES
am-native PROPERTIES POSITION_INDEPENDENT_CODE TRUE POSITION_INDEPENDENT_CODE TRUE
INTERFACE_POSITION_INDEPENDENT_CODE TRUE) INTERFACE_POSITION_INDEPENDENT_CODE TRUE)
find_package(SDL2 REQUIRED) find_package(SDL2 REQUIRED)
target_link_libraries( target_link_libraries(am-${ARCH} PUBLIC SDL2::SDL2)
am-native
PUBLIC SDL2::SDL2 dl m
PRIVATE klib_interface am_interface)

View file

@ -1,5 +1,5 @@
#include "platform.h"
#include <stdatomic.h> #include <stdatomic.h>
#include "platform.h"
int __am_mpe_init = 0; int __am_mpe_init = 0;
extern bool __am_has_ioe; extern bool __am_has_ioe;
@ -16,8 +16,7 @@ bool mpe_init(void (*entry)()) {
char ch; char ch;
assert(read(sync_pipe[0], &ch, 1) == 1); assert(read(sync_pipe[0], &ch, 1) == 1);
assert(ch == '+'); assert(ch == '+');
close(sync_pipe[0]); close(sync_pipe[0]); close(sync_pipe[1]);
close(sync_pipe[1]);
thiscpu->cpuid = i; thiscpu->cpuid = i;
__am_init_timer_irq(); __am_init_timer_irq();
@ -32,8 +31,7 @@ bool mpe_init(void (*entry)()) {
for (int i = 1; i < cpu_count(); i++) { for (int i = 1; i < cpu_count(); i++) {
assert(write(sync_pipe[1], "+", 1) == 1); assert(write(sync_pipe[1], "+", 1) == 1);
} }
close(sync_pipe[0]); close(sync_pipe[0]); close(sync_pipe[1]);
close(sync_pipe[1]);
entry(); entry();
panic("MP entry should not return\n"); panic("MP entry should not return\n");
@ -44,7 +42,9 @@ int cpu_count() {
return __am_ncpu; return __am_ncpu;
} }
int cpu_current() { return thiscpu->cpuid; } int cpu_current() {
return thiscpu->cpuid;
}
int atomic_xchg(int *addr, int newval) { int atomic_xchg(int *addr, int newval) {
return atomic_exchange((int *)addr, newval); return atomic_exchange((int *)addr, newval);

View file

@ -1,11 +1,11 @@
#define _GNU_SOURCE #define _GNU_SOURCE
#include "platform.h" #include <sys/mman.h>
#include <sys/auxv.h>
#include <dlfcn.h> #include <dlfcn.h>
#include <elf.h> #include <elf.h>
#include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <sys/auxv.h> #include <stdio.h>
#include <sys/mman.h> #include "platform.h"
#define MAX_CPU 16 #define MAX_CPU 16
#define TRAP_PAGE_START (void *)0x100000 #define TRAP_PAGE_START (void *)0x100000
@ -70,12 +70,12 @@ static void init_platform() {
assert(ret2 == 0); assert(ret2 == 0);
pmem = mmap(PMEM_START, PMEM_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC, pmem = mmap(PMEM_START, PMEM_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC,
MAP_SHARED | MAP_FIXED, pmem_fd, 0); MAP_SHARED | MAP_FIXED, pmem_fd, 0);
assert(pmem != (void *)-1); assert(pmem != (void *)-1);
// allocate private per-cpu structure // allocate private per-cpu structure
thiscpu = mmap(NULL, sizeof(*thiscpu), PROT_READ | PROT_WRITE, thiscpu = mmap(NULL, sizeof(*thiscpu), PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
assert(thiscpu != (void *)-1); assert(thiscpu != (void *)-1);
thiscpu->cpuid = 0; thiscpu->cpuid = 0;
thiscpu->vm_head = NULL; thiscpu->vm_head = NULL;
@ -83,7 +83,7 @@ static void init_platform() {
// create trap page to receive syscall and yield by SIGSEGV // create trap page to receive syscall and yield by SIGSEGV
int sys_pgsz = sysconf(_SC_PAGESIZE); int sys_pgsz = sysconf(_SC_PAGESIZE);
void *ret = mmap(TRAP_PAGE_START, sys_pgsz, PROT_NONE, void *ret = mmap(TRAP_PAGE_START, sys_pgsz, PROT_NONE,
MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, -1, 0); MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
assert(ret != (void *)-1); assert(ret != (void *)-1);
// save the address of memcpy() in glibc, since it may be linked with klib // save the address of memcpy() in glibc, since it may be linked with klib
@ -94,7 +94,7 @@ static void init_platform() {
Elf64_Phdr *phdr = (void *)getauxval(AT_PHDR); Elf64_Phdr *phdr = (void *)getauxval(AT_PHDR);
int phnum = (int)getauxval(AT_PHNUM); int phnum = (int)getauxval(AT_PHNUM);
int i; int i;
for (i = 0; i < phnum; i++) { for (i = 0; i < phnum; i ++) {
if (phdr[i].p_type == PT_LOAD && (phdr[i].p_flags & PF_W)) { if (phdr[i].p_type == PT_LOAD && (phdr[i].p_flags & PF_W)) {
// allocate temporary memory // allocate temporary memory
extern char end; extern char end;
@ -102,8 +102,7 @@ static void init_platform() {
uintptr_t pad = (uintptr_t)vaddr & 0xfff; uintptr_t pad = (uintptr_t)vaddr & 0xfff;
void *vaddr_align = vaddr - pad; void *vaddr_align = vaddr - pad;
uintptr_t size = phdr[i].p_memsz + pad; uintptr_t size = phdr[i].p_memsz + pad;
void *temp_mem = mmap(NULL, size, PROT_READ | PROT_WRITE, void *temp_mem = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
assert(temp_mem != (void *)-1); assert(temp_mem != (void *)-1);
// save data and bss sections // save data and bss sections
@ -111,13 +110,11 @@ static void init_platform() {
// save the address of mmap() which will be used after munamp(), // save the address of mmap() which will be used after munamp(),
// since calling the library functions requires accessing GOT, which will be unmapped // since calling the library functions requires accessing GOT, which will be unmapped
void *(*mmap_libc)(void *, size_t, int, int, int, off_t) = void *(*mmap_libc)(void *, size_t, int, int, int, off_t) = dlsym(RTLD_NEXT, "mmap");
dlsym(RTLD_NEXT, "mmap");
assert(mmap_libc != NULL); assert(mmap_libc != NULL);
// load the address of memcpy() on stack, which can still be accessed // load the address of memcpy() on stack, which can still be accessed
// after the data section is unmapped // after the data section is unmapped
void *(*volatile memcpy_libc_temp)(void *, const void *, size_t) = void *(*volatile memcpy_libc_temp)(void *, const void *, size_t) = memcpy_libc;
memcpy_libc;
// unmap the data and bss sections // unmap the data and bss sections
ret2 = munmap(vaddr_align, size); ret2 = munmap(vaddr_align, size);
@ -125,7 +122,7 @@ static void init_platform() {
// map the sections again with MAP_SHARED, which will be shared across fork() // map the sections again with MAP_SHARED, which will be shared across fork()
ret = mmap_libc(vaddr_align, size, PROT_READ | PROT_WRITE | PROT_EXEC, ret = mmap_libc(vaddr_align, size, PROT_READ | PROT_WRITE | PROT_EXEC,
MAP_SHARED | MAP_FIXED | MAP_ANONYMOUS, -1, 0); MAP_SHARED | MAP_FIXED | MAP_ANONYMOUS, -1, 0);
assert(ret == vaddr_align); assert(ret == vaddr_align);
// restore the data in the sections // restore the data in the sections
@ -179,8 +176,7 @@ static void init_platform() {
void __am_exit_platform(int code) { void __am_exit_platform(int code) {
// let Linux clean up other resource // let Linux clean up other resource
extern int __am_mpe_init; extern int __am_mpe_init;
if (__am_mpe_init && cpu_count() > 1) if (__am_mpe_init && cpu_count() > 1) kill(0, SIGKILL);
kill(0, SIGKILL);
exit(code); exit(code);
} }
@ -189,12 +185,10 @@ void __am_pmem_map(void *va, void *pa, int prot) {
int mmap_prot = PROT_NONE; int mmap_prot = PROT_NONE;
// we do not support executable bit, so mark // we do not support executable bit, so mark
// all readable pages executable as well // all readable pages executable as well
if (prot & MMAP_READ) if (prot & MMAP_READ) mmap_prot |= PROT_READ | PROT_EXEC;
mmap_prot |= PROT_READ | PROT_EXEC; if (prot & MMAP_WRITE) mmap_prot |= PROT_WRITE;
if (prot & MMAP_WRITE) void *ret = mmap(va, __am_pgsize, mmap_prot,
mmap_prot |= PROT_WRITE; MAP_SHARED | MAP_FIXED, pmem_fd, (uintptr_t)(pa - pmem));
void *ret = mmap(va, __am_pgsize, mmap_prot, MAP_SHARED | MAP_FIXED, pmem_fd,
(uintptr_t)(pa - pmem));
assert(ret != (void *)-1); assert(ret != (void *)-1);
} }
@ -211,21 +205,26 @@ void __am_get_intr_sigmask(sigset_t *s) {
memcpy_libc(s, &__am_intr_sigmask, sizeof(__am_intr_sigmask)); memcpy_libc(s, &__am_intr_sigmask, sizeof(__am_intr_sigmask));
} }
int __am_is_sigmask_sti(sigset_t *s) { return !sigismember(s, SIGVTALRM); } int __am_is_sigmask_sti(sigset_t *s) {
return !sigismember(s, SIGVTALRM);
}
void __am_send_kbd_intr() { kill(getpid(), SIGUSR1); } void __am_send_kbd_intr() {
kill(getpid(), SIGUSR1);
}
void __am_pmem_protect() { void __am_pmem_protect() {
// int ret = mprotect(PMEM_START, PMEM_SIZE, PROT_NONE); // int ret = mprotect(PMEM_START, PMEM_SIZE, PROT_NONE);
// assert(ret == 0); // assert(ret == 0);
} }
void __am_pmem_unprotect() { void __am_pmem_unprotect() {
// int ret = mprotect(PMEM_START, PMEM_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC); // int ret = mprotect(PMEM_START, PMEM_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC);
// assert(ret == 0); // assert(ret == 0);
} }
// This dummy function will be called in trm.c. // This dummy function will be called in trm.c.
// The purpose of this dummy function is to let linker add this file to the object // The purpose of this dummy function is to let linker add this file to the object
// file set. Without it, the constructor of @_init_platform will not be linked. // file set. Without it, the constructor of @_init_platform will not be linked.
void __am_platform_dummy() {} void __am_platform_dummy() {
}

View file

@ -4,7 +4,6 @@
#define KEYDOWN_MASK 0x8000 #define KEYDOWN_MASK 0x8000
void __am_input_keybrd(AM_INPUT_KEYBRD_T *kbd) { void __am_input_keybrd(AM_INPUT_KEYBRD_T *kbd) {
uint32_t keycode = inl(KBD_ADDR); kbd->keydown = 0;
kbd->keydown = ((keycode & KEYDOWN_MASK) != 0); kbd->keycode = AM_KEY_NONE;
kbd->keycode = keycode & (~KEYDOWN_MASK);
} }

View file

@ -1,17 +1,18 @@
#include <am.h> #include <am.h>
#include <nemu.h> #include <nemu.h>
void __am_timer_init() {} void __am_timer_init() {
}
void __am_timer_uptime(AM_TIMER_UPTIME_T *uptime) { void __am_timer_uptime(AM_TIMER_UPTIME_T *uptime) {
uptime->us = ((uint64_t)inl(RTC_ADDR + 4) << 32) + inl(RTC_ADDR); uptime->us = 0;
} }
void __am_timer_rtc(AM_TIMER_RTC_T *rtc) { void __am_timer_rtc(AM_TIMER_RTC_T *rtc) {
rtc->second = 0; rtc->second = 0;
rtc->minute = 0; rtc->minute = 0;
rtc->hour = 0; rtc->hour = 0;
rtc->day = 0; rtc->day = 0;
rtc->month = 0; rtc->month = 0;
rtc->year = 1900; rtc->year = 1900;
} }

View file

@ -6,18 +6,19 @@ int main(const char *args);
Area heap = RANGE(&_heap_start, PMEM_END); Area heap = RANGE(&_heap_start, PMEM_END);
#ifndef MAINARGS #ifndef MAINARGS
#define MAINARGS "i" #define MAINARGS ""
#endif #endif
static const char mainargs[] = MAINARGS; static const char mainargs[] = MAINARGS;
void putch(char ch) { outb(SERIAL_PORT, ch); } void putch(char ch) {
outb(SERIAL_PORT, ch);
}
void halt(int code) { void halt(int code) {
nemu_trap(code); nemu_trap(code);
// should not reach here // should not reach here
while (1) while (1);
;
} }
void _trm_init() { void _trm_init() {

View file

@ -1,9 +0,0 @@
foreach(PLATFORM IN LISTS PLATFORMS)
string(TOUPPER ${ARCH} ARCH_UPPER)
set(AM_COMMON_COMPILE_DEF
# -- Arch related
$<MAKE_C_IDENTIFIER:__ARCH_${ARCH_UPPER}__> __ISA_${ISA_UPPER}__
__PLATFORM_${PLATFORM_UPPER}__
$<$<BOOL:${NATIVE_USE_KLIB}>:__NATIVE_USE_KLIB__>)
add_subdirectory(${PLATFORM})
endforeach()

View file

@ -1,41 +1,34 @@
include(nemu-settings) include(nemu-settings)
include(riscv-settings) include(riscv-settings)
add_library(am-riscv-nemu cte.c start.S trap.S vme.c ${NEMU_SOURCES}) add_library(am-${ISA}-nemu
cte.c
start.S
trap.S
vme.c
${NEMU_SOURCES}
)
target_compile_options(am-riscv-nemu PRIVATE ${NEMU_COMPILE_OPTIONS} target_compile_options(am-${ISA}-nemu PRIVATE
${RISCV_COMPILE_OPTIONS}) ${NEMU_COMPILE_OPTIONS}
${RISCV_COMPILE_OPTIONS})
target_link_options(am-${ISA}-nemu PRIVATE
${NEMU_LINK_OPITIONS}
${RISCV_LINK_OPTIONS})
target_include_directories(am-${ISA}-nemu PRIVATE
${NEMU_INCLUDE_DIRECTORIES})
target_link_options(am-${ISA}-nemu INTERFACE
LINKER:--defsym=_pmem_start=0x80000000
LINKER:--defsym=_entry_offset=0x0
LINKER:--gc-sections
LINKER:-e _start
-nostartfiles)
target_link_options(am-riscv-nemu INTERFACE ${NEMU_LINK_OPITIONS} target_compile_definitions(am-${ISA}-nemu PUBLIC
${RISCV_LINK_OPTIONS}) ARCH_H="arch/riscv.h")
target_compile_definitions(am-${ISA}-nemu PRIVATE
ISA_H="riscv/riscv.h")
target_include_directories(am-riscv-nemu PRIVATE ${NEMU_INCLUDE_DIRECTORIES}) set_target_properties(am-${ISA}-nemu PROPERTIES
POSITION_INDEPENDENT_CODE OFF
target_link_options( INTERFACE_POSITION_INDEPENDENT_CODE OFF)
am-riscv-nemu
INTERFACE
LINKER:--defsym=_pmem_start=0x80000000
LINKER:--defsym=_entry_offset=0x0
LINKER:--gc-sections
LINKER:-e
_start
-nostartfiles)
target_link_options(
am-riscv-nemu INTERFACE
$<BUILD_INTERFACE:-T${CMAKE_SOURCE_DIR}/scripts/linker.ld>
$<INSTALL_INTERFACE:-T${CMAKE_INSTALL_FULL_DATADIR}/linker.ld>)
target_link_libraries(
am-riscv-nemu
PUBLIC am_interface klib_interface
INTERFACE m)
target_compile_definitions(am-riscv-nemu PRIVATE ISA_H=<riscv/riscv.h>)
set_target_properties(
am-riscv-nemu PROPERTIES POSITION_INDEPENDENT_CODE OFF
INTERFACE_POSITION_INDEPENDENT_CODE OFF)
install(FILES ${CMAKE_SOURCE_DIR}/scripts/linker.ld
DESTINATION ${CMAKE_INSTALL_DATADIR})

View file

@ -1,21 +1,14 @@
#include "arch/riscv.h"
#include <am.h> #include <am.h>
#include <klib.h>
#include <riscv/riscv.h> #include <riscv/riscv.h>
#include <stdint.h> #include <klib.h>
static Context *(*user_handler)(Event, Context *) = NULL; static Context* (*user_handler)(Event, Context*) = NULL;
Context *__am_irq_handle(Context *c) { Context* __am_irq_handle(Context *c) {
if (user_handler) { if (user_handler) {
Event ev = {0}; Event ev = {0};
switch (c->mcause) { switch (c->mcause) {
case CauseEnvironmentCallFromMMode: default: ev.event = EVENT_ERROR; break;
ev.event = EVENT_YIELD;
break;
default:
ev.event = EVENT_ERROR;
break;
} }
c = user_handler(ev, c); c = user_handler(ev, c);
@ -27,7 +20,7 @@ Context *__am_irq_handle(Context *c) {
extern void __am_asm_trap(void); extern void __am_asm_trap(void);
bool cte_init(Context *(*handler)(Event, Context *)) { bool cte_init(Context*(*handler)(Event, Context*)) {
// initialize exception entry // initialize exception entry
asm volatile("csrw mtvec, %0" : : "r"(__am_asm_trap)); asm volatile("csrw mtvec, %0" : : "r"(__am_asm_trap));
@ -38,10 +31,7 @@ bool cte_init(Context *(*handler)(Event, Context *)) {
} }
Context *kcontext(Area kstack, void (*entry)(void *), void *arg) { Context *kcontext(Area kstack, void (*entry)(void *), void *arg) {
Context *c = kstack.end - sizeof(Context); return NULL;
c->mepc = (uintptr_t)entry;
c->gpr[10] = (uintptr_t)arg;
return c;
} }
void yield() { void yield() {
@ -52,6 +42,9 @@ void yield() {
#endif #endif
} }
bool ienabled() { return false; } bool ienabled() {
return false;
}
void iset(bool enable) {} void iset(bool enable) {
}

View file

@ -60,8 +60,6 @@ __am_asm_trap:
mv a0, sp mv a0, sp
jal __am_irq_handle jal __am_irq_handle
mv sp, a0
LOAD t1, OFFSET_STATUS(sp) LOAD t1, OFFSET_STATUS(sp)
LOAD t2, OFFSET_EPC(sp) LOAD t2, OFFSET_EPC(sp)
csrw mstatus, t1 csrw mstatus, t1

View file

@ -1,46 +0,0 @@
include(riscv-settings)
add_subdirectory(libgcc)
add_library(
am-riscv-npc
cte.c
input.c
ioe.c
mpe.c
start.S
timer.c
trap.S
trm.c
vme.c)
target_link_libraries(
am-riscv-npc
PRIVATE npcgcc
PUBLIC am_interface klib_interface)
target_link_options(
am-riscv-npc INTERFACE
$<BUILD_INTERFACE:-T${CMAKE_SOURCE_DIR}/scripts/linker.ld>
$<INSTALL_INTERFACE:-T${CMAKE_INSTALL_FULL_DATADIR}/linker.ld>)
target_link_options(
am-riscv-npc
INTERFACE
LINKER:--defsym=_pmem_start=0x80000000
LINKER:--defsym=_entry_offset=0x0
LINKER:--gc-sections
LINKER:-e
_start
-nostartfiles)
target_link_options(
am-riscv-npc INTERFACE
$<BUILD_INTERFACE:-T${CMAKE_SOURCE_DIR}/scripts/linker.ld>
$<INSTALL_INTERFACE:-T${CMAKE_INSTALL_FULL_DATADIR}/linker.ld>)
target_compile_definitions(am-riscv-npc PUBLIC ${AM_COMMON_COMPILE_DEF}
ARCH_H=<arch/riscv.h>)
install(FILES ${CMAKE_SOURCE_DIR}/scripts/linker.ld
DESTINATION ${CMAKE_INSTALL_DATADIR})

View file

@ -7,32 +7,26 @@ void __am_timer_rtc(AM_TIMER_RTC_T *);
void __am_timer_uptime(AM_TIMER_UPTIME_T *); void __am_timer_uptime(AM_TIMER_UPTIME_T *);
void __am_input_keybrd(AM_INPUT_KEYBRD_T *); void __am_input_keybrd(AM_INPUT_KEYBRD_T *);
static void __am_timer_config(AM_TIMER_CONFIG_T *cfg) { static void __am_timer_config(AM_TIMER_CONFIG_T *cfg) { cfg->present = true; cfg->has_rtc = true; }
cfg->present = true; static void __am_input_config(AM_INPUT_CONFIG_T *cfg) { cfg->present = true; }
cfg->has_rtc = true;
}
static void __am_input_config(AM_INPUT_CONFIG_T *cfg) { cfg->present = true; }
static void __am_uart_config(AM_UART_CONFIG_T *cfg) { cfg->present = false; }
typedef void (*handler_t)(void *buf); typedef void (*handler_t)(void *buf);
static void *lut[128] = { static void *lut[128] = {
[AM_UART_CONFIG] = __am_uart_config, [AM_TIMER_CONFIG] = __am_timer_config,
[AM_TIMER_CONFIG] = __am_timer_config, [AM_TIMER_RTC ] = __am_timer_rtc,
[AM_TIMER_RTC] = __am_timer_rtc, [AM_TIMER_UPTIME] = __am_timer_uptime,
[AM_TIMER_UPTIME] = __am_timer_uptime, [AM_INPUT_CONFIG] = __am_input_config,
[AM_INPUT_CONFIG] = __am_input_config, [AM_INPUT_KEYBRD] = __am_input_keybrd,
[AM_INPUT_KEYBRD] = __am_input_keybrd,
}; };
static void fail(void *buf) { panic("access nonexist register"); } static void fail(void *buf) { panic("access nonexist register"); }
bool ioe_init() { bool ioe_init() {
for (int i = 0; i < LENGTH(lut); i++) for (int i = 0; i < LENGTH(lut); i++)
if (!lut[i]) if (!lut[i]) lut[i] = fail;
lut[i] = fail;
__am_timer_init(); __am_timer_init();
return true; return true;
} }
void ioe_read(int reg, void *buf) { ((handler_t)lut[reg])(buf); } void ioe_read (int reg, void *buf) { ((handler_t)lut[reg])(buf); }
void ioe_write(int reg, void *buf) { ((handler_t)lut[reg])(buf); } void ioe_write(int reg, void *buf) { ((handler_t)lut[reg])(buf); }

View file

@ -1,9 +0,0 @@
add_library(npcgcc ashldi3.c div.S muldi3.S multi3.c unused.c)
target_link_libraries(npcgcc PRIVATE klib_interface am_interface)
target_link_options(npcgcc INTERFACE -nolibc -nostdlib)
install(
TARGETS npcgcc
EXPORT amTargets-riscv-npc
LIBRARY DESTINATION lib)

View file

@ -1,6 +0,0 @@
#ifndef _AM_NPC_NPC_H_
#define _AM_NPC_NPC_H_
#define SERIAL_PORT 0x10000000
#define RTC_ADDR 0x10001000
#endif

View file

@ -1,18 +1,17 @@
#include "npc.h"
#include <am.h> #include <am.h>
#include <riscv/riscv.h>
void __am_timer_init() {} void __am_timer_init() {
}
void __am_timer_uptime(AM_TIMER_UPTIME_T *uptime) { void __am_timer_uptime(AM_TIMER_UPTIME_T *uptime) {
uptime->us = ((uint64_t)inl(RTC_ADDR + 4) << 32) + inl(RTC_ADDR); uptime->us = 0;
} }
void __am_timer_rtc(AM_TIMER_RTC_T *rtc) { void __am_timer_rtc(AM_TIMER_RTC_T *rtc) {
rtc->second = 0; rtc->second = 0;
rtc->minute = 0; rtc->minute = 0;
rtc->hour = 0; rtc->hour = 0;
rtc->day = 0; rtc->day = 0;
rtc->month = 0; rtc->month = 0;
rtc->year = 1900; rtc->year = 1900;
} }

View file

@ -1,27 +1,24 @@
#include "npc.h"
#include <am.h> #include <am.h>
#include <klib-macros.h> #include <klib-macros.h>
#include <riscv/riscv.h>
extern char _heap_start; extern char _heap_start;
int main(const char *args); int main(const char *args);
extern char _pmem_start; extern char _pmem_start;
#define PMEM_SIZE (128 * 1024 * 1024) #define PMEM_SIZE (128 * 1024 * 1024)
#define PMEM_END ((uintptr_t)&_pmem_start + PMEM_SIZE) #define PMEM_END ((uintptr_t)&_pmem_start + PMEM_SIZE)
Area heap = RANGE(&_heap_start, PMEM_END); Area heap = RANGE(&_heap_start, PMEM_END);
#ifndef MAINARGS #ifndef MAINARGS
#define MAINARGS "3" #define MAINARGS ""
#endif #endif
static const char mainargs[] = MAINARGS; static const char mainargs[] = MAINARGS;
void putch(char ch) { outb(SERIAL_PORT, ch); } void putch(char ch) {
}
void halt(int code) { void halt(int code) {
asm volatile("mv a0, %0; ebreak" : : "r"(code)); while (1);
while (1)
;
} }
void _trm_init() { void _trm_init() {

View file

@ -6,5 +6,4 @@ find_dependency(SDL2 REQUIRED)
endif() endif()
# Include the targets file # Include the targets file
include("${CMAKE_CURRENT_LIST_DIR}/../interfaceTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/amTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/amTargets.cmake")

View file

@ -1,12 +1,11 @@
set(NEMU_COMPILE_OPTIONS -fdata-sections -ffunction-sections) set(NEMU_COMPILE_OPTIONS -fdata-sections -ffunction-sections)
set(NEMU_LINK_OPTIONS set(NEMU_LINK_OPTIONS
-nostartfiles
-nolibc
--defsym=_pmem_start=0x80000000 --defsym=_pmem_start=0x80000000
--defsym=_entry_offset=0x0 --defsym=_entry_offset=0x0
--gc-sections --gc-sections
-e -e _start)
_start) set(NEMU_INCLUDE_DIRECTORIES
set(NEMU_INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/am/src/platform/nemu/include) ${CMAKE_SOURCE_DIR}/am/src/platform/nemu/include)
file(GLOB_RECURSE NEMU_SOURCES ${CMAKE_SOURCE_DIR}/am/src/platform/nemu/*.[cS]) file(GLOB_RECURSE NEMU_SOURCES
${CMAKE_SOURCE_DIR}/am/src/platform/nemu/*.[cS])
set(INCLUDE_LINKER_SCRIPT ON) set(INCLUDE_LINKER_SCRIPT ON)

View file

@ -1,23 +1,20 @@
{ stdenv { stdenv,
, lib lib,
, cmake cmake,
, SDL2 SDL2,
, glibc isa ? "native",
, isa ? "native" platform ? "NEMU"
, platform ? [ ]
}: }:
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "abstract-machine"; pname = "abstract-machine";
version = "2024.06.01"; version = "2024.02.18";
src = ./.; src = ./.;
cmakeFlags = [ cmakeFlags = [
(lib.cmakeFeature "ISA" isa) (lib.cmakeFeature "ISA" isa)
] ++ map (p: (lib.cmakeBool "__PLATFORM_${lib.strings.toUpper p}__" true)) platform; (lib.cmakeBool "__PLATFORM_${lib.strings.toUpper platform}__" true)
];
cmakeBuildType = "Debug";
dontStrip = true;
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
@ -25,10 +22,5 @@ stdenv.mkDerivation {
buildInputs = [ buildInputs = [
] ++ (if isa == "native" then [ SDL2 ] else [ ]); ] ++ (if platform=="native" then [ SDL2 ] else [ ]);
propagatedBuildInputs = [
] ++ (if isa == "native" then [ SDL2 ] else [ ]);
doCheck = true;
} }

View file

@ -1,4 +1,12 @@
install(DIRECTORY include/ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/abstract-machine)
add_library(klib_interface INTERFACE)
target_include_directories(klib_interface
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include/abstract-machine>)
add_subdirectory(src) add_subdirectory(src)
# add_subdirectory(tests)
install(DIRECTORY include/ DESTINATION include/abstract-machine)

View file

@ -1,29 +1,33 @@
# find_package(FLEX) find_package(BISON) # find_package(FLEX)
# find_package(BISON)
# FLEX_TARGET(fmt_scanner fmt_scanner.l fmt_scanner.c) # FLEX_TARGET(fmt_scanner fmt_scanner.l fmt_scanner.c)
set(SOURCES cpp.c int64.c stdio.c stdlib.c string.c set(SOURCES
# ${FLEX_fmt_scanner_OUTPUTS} cpp.c
int64.c
stdio.c
stdlib.c
string.c
# ${FLEX_fmt_scanner_OUTPUTS}
) )
add_library(klib ${SOURCES}) add_library(klib ${SOURCES})
target_link_libraries(klib PUBLIC am_interface klib_interface) target_include_directories(klib PUBLIC $<TARGET_PROPERTY:am_interface,INTERFACE_INCLUDE_DIRECTORIES>)
target_compile_options(klib PUBLIC -fno-builtin) target_compile_definitions(klib PUBLIC $<TARGET_PROPERTY:am-${ARCH},INTERFACE_COMPILE_DEFINITIONS>)
install( install(TARGETS klib
TARGETS klib EXPORT klibTargets
EXPORT klibTargets LIBRARY DESTINATION lib)
LIBRARY DESTINATION lib)
install( install(EXPORT klibTargets
EXPORT klibTargets FILE klibTargets.cmake
FILE klibTargets.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/klib)
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/klib)
configure_package_config_file( configure_package_config_file(${CMAKE_SOURCE_DIR}/cmake/klib-config.cmake.in
${CMAKE_SOURCE_DIR}/cmake/klib-config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/klib-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/klib-config.cmake
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/klib) INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/klib)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/klib-config.cmake install(FILES ${CMAKE_CURRENT_BINARY_DIR}/klib-config.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/klib) DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/klib)

View file

@ -1,91 +1,16 @@
#include <am.h> #include <am.h>
#include <klib-macros.h>
#include <klib.h> #include <klib.h>
#include <klib-macros.h>
#include <stdarg.h> #include <stdarg.h>
#if !defined(__ISA_NATIVE__) || defined(__NATIVE_USE_KLIB__) #if !defined(__ISA_NATIVE__) || defined(__NATIVE_USE_KLIB__)
void print_int(int num, int width, char pad) { int vprintf(const char *fmt, va_list ap) {
int reverse = 0; const char *p = fmt;
int count = 0; while(*p != '\0') {
putch(*p);
if (num == 0) {
reverse = 0;
count = 1;
} else {
if (num < 0) {
putch('-');
num = -num;
}
while (num != 0) {
reverse = reverse * 10 + (num % 10);
num /= 10;
count++;
}
}
while (width > count) {
putch(pad);
width--;
}
if (reverse == 0) {
putch('0');
} else {
while (reverse != 0) {
putch('0' + (reverse % 10));
reverse /= 10;
}
}
}
int vprintf(const char *format, va_list args) {
const char *p = format;
while (*p) {
if (*p == '%') {
p++; // Skip the '%'
char pad = ' ';
int width = 0;
if (*p == '0') {
pad = '0';
p++;
}
while (*p >= '0' && *p <= '9') {
width = width * 10 + (*p - '0');
p++;
}
switch (*p) {
case 'd': { // Integer
int ival = va_arg(args, int);
print_int(ival, width, pad);
break;
}
case 'c': { // Character
char c = (char)va_arg(args, int);
putch(c);
break;
}
case 's': { // String
char *s = va_arg(args, char *);
putstr(s);
break;
}
case '%': {
putch('%');
break;
}
default:
panic("Wrong formatter provided to printf");
}
} else {
putch(*p);
}
p++;
} }
return 0;
} }
int printf(const char *fmt, ...) { int printf(const char *fmt, ...) {
@ -96,99 +21,12 @@ int printf(const char *fmt, ...) {
return 0; return 0;
} }
void append_to_buffer(char **buf, int *pos, char c) { (*buf)[(*pos)++] = c; } int vsprintf(char *out, const char *fmt, va_list ap) {
panic("Not implemented");
void print_int_to_buf(char **buf, int *pos, int num, int width, char pad) {
int reverse = 0, count = 0, neg = 0;
if (num == 0) {
reverse = 0;
count = 1;
} else {
if (num < 0) {
append_to_buffer(buf, pos, '-');
num = -num;
neg = 1;
}
while (num != 0) {
reverse = reverse * 10 + (num % 10);
num /= 10;
count++;
}
}
width -= neg;
while (width > count) {
append_to_buffer(buf, pos, pad);
width--;
}
for (int i = 0; i < count; i++) {
append_to_buffer(buf, pos, '0' + (reverse % 10));
reverse /= 10;
}
}
int vsprintf(char *buf, const char *format, va_list args) {
const char *p = format;
int pos = 0; // Position in buf
while (*p) {
if (*p == '%') {
p++; // Skip the '%'
char pad = ' ';
int width = 0;
if (*p == '0') {
pad = '0';
p++;
}
while (*p >= '0' && *p <= '9') {
width = width * 10 + (*p - '0');
p++;
}
switch (*p) {
case 'd': { // Integer
int ival = va_arg(args, int);
print_int_to_buf(&buf, &pos, ival, width, pad);
break;
}
case 'c': { // Character
char c = (char)va_arg(args, int);
append_to_buffer(&buf, &pos, c);
break;
}
case 's': { // String
char *s = va_arg(args, char *);
while (*s) {
append_to_buffer(&buf, &pos, *s++);
}
break;
}
case '%': {
append_to_buffer(&buf, &pos, '%');
break;
}
default:
panic("Unsupported format specifier");
}
} else {
append_to_buffer(&buf, &pos, *p);
}
p++;
}
buf[pos] = '\0'; // Null-terminate the string
return pos;
} }
int sprintf(char *out, const char *fmt, ...) { int sprintf(char *out, const char *fmt, ...) {
va_list args; panic("Not implemented");
va_start(args, fmt);
vsprintf(out, fmt, args);
va_end(args);
return 0;
} }
int snprintf(char *out, size_t n, const char *fmt, ...) { int snprintf(char *out, size_t n, const char *fmt, ...) {

View file

@ -1,6 +1,6 @@
#include <am.h> #include <am.h>
#include <klib-macros.h>
#include <klib.h> #include <klib.h>
#include <klib-macros.h>
#if !defined(__ISA_NATIVE__) || defined(__NATIVE_USE_KLIB__) #if !defined(__ISA_NATIVE__) || defined(__NATIVE_USE_KLIB__)
static unsigned long int next = 1; static unsigned long int next = 1;
@ -8,21 +8,23 @@ static unsigned long int next = 1;
int rand(void) { int rand(void) {
// RAND_MAX assumed to be 32767 // RAND_MAX assumed to be 32767
next = next * 1103515245 + 12345; next = next * 1103515245 + 12345;
return (unsigned int)(next / 65536) % 32768; return (unsigned int)(next/65536) % 32768;
} }
void srand(unsigned int seed) { next = seed; } void srand(unsigned int seed) {
next = seed;
}
int abs(int x) { return (x < 0 ? -x : x); } int abs(int x) {
return (x < 0 ? -x : x);
}
int atoi(const char *nptr) { int atoi(const char* nptr) {
int x = 0; int x = 0;
while (*nptr == ' ') { while (*nptr == ' ') { nptr ++; }
nptr++;
}
while (*nptr >= '0' && *nptr <= '9') { while (*nptr >= '0' && *nptr <= '9') {
x = x * 10 + *nptr - '0'; x = x * 10 + *nptr - '0';
nptr++; nptr ++;
} }
return x; return x;
} }
@ -31,19 +33,13 @@ void *malloc(size_t size) {
// On native, malloc() will be called during initializaion of C runtime. // On native, malloc() will be called during initializaion of C runtime.
// Therefore do not call panic() here, else it will yield a dead recursion: // Therefore do not call panic() here, else it will yield a dead recursion:
// panic() -> putchar() -> (glibc) -> malloc() -> panic() // panic() -> putchar() -> (glibc) -> malloc() -> panic()
static void *addr = NULL; #if !(defined(__ISA_NATIVE__) && defined(__NATIVE_USE_KLIB__))
void *ret = NULL; panic("Not implemented");
if (addr == 0) { #endif
addr = heap.start; return NULL;
ret = addr;
} else {
panic_on(addr + size > heap.end, "Memory space not enough");
ret = addr;
addr += size;
}
return ret;
} }
void free(void *ptr) {} void free(void *ptr) {
}
#endif #endif

View file

@ -1,5 +1,5 @@
#include <klib-macros.h>
#include <klib.h> #include <klib.h>
#include <klib-macros.h>
#include <stdint.h> #include <stdint.h>
#if !defined(__ISA_NATIVE__) || defined(__NATIVE_USE_KLIB__) #if !defined(__ISA_NATIVE__) || defined(__NATIVE_USE_KLIB__)
@ -7,15 +7,14 @@
size_t strlen(const char *s) { size_t strlen(const char *s) {
const char *p = s; const char *p = s;
size_t len = 0; size_t len = 0;
while (*(p++) != '\0') while(*(p++) != '\0') len++;
len++;
return len; return len;
} }
char *strcpy(char *dst, const char *src) { char *strcpy(char *dst, const char *src) {
char *p_dst = dst; char *p_dst = dst;
const char *p_src = src; const char *p_src = src;
for (; *p_src != '\0'; p_src++, p_dst++) { for(; *p_src != '\0'; p_src++, p_dst++) {
*p_dst = *p_src; *p_dst = *p_src;
} }
*p_dst = '\0'; *p_dst = '\0';
@ -24,10 +23,10 @@ char *strcpy(char *dst, const char *src) {
char *strncpy(char *dst, const char *src, size_t n) { char *strncpy(char *dst, const char *src, size_t n) {
int i = 0; int i = 0;
for (; i < n && src[i] != '\0'; i++) { for(; i < n && src[i] != '\0'; i++) {
dst[i] = src[i]; dst[i] = src[i];
} }
for (; i < n; i++) { for(; i < n; i++) {
dst[i] = '\0'; dst[i] = '\0';
} }
return dst; return dst;
@ -36,9 +35,8 @@ char *strncpy(char *dst, const char *src, size_t n) {
char *strcat(char *dst, const char *src) { char *strcat(char *dst, const char *src) {
char *p_dst = dst; char *p_dst = dst;
const char *p_src = src; const char *p_src = src;
while (*p_dst != '\0') while(*p_dst != '\0') p_dst++;
p_dst++; for(; *p_src != '\0'; p_src++, p_dst++) {
for (; *p_src != '\0'; p_src++, p_dst++) {
*p_dst = *p_src; *p_dst = *p_src;
} }
*p_dst = '\0'; *p_dst = '\0';
@ -47,8 +45,8 @@ char *strcat(char *dst, const char *src) {
int strcmp(const char *s1, const char *s2) { int strcmp(const char *s1, const char *s2) {
const char *p_s1 = s1, *p_s2 = s2; const char *p_s1 = s1, *p_s2 = s2;
for (; *p_s1 == *p_s2; p_s1++, p_s2++) { for(; *p_s1 == *p_s2; p_s1++, p_s2++) {
if (*p_s1 == '\0' || *p_s2 == '\0') { if(*p_s1 == '\0' || *p_s2 == '\0') {
break; break;
} }
} }
@ -58,8 +56,8 @@ int strcmp(const char *s1, const char *s2) {
int strncmp(const char *s1, const char *s2, size_t n) { int strncmp(const char *s1, const char *s2, size_t n) {
const char *p_s1 = s1, *p_s2 = s2; const char *p_s1 = s1, *p_s2 = s2;
int i = 0; int i = 0;
for (i = 0; i < n - 1; i++) { for(i = 0; i < n - 1; i++) {
if (s1[i] == '\0' || s2[i] == '\0') if(s1[i] == '\0' || s2[i] == '\0')
break; break;
} }
return s1[i] - s2[i]; return s1[i] - s2[i];
@ -67,35 +65,33 @@ int strncmp(const char *s1, const char *s2, size_t n) {
void *memset(void *s, int c, size_t n) { void *memset(void *s, int c, size_t n) {
uint8_t *p = s; uint8_t *p = s;
for (int i = 0; i < n; i++) { for(int i = 0; i < n; i++) {
p[i] = c; p[i] = c;
} }
return s; return s;
} }
void *memmove(void *dst, const void *src, size_t n) { void *memmove(void *dst, const void *src, size_t n) {
if (src + n > dst && src < dst) { if (src + n > dst && src < dst) {
size_t len = dst - src; size_t len = dst - src;
void *p_dst = (void *)src + n; void *p_dst = (void *)src + n;
const void *p_src = src + n - len; const void *p_src = src + n - len;
while (p_dst >= dst) { while(p_dst >= dst) {
memcpy(p_dst, p_src, len); memcpy(p_dst, p_src, len);
p_src -= len; p_src -= len;
p_dst -= len; p_dst -= len;
} }
if (n % len) if(n % len) memcpy(dst, src, n % len);
memcpy(dst, src, n % len);
} else if (dst < src && dst + n > src) { } else if (dst < src && dst + n > src) {
size_t len = src - dst; size_t len = src - dst;
void *p_dst = dst; void *p_dst = dst;
const void *p_src = src; const void *p_src = src;
while (p_src < src + n) { while(p_src < src + n) {
memcpy(p_dst, p_src, len); memcpy(p_dst, p_src, len);
p_src += len; p_src += len;
p_dst += len; p_dst += len;
} }
if (n % len) if(n % len) memcpy(p_dst, p_src, n % len);
memcpy(p_dst, p_src, n % len);
} else { } else {
memcpy(dst, src, n); memcpy(dst, src, n);
} }
@ -104,7 +100,7 @@ void *memmove(void *dst, const void *src, size_t n) {
} }
void *memcpy(void *out, const void *in, size_t n) { void *memcpy(void *out, const void *in, size_t n) {
for (size_t i = 0; i < n; i++) { for (size_t i = 0 ; i < n ; i++) {
*(uint8_t *)(out + i) = *(uint8_t *)(in + i); *(uint8_t *)(out + i) = *(uint8_t *)(in + i);
} }
return out; return out;
@ -113,10 +109,9 @@ void *memcpy(void *out, const void *in, size_t n) {
int memcmp(const void *s1, const void *s2, size_t n) { int memcmp(const void *s1, const void *s2, size_t n) {
const uint8_t *p1 = s1, *p2 = s2; const uint8_t *p1 = s1, *p2 = s2;
for (int i = 0; i < n; i++) { for (int i = 0; i < n; i++) {
if (*p1 != *p2) if(*p1 != *p2)
return p1 - p2; return p1 - p2;
p1++; p1++; p2++;
p2++;
} }
return 0; return 0;
} }

View file

@ -1,11 +1,17 @@
set(TEST_SOURCES stdio string) set(TEST_SOURCES
stdio
string
)
foreach(TEST IN LISTS TEST_SOURCES) foreach(TEST IN LISTS TEST_SOURCES)
# TODO: Run tests in other configurations
if(__PLATFORM_NATIVE__)
add_executable(${TEST} ${TEST}.c) add_executable(${TEST} ${TEST}.c)
target_link_libraries(${TEST} PRIVATE am_interface klib_interface klib) target_link_libraries(${TEST} am-${ARCH} klib m)
target_link_libraries(${TEST} PRIVATE am-native) target_include_directories(${TEST}
add_test(NAME ${TEST} COMMAND ${TEST}) PRIVATE $<TARGET_PROPERTY:am_interface,INTERFACE_INCLUDE_DIRECTORIES>
endif() PRIVATE $<TARGET_PROPERTY:klib_interface,INTERFACE_INCLUDE_DIRECTORIES>
)
# TODO: Run tests in other configurations
if(__PLATFORM_NATIVE__)
add_test(NAME ${TEST} COMMAND ${TEST})
endif()
endforeach() endforeach()

Binary file not shown.

1
am-kernels Submodule

@ -0,0 +1 @@
Subproject commit 2f559823a63cf6909d5a9e32dee47d6891caf553

View file

@ -1,112 +1,5 @@
{ {
"nodes": { "nodes": {
"am-kernels": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs",
"pre-commit-hooks": "pre-commit-hooks",
"ysyx-workbench": "ysyx-workbench"
},
"locked": {
"lastModified": 1723617032,
"narHash": "sha256-oL5Vx933Jhn+T9jn67wFbh8vy7w8OJNCn4DOOlX/r0U=",
"ref": "dev",
"rev": "3ee527c3de481e38767fffbd9e16bf48359fc638",
"revCount": 78,
"type": "git",
"url": "https://git.xinyang.life/xin/am-kernels.git"
},
"original": {
"ref": "dev",
"type": "git",
"url": "https://git.xinyang.life/xin/am-kernels.git"
}
},
"diffu": {
"inputs": {
"flake-utils": "flake-utils_5",
"nixpkgs": "nixpkgs_2",
"nur-xin": "nur-xin_2",
"pre-commit-hooks": "pre-commit-hooks_3"
},
"locked": {
"lastModified": 1723627842,
"narHash": "sha256-+Ovf1e5ESap4sGMsH945SkZLhyYUxGE7shKVl3Ue1CQ=",
"ref": "refs/heads/master",
"rev": "7b3881a9712bcb7bfea90614a44888ae5df6e849",
"revCount": 17,
"type": "git",
"url": "https://git.xinyang.life/xin/diffu.git"
},
"original": {
"type": "git",
"url": "https://git.xinyang.life/xin/diffu.git"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems"
@ -125,220 +18,6 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1709126324,
"narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "d465f4819400de7c8d874d50b982301f28a84605",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"inputs": {
"systems": "systems_4"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_5": {
"inputs": {
"systems": "systems_5"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_6": {
"inputs": {
"systems": "systems_6"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_7": {
"inputs": {
"systems": "systems_7"
},
"locked": {
"lastModified": 1709126324,
"narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "d465f4819400de7c8d874d50b982301f28a84605",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_8": {
"inputs": {
"systems": "systems_8"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"am-kernels",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gitignore_2": {
"inputs": {
"nixpkgs": [
"am-kernels",
"ysyx-workbench",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gitignore_3": {
"inputs": {
"nixpkgs": [
"diffu",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gitignore_4": {
"inputs": {
"nixpkgs": [
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1709237383, "lastModified": 1709237383,
@ -355,306 +34,10 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-circt162": {
"locked": {
"lastModified": 1705645507,
"narHash": "sha256-tX3vipIAmNDBA8WNWG4oY4KyTfnm2YieTHO2BhG8ISA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7995cae3ad60e3d6931283d650d7f43d31aaa5c7",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7995cae3ad60e3d6931283d650d7f43d31aaa5c7",
"type": "github"
}
},
"nixpkgs-circt162_2": {
"locked": {
"lastModified": 1705645507,
"narHash": "sha256-tX3vipIAmNDBA8WNWG4oY4KyTfnm2YieTHO2BhG8ISA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7995cae3ad60e3d6931283d650d7f43d31aaa5c7",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7995cae3ad60e3d6931283d650d7f43d31aaa5c7",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1710695816,
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "614b4613980a522ba49f0d194531beddbb7220d3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1710695816,
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "614b4613980a522ba49f0d194531beddbb7220d3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_3": {
"locked": {
"lastModified": 1710695816,
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "614b4613980a522ba49f0d194531beddbb7220d3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_4": {
"locked": {
"lastModified": 1710695816,
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "614b4613980a522ba49f0d194531beddbb7220d3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1711703276,
"narHash": "sha256-iMUFArF0WCatKK6RzfUJknjem0H9m4KgorO/p3Dopkk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d8fe5e6c92d0d190646fb9f1056741a229980089",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1709237383,
"narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nur-xin": {
"inputs": {
"nixpkgs": [
"am-kernels",
"ysyx-workbench",
"nixpkgs"
]
},
"locked": {
"lastModified": 1721891452,
"narHash": "sha256-2c9nDuXXARzoRXE67lte5kKBeFb1XmTNsvdiIbRUEgE=",
"ref": "refs/heads/master",
"rev": "de8ad578fc4fe527772cec23a7f660bde14c8570",
"revCount": 152,
"type": "git",
"url": "https://git.xinyang.life/xin/nur.git"
},
"original": {
"type": "git",
"url": "https://git.xinyang.life/xin/nur.git"
}
},
"nur-xin_2": {
"inputs": {
"nixpkgs": [
"diffu",
"nixpkgs"
]
},
"locked": {
"lastModified": 1721891452,
"narHash": "sha256-2c9nDuXXARzoRXE67lte5kKBeFb1XmTNsvdiIbRUEgE=",
"ref": "refs/heads/master",
"rev": "de8ad578fc4fe527772cec23a7f660bde14c8570",
"revCount": 152,
"type": "git",
"url": "https://git.xinyang.life/xin/nur.git"
},
"original": {
"type": "git",
"url": "https://git.xinyang.life/xin/nur.git"
}
},
"nur-xin_3": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1721891452,
"narHash": "sha256-2c9nDuXXARzoRXE67lte5kKBeFb1XmTNsvdiIbRUEgE=",
"ref": "refs/heads/master",
"rev": "de8ad578fc4fe527772cec23a7f660bde14c8570",
"revCount": 152,
"type": "git",
"url": "https://git.xinyang.life/xin/nur.git"
},
"original": {
"type": "git",
"url": "https://git.xinyang.life/xin/nur.git"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils_2",
"gitignore": "gitignore",
"nixpkgs": [
"am-kernels",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1712055707,
"narHash": "sha256-4XLvuSIDZJGS17xEwSrNuJLL7UjDYKGJSbK1WWX2AK8=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "e35aed5fda3cc79f88ed7f1795021e559582093a",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"pre-commit-hooks_2": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-utils": "flake-utils_4",
"gitignore": "gitignore_2",
"nixpkgs": [
"am-kernels",
"ysyx-workbench",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable_2"
},
"locked": {
"lastModified": 1712055707,
"narHash": "sha256-4XLvuSIDZJGS17xEwSrNuJLL7UjDYKGJSbK1WWX2AK8=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "e35aed5fda3cc79f88ed7f1795021e559582093a",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"pre-commit-hooks_3": {
"inputs": {
"flake-compat": "flake-compat_3",
"flake-utils": "flake-utils_6",
"gitignore": "gitignore_3",
"nixpkgs": [
"diffu",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable_3"
},
"locked": {
"lastModified": 1712055707,
"narHash": "sha256-4XLvuSIDZJGS17xEwSrNuJLL7UjDYKGJSbK1WWX2AK8=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "e35aed5fda3cc79f88ed7f1795021e559582093a",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"pre-commit-hooks_4": {
"inputs": {
"flake-compat": "flake-compat_4",
"flake-utils": "flake-utils_8",
"gitignore": "gitignore_4",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable_4"
},
"locked": {
"lastModified": 1712055707,
"narHash": "sha256-4XLvuSIDZJGS17xEwSrNuJLL7UjDYKGJSbK1WWX2AK8=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "e35aed5fda3cc79f88ed7f1795021e559582093a",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"am-kernels": "am-kernels", "flake-utils": "flake-utils",
"diffu": "diffu", "nixpkgs": "nixpkgs"
"flake-utils": "flake-utils_7",
"nixpkgs": "nixpkgs_3",
"nixpkgs-circt162": "nixpkgs-circt162_2",
"nur-xin": "nur-xin_3",
"pre-commit-hooks": "pre-commit-hooks_4"
} }
}, },
"systems": { "systems": {
@ -671,136 +54,6 @@
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_5": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_6": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_7": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_8": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"ysyx-workbench": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": [
"am-kernels",
"nixpkgs"
],
"nixpkgs-circt162": "nixpkgs-circt162",
"nur-xin": "nur-xin",
"pre-commit-hooks": "pre-commit-hooks_2"
},
"locked": {
"lastModified": 1723551098,
"narHash": "sha256-/AnVxufgQoAuvNBSKm0BG+tTS++/HuaNoW+loroSQig=",
"ref": "refs/heads/master",
"rev": "8ee1551dc2857091fca6456c1367aab7090899fe",
"revCount": 119,
"type": "git",
"url": "https://git.xinyang.life/xin/ysyx-workbench"
},
"original": {
"type": "git",
"url": "https://git.xinyang.life/xin/ysyx-workbench"
}
} }
}, },
"root": "root", "root": "root",

139
flake.nix
View file

@ -1,35 +1,14 @@
{ {
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-circt162.url = "github:NixOS/nixpkgs/7995cae3ad60e3d6931283d650d7f43d31aaa5c7";
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
pre-commit-hooks = {
url = "github:cachix/pre-commit-hooks.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nur-xin = {
url = "git+https://git.xinyang.life/xin/nur.git";
inputs.nixpkgs.follows = "nixpkgs";
};
diffu.url = "git+https://git.xinyang.life/xin/diffu.git";
am-kernels.url = "git+https://git.xinyang.life/xin/am-kernels.git?ref=dev";
}; };
outputs = { self, flake-utils, nixpkgs, nixpkgs-circt162, pre-commit-hooks, nur-xin, diffu, am-kernels }@inputs: outputs = { self, ... }@inputs: with inputs;
flake-utils.lib.eachDefaultSystem (system: flake-utils.lib.eachDefaultSystem (system:
let let
pkgs = import nixpkgs { pkgs = nixpkgs.legacyPackages.${system};
inherit system; crossPkgs = import nixpkgs {
config.allowUnfree = true;
overlays = [
(self: super: {
nvboard = nur-xin.legacyPackages.${system}.nvboard;
mini-gdbstub = nur-xin.legacyPackages.${system}.mini-gdbstub;
})
];
};
rv32CrossConfig = import nixpkgs {
localSystem = system; localSystem = system;
crossSystem = { crossSystem = {
config = "riscv32-none-elf"; config = "riscv32-none-elf";
@ -41,107 +20,39 @@
}; };
in in
{ {
checks = { packages.nemu = pkgs.callPackage ./nemu { am-kernels = self.packages.${system}.am-kernels; };
pre-commit-check = pre-commit-hooks.lib.${system}.run { packages.abstract-machine = crossPkgs.callPackage ./abstract-machine { isa = "riscv"; platform = "nemu"; };
src = ./.;
hooks = {
trim-trailing-whitespace.enable = true;
end-of-file-fixer.enable = true;
cmake-format.enable = true;
clang-format = {
enable = true;
types_or = pkgs.lib.mkForce [ "c" "c++" ];
};
scalafmt = {
enable = true;
package = pkgs.scalafmt;
name = "Scalafmt";
types = [ "scala" ];
entry = "${pkgs.scalafmt}/bin/scalafmt --non-interactive";
};
};
};
};
packages = rec { packages.am-kernels = crossPkgs.stdenv.mkDerivation rec {
abstract-machine = pkgs.callPackage ./abstract-machine { isa = "native"; }; pname = "am-kernels-cmake";
nemu = pkgs.callPackage ./nemu { }; version = "2024.02.18";
nemu-lib = pkgs.callPackage ./nemu { };
rv32Cross = rec { src = ./am-kernels;
abstract-machine = rv32CrossConfig.callPackage ./abstract-machine { isa = "riscv"; platform = [ "nemu" "npc" ]; };
}; nativeBuildInputs = [
pkgs.cmake
];
cmakeFlags = [
(pkgs.lib.cmakeFeature "ISA" "riscv")
(pkgs.lib.cmakeFeature "PLATFORM" "nemu")
(pkgs.lib.cmakeFeature "CMAKE_INSTALL_DATADIR" "share")
];
buildInputs = [
# SDL2
self.packages.${system}.abstract-machine
];
}; };
devShells.nemu = pkgs.mkShell { devShells.nemu = pkgs.mkShell {
packages = with pkgs; [ packages = with pkgs; [
clang-tools clang-tools
gef gdb
SDL2
gnumake
pkg-config
flex
bison
dtc
readline
libllvm
mini-gdbstub
]; ];
inputsFrom = [ inputsFrom = [
self.packages.${system}.nemu self.packages.${system}.nemu
]; ];
NEMU_HOME = "/home/xin/repo/ysyx-workbench/nemu";
# NEMU_IMAGES_PATH = self.packages.${system}.rv32Cross.am-kernels-nemu + "/share/am-kernels";
};
devShells.npc = pkgs.mkShell.override { stdenv = pkgs.ccacheStdenv; } {
inherit (self.checks.${system}.pre-commit-check) shellHook;
CHISEL_FIRTOOL_PATH = "${nixpkgs-circt162.legacyPackages.${system}.circt}/bin";
# NPC_IMAGES_PATH = "${self.packages.${system}.rv32Cross.am-kernels-npc}/share/am-kernels";
packages = with pkgs; [
clang-tools
cmake
coursier
espresso
bloop
gdb
jre
gtkwave
];
nativeBuildInputs = with pkgs; [
cmake
ninja
sbt
nvboard
nixpkgs-circt162.legacyPackages.${system}.circt
yosys
cli11
flex
bison
verilator
];
buildInputs = with pkgs; [
spdlog
nvboard
openssl
libllvm
libxml2
readline
mini-gdbstub
] ++ self.checks.${system}.pre-commit-check.enabledPackages;
};
devShells.difftest = pkgs.mkShell {
packages = [
diffu.packages.${system}.default
am-kernels.packages.${system}.rv32Cross.am-kernels-npc
self.packages.${system}.nemu-lib
];
}; };
} }
); );

3
nemu/.clang-format Normal file
View file

@ -0,0 +1,3 @@
---
Language: Cpp
BasedOnStyle: LLVM

1
nemu/.gitignore vendored
View file

@ -9,7 +9,6 @@ build/
.envrc .envrc
.metals/ .metals/
.vscode/ .vscode/
.zed/
compile_commands.json compile_commands.json
### C ### ### C ###

View file

@ -126,26 +126,6 @@ endmenu
menu "Testing and Debugging" menu "Testing and Debugging"
choice
prompt "Choose log level"
default LOG_TRACE
config LOG_TRACE
bool "trace"
config LOG_INFO
bool "info"
config LOG_WARNING
bool "warning"
config LOG_ERROR
bool "error"
endchoice
config LOG_LEVEL
int
default 1 if LOG_ERROR
default 2 if LOG_WARNING
default 3 if LOG_INFO
default 4 if LOG_TRACE
default 0
config TRACE config TRACE
bool "Enable tracer" bool "Enable tracer"
@ -180,7 +160,7 @@ config ITRACE_BUFFER
default 10 default 10
config MTRACE config MTRACE
depends on TRACE && LOG_TRACE depends on TRACE && TARGET_NATIVE_ELF && ENGINE_INTERPRETER
bool "Enable memory tracing" bool "Enable memory tracing"
default n default n
@ -198,7 +178,7 @@ config MTRACE_RANGE_MAX
default 10 default 10
config FTRACE config FTRACE
depends on TRACE && TARGET_NATIVE_ELF && ENGINE_INTERPRETER && LOG_TRACE depends on TRACE && TARGET_NATIVE_ELF && ENGINE_INTERPRETER
bool "Enable function tracing" bool "Enable function tracing"
default n default n

View file

@ -1,87 +0,0 @@
#
# Automatically generated file; DO NOT EDIT.
# NEMU Configuration Menu
#
# CONFIG_ISA_x86 is not set
# CONFIG_ISA_mips32 is not set
CONFIG_ISA_riscv=y
# CONFIG_ISA_loongarch32r is not set
CONFIG_ISA="riscv32"
#
# ISA-dependent Options for riscv
#
# CONFIG_RV64 is not set
# CONFIG_RVE is not set
# end of ISA-dependent Options for riscv
CONFIG_ENGINE_INTERPRETER=y
CONFIG_ENGINE="interpreter"
CONFIG_MODE_SYSTEM=y
# CONFIG_TARGET_NATIVE_ELF is not set
CONFIG_TARGET_SHARE=y
# CONFIG_TARGET_AM is not set
#
# Build Options
#
CONFIG_CC_GCC=y
# CONFIG_CC_GPP is not set
# CONFIG_CC_CLANG is not set
CONFIG_CC="gcc"
# CONFIG_CC_O0 is not set
# CONFIG_CC_O1 is not set
CONFIG_CC_O2=y
# CONFIG_CC_O3 is not set
CONFIG_CC_OPT="-O2"
# CONFIG_CC_LTO is not set
# CONFIG_CC_DEBUG is not set
# CONFIG_CC_ASAN is not set
# end of Build Options
#
# Testing and Debugging
#
CONFIG_LOG_TRACE=y
# CONFIG_LOG_INFO is not set
# CONFIG_LOG_WARNING is not set
# CONFIG_LOG_ERROR is not set
CONFIG_LOG_LEVEL=4
CONFIG_TRACE=y
CONFIG_TRACE_START=0
CONFIG_TRACE_END=10000
# CONFIG_MTRACE is not set
CONFIG_DIFFTEST_REF_PATH="none"
CONFIG_DIFFTEST_REF_NAME="none"
# end of Testing and Debugging
#
# Memory Configuration
#
CONFIG_MBASE=0x80000000
CONFIG_MSIZE=0x8000000
CONFIG_PC_RESET_OFFSET=0
# CONFIG_PMEM_MALLOC is not set
CONFIG_PMEM_GARRAY=y
CONFIG_MEM_RANDOM=y
# end of Memory Configuration
CONFIG_DEVICE=y
CONFIG_HAS_SERIAL=y
CONFIG_SERIAL_MMIO=0x10000000
# CONFIG_SERIAL_INPUT_FIFO is not set
CONFIG_HAS_TIMER=y
CONFIG_RTC_MMIO=0x10001000
# CONFIG_HAS_KEYBOARD is not set
# CONFIG_HAS_VGA is not set
# CONFIG_HAS_AUDIO is not set
# CONFIG_HAS_DISK is not set
# CONFIG_HAS_SDCARD is not set
#
# Miscellaneous
#
CONFIG_TIMER_GETTIMEOFDAY=y
# CONFIG_TIMER_CLOCK_GETTIME is not set
CONFIG_RT_CHECK=y
# end of Miscellaneous

View file

@ -1,72 +0,0 @@
#
# Automatically generated file; DO NOT EDIT.
# NEMU Configuration Menu
#
# CONFIG_ISA_x86 is not set
# CONFIG_ISA_mips32 is not set
CONFIG_ISA_riscv=y
# CONFIG_ISA_loongarch32r is not set
CONFIG_ISA="riscv32"
#
# ISA-dependent Options for riscv
#
# CONFIG_RV64 is not set
# CONFIG_RVE is not set
# end of ISA-dependent Options for riscv
CONFIG_ENGINE_INTERPRETER=y
CONFIG_ENGINE="interpreter"
CONFIG_MODE_SYSTEM=y
# CONFIG_TARGET_NATIVE_ELF is not set
CONFIG_TARGET_SHARE=y
# CONFIG_TARGET_AM is not set
#
# Build Options
#
CONFIG_CC_GCC=y
# CONFIG_CC_GPP is not set
# CONFIG_CC_CLANG is not set
CONFIG_CC="gcc"
# CONFIG_CC_O0 is not set
# CONFIG_CC_O1 is not set
CONFIG_CC_O2=y
# CONFIG_CC_O3 is not set
CONFIG_CC_OPT="-O2"
CONFIG_CC_LTO=y
CONFIG_CC_DEBUG=y
# CONFIG_CC_ASAN is not set
# end of Build Options
#
# Testing and Debugging
#
CONFIG_LOG_TRACE=y
# CONFIG_LOG_INFO is not set
# CONFIG_LOG_WARNING is not set
# CONFIG_LOG_ERROR is not set
CONFIG_LOG_LEVEL=4
# CONFIG_TRACE is not set
CONFIG_DIFFTEST_REF_PATH="none"
CONFIG_DIFFTEST_REF_NAME="none"
# end of Testing and Debugging
#
# Memory Configuration
#
CONFIG_MBASE=0x80000000
CONFIG_MSIZE=0x8000000
CONFIG_PC_RESET_OFFSET=0
# CONFIG_PMEM_MALLOC is not set
CONFIG_PMEM_GARRAY=y
CONFIG_MEM_RANDOM=y
# end of Memory Configuration
#
# Miscellaneous
#
CONFIG_TIMER_GETTIMEOFDAY=y
# CONFIG_TIMER_CLOCK_GETTIME is not set
CONFIG_RT_CHECK=y
# end of Miscellaneous

View file

@ -1,26 +1,17 @@
{ stdenv { pkgs,
, lib lib,
, gnumake stdenv,
, pkg-config am-kernels,
, bison dtc
, flex
, dtc
, check
, mini-gdbstub
, readline
, libllvm
, SDL2
, am-kernels ? ""
, defconfig ? "alldefconfig"
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "nemu"; pname = "nemu";
version = "2024-08-15"; version = "2024-03-02";
src = ./.; src = ./.;
nativeBuildInputs = [ nativeBuildInputs = with pkgs; [
gnumake gnumake
pkg-config pkg-config
flex flex
@ -28,44 +19,45 @@ stdenv.mkDerivation rec {
dtc dtc
]; ];
buildInputs = [ buildInputs = with pkgs; [
SDL2
readline readline
libllvm libllvm
mini-gdbstub
]; ];
checkInputs = [ checkInputs = [
check pkgs.check
am-kernels am-kernels
]; ];
configurePhase = '' configurePhase = ''
export NEMU_HOME=$(pwd) export NEMU_HOME=$(pwd)
make ${defconfig} make alldefconfig
''; '';
buildPhase = '' buildPhase = ''
make make
''; '';
doCheck = (am-kernels != ""); doCheck = true;
checkPhase = '' checkPhase = ''
export NEMU_IMAGES_PATH=${am-kernels}/share/am-kernels export IMAGES_PATH=${am-kernels}/share/binary
make test make test
''; '';
installPhase = '' installPhase = ''
if [ -d "./lib" ] && [ "$(ls -A ./lib)" ]; then mkdir -p $out/bin
mkdir -p "$out/lib"
fi
if [ -d "./bin" ] && [ "$(ls -A ./bin)" ]; then
mkdir -p $out/bin
fi
make PREFIX=$out install make PREFIX=$out install
''; '';
shellHook = '' shellHook = ''
export NEMU_HOME=$(pwd) export NEMU_HOME=$(pwd)
export IMAGES_PATH=${am-kernels}/share/binary
''; '';
meta = with lib; {
description = "NJU EMUlator, a full system x86/mips32/riscv32/riscv64 emulator for teaching";
homepage = "https://github.com/NJU-ProjectN/nemu.git";
license = with licenses; [ ];
maintainers = with maintainers; [ ];
};
} }

View file

@ -1,9 +0,0 @@
#ifndef __NEMU_CONFIG_H__
#define __NEMU_CONFIG_H__
extern char *log_file = NULL;
extern char *elf_file = NULL;
extern char *img_file = NULL;
extern bool enable_gdbstub = false;
#endif // __NEMU_CONFIG_H__

View file

@ -17,18 +17,8 @@
#define __CPU_CPU_H__ #define __CPU_CPU_H__
#include <common.h> #include <common.h>
#include <stddef.h>
#include <gdbstub.h>
#include <stddef.h>
typedef struct {
size_t addr;
bp_type_t type;
} breakpoint_t;
void cpu_exec(uint64_t n); void cpu_exec(uint64_t n);
breakpoint_t *cpu_exec_with_bp(uint64_t n, breakpoint_t *bp, size_t len);
void set_nemu_state(int state, vaddr_t pc, int halt_ret); void set_nemu_state(int state, vaddr_t pc, int halt_ret);
void invalid_inst(vaddr_t thispc); void invalid_inst(vaddr_t thispc);

View file

@ -16,62 +16,39 @@
#ifndef __CPU_DECODE_H__ #ifndef __CPU_DECODE_H__
#define __CPU_DECODE_H__ #define __CPU_DECODE_H__
#include "types.h"
#include <isa.h> #include <isa.h>
typedef enum { INST_NORMAL, INST_MEM_WRITE, INST_MEM_READ } inst_type_t;
typedef union {
paddr_t rmem;
paddr_t wmem;
} inst_type_op;
typedef struct Decode { typedef struct Decode {
vaddr_t pc; vaddr_t pc;
vaddr_t snpc; // static next pc vaddr_t snpc; // static next pc
vaddr_t dnpc; // dynamic next pc vaddr_t dnpc; // dynamic next pc
inst_type_t inst_type;
inst_type_op inst_value;
ISADecodeInfo isa; ISADecodeInfo isa;
} Decode; } Decode;
// --- pattern matching mechanism --- // --- pattern matching mechanism ---
__attribute__((always_inline)) static inline void __attribute__((always_inline))
pattern_decode(const char *str, int len, uint64_t *key, uint64_t *mask, static inline void pattern_decode(const char *str, int len,
uint64_t *shift) { uint64_t *key, uint64_t *mask, uint64_t *shift) {
uint64_t __key = 0, __mask = 0, __shift = 0; uint64_t __key = 0, __mask = 0, __shift = 0;
#define macro(i) \ #define macro(i) \
if ((i) >= len) \ if ((i) >= len) goto finish; \
goto finish; \ else { \
else { \ char c = str[i]; \
char c = str[i]; \ if (c != ' ') { \
if (c != ' ') { \ Assert(c == '0' || c == '1' || c == '?', \
Assert(c == '0' || c == '1' || c == '?', \ "invalid character '%c' in pattern string", c); \
"invalid character '%c' in pattern string", c); \ __key = (__key << 1) | (c == '1' ? 1 : 0); \
__key = (__key << 1) | (c == '1' ? 1 : 0); \ __mask = (__mask << 1) | (c == '?' ? 0 : 1); \
__mask = (__mask << 1) | (c == '?' ? 0 : 1); \ __shift = (c == '?' ? __shift + 1 : 0); \
__shift = (c == '?' ? __shift + 1 : 0); \ } \
} \
} }
#define macro2(i) \ #define macro2(i) macro(i); macro((i) + 1)
macro(i); \ #define macro4(i) macro2(i); macro2((i) + 2)
macro((i) + 1) #define macro8(i) macro4(i); macro4((i) + 4)
#define macro4(i) \ #define macro16(i) macro8(i); macro8((i) + 8)
macro2(i); \ #define macro32(i) macro16(i); macro16((i) + 16)
macro2((i) + 2) #define macro64(i) macro32(i); macro32((i) + 32)
#define macro8(i) \
macro4(i); \
macro4((i) + 4)
#define macro16(i) \
macro8(i); \
macro8((i) + 8)
#define macro32(i) \
macro16(i); \
macro16((i) + 16)
#define macro64(i) \
macro32(i); \
macro32((i) + 32)
macro64(0); macro64(0);
panic("pattern too long"); panic("pattern too long");
#undef macro #undef macro
@ -81,24 +58,21 @@ finish:
*shift = __shift; *shift = __shift;
} }
__attribute__((always_inline)) static inline void __attribute__((always_inline))
pattern_decode_hex(const char *str, int len, uint64_t *key, uint64_t *mask, static inline void pattern_decode_hex(const char *str, int len,
uint64_t *shift) { uint64_t *key, uint64_t *mask, uint64_t *shift) {
uint64_t __key = 0, __mask = 0, __shift = 0; uint64_t __key = 0, __mask = 0, __shift = 0;
#define macro(i) \ #define macro(i) \
if ((i) >= len) \ if ((i) >= len) goto finish; \
goto finish; \ else { \
else { \ char c = str[i]; \
char c = str[i]; \ if (c != ' ') { \
if (c != ' ') { \ Assert((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || c == '?', \
Assert((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || c == '?', \ "invalid character '%c' in pattern string", c); \
"invalid character '%c' in pattern string", c); \ __key = (__key << 4) | (c == '?' ? 0 : (c >= '0' && c <= '9') ? c - '0' : c - 'a' + 10); \
__key = (__key << 4) | (c == '?' ? 0 \ __mask = (__mask << 4) | (c == '?' ? 0 : 0xf); \
: (c >= '0' && c <= '9') ? c - '0' \ __shift = (c == '?' ? __shift + 4 : 0); \
: c - 'a' + 10); \ } \
__mask = (__mask << 4) | (c == '?' ? 0 : 0xf); \
__shift = (c == '?' ? __shift + 4 : 0); \
} \
} }
macro16(0); macro16(0);
@ -110,22 +84,18 @@ finish:
*shift = __shift; *shift = __shift;
} }
// --- pattern matching wrappers for decode ---
#define INSTPAT(pattern, ...) \
do { \
uint64_t key, mask, shift; \
pattern_decode(pattern, STRLEN(pattern), &key, &mask, &shift); \
if ((((uint64_t)INSTPAT_INST(s) >> shift) & mask) == key) { \
INSTPAT_MATCH(s, ##__VA_ARGS__); \
goto *(__instpat_end); \
} \
} while (0)
#define INSTPAT_START(name) \ // --- pattern matching wrappers for decode ---
{ \ #define INSTPAT(pattern, ...) do { \
const void **__instpat_end = &&concat(__instpat_end_, name); uint64_t key, mask, shift; \
#define INSTPAT_END(name) \ pattern_decode(pattern, STRLEN(pattern), &key, &mask, &shift); \
concat(__instpat_end_, name) :; \ if ((((uint64_t)INSTPAT_INST(s) >> shift) & mask) == key) { \
} INSTPAT_MATCH(s, ##__VA_ARGS__); \
goto *(__instpat_end); \
} \
} while (0)
#define INSTPAT_START(name) { const void ** __instpat_end = &&concat(__instpat_end_, name);
#define INSTPAT_END(name) concat(__instpat_end_, name): ; }
#endif #endif

View file

@ -0,0 +1,53 @@
/***************************************************************************************
* Copyright (c) 2014-2022 Zihao Yu, Nanjing University
*
* NEMU is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*
* See the Mulan PSL v2 for more details.
***************************************************************************************/
#ifndef __CPU_DIFFTEST_H__
#define __CPU_DIFFTEST_H__
#include <common.h>
#include <difftest-def.h>
#ifdef CONFIG_DIFFTEST
void difftest_skip_ref();
void difftest_skip_dut(int nr_ref, int nr_dut);
void difftest_set_patch(void (*fn)(void *arg), void *arg);
void difftest_step(vaddr_t pc, vaddr_t npc);
void difftest_detach();
void difftest_attach();
#else
static inline void difftest_skip_ref() {}
static inline void difftest_skip_dut(int nr_ref, int nr_dut) {}
static inline void difftest_set_patch(void (*fn)(void *arg), void *arg) {}
static inline void difftest_step(vaddr_t pc, vaddr_t npc) {}
static inline void difftest_detach() {}
static inline void difftest_attach() {}
#endif
extern void (*ref_difftest_memcpy)(paddr_t addr, void *buf, size_t n, bool direction);
extern void (*ref_difftest_regcpy)(void *dut, bool direction);
extern void (*ref_difftest_exec)(uint64_t n);
extern void (*ref_difftest_raise_intr)(uint64_t NO);
static inline bool difftest_check_reg(const char *name, vaddr_t pc, word_t ref, word_t dut) {
if (ref != dut) {
Log("%s is different after executing instruction at pc = " FMT_WORD
", right = " FMT_WORD ", wrong = " FMT_WORD ", diff = " FMT_WORD,
name, pc, ref, dut, ref ^ dut);
return false;
}
return true;
}
#endif

View file

@ -16,59 +16,41 @@
#ifndef __DEBUG_H__ #ifndef __DEBUG_H__
#define __DEBUG_H__ #define __DEBUG_H__
#include <macro.h>
#include <stdio.h> #include <stdio.h>
#include <utils.h> #include <utils.h>
#include <macro.h>
IFDEF(CONFIG_ITRACE, void log_itrace_print()); IFDEF(CONFIG_ITRACE, void log_itrace_print());
#if (CONFIG_LOG_LEVEL >= 4) #define Trace(format, ...) \
#define Trace(format, ...) _Log("[TRACE] " format "\n", ##__VA_ARGS__) _Log("[TRACE] " format "\n", ## __VA_ARGS__)
#else
#define Trace(format, ...)
#endif
#if (CONFIG_LOG_LEVEL >= 3) #define Log(format, ...) \
#define Log(format, ...) \ _Log(ANSI_FMT("[INFO] %s:%d %s() ", ANSI_FG_BLUE) format "\n", \
_Log(ANSI_FMT("[INFO] %s:%d %s() ", ANSI_FG_BLUE) format "\n", __FILE__, \ __FILE__, __LINE__, __func__, ## __VA_ARGS__)
__LINE__, __func__, ##__VA_ARGS__)
#else
#define Log(format, ...)
#endif
#if (CONFIG_LOG_LEVEL >= 2) #define Warning(format, ...) \
#define Warning(format, ...) \ _Log(ANSI_FMT("[WARNING] %s:%d %s() ", ANSI_FG_YELLOW) format "\n", \
_Log(ANSI_FMT("[WARNING] %s:%d %s() ", ANSI_FG_YELLOW) format "\n", \ __FILE__, __LINE__, __func__, ## __VA_ARGS__)
__FILE__, __LINE__, __func__, ##__VA_ARGS__)
#else
#define Warning(format, ...)
#endif
#if (CONFIG_LOG_LEVEL >= 1) #define Error(format, ...) \
#define Error(format, ...) \ _Log(ANSI_FMT("[ERROR] %s:%d %s() ", ANSI_FG_RED) format "\n", \
_Log(ANSI_FMT("[ERROR] %s:%d %s() ", ANSI_FG_RED) format "\n", __FILE__, \ __FILE__, __LINE__, __func__, ## __VA_ARGS__)
__LINE__, __func__, ##__VA_ARGS__)
#else
#define Error(format, ...)
#endif
#define Assert(cond, format, ...) \ #define Assert(cond, format, ...) \
do { \ do { \
if (!(cond)) { \ if (!(cond)) { \
MUXDEF( \ MUXDEF(CONFIG_TARGET_AM, printf(ANSI_FMT(format, ANSI_FG_RED) "\n", ## __VA_ARGS__), \
CONFIG_TARGET_AM, \ (fflush(stdout), fprintf(stderr, ANSI_FMT(format, ANSI_FG_RED) "\n", ## __VA_ARGS__))); \
printf(ANSI_FMT(format, ANSI_FG_RED) "\n", ##__VA_ARGS__), \ IFNDEF(CONFIG_TARGET_AM, extern FILE* log_fp; fflush(log_fp)); \
(fflush(stdout), fprintf(stderr, ANSI_FMT(format, ANSI_FG_RED) "\n", \ IFDEF(CONFIG_ITRACE, log_itrace_print()); \
##__VA_ARGS__))); \ extern void assert_fail_msg(); \
IFNDEF(CONFIG_TARGET_AM, extern FILE *log_fp; fflush(log_fp)); \ assert_fail_msg(); \
IFDEF(CONFIG_ITRACE, log_itrace_print()); \ assert(cond); \
extern void assert_fail_msg(); \ } \
assert_fail_msg(); \
assert(cond); \
} \
} while (0) } while (0)
#define panic(format, ...) Assert(0, format, ##__VA_ARGS__) #define panic(format, ...) Assert(0, format, ## __VA_ARGS__)
#define TODO() panic("please implement me") #define TODO() panic("please implement me")

View file

@ -16,12 +16,10 @@
#ifndef __DEVICE_MAP_H__ #ifndef __DEVICE_MAP_H__
#define __DEVICE_MAP_H__ #define __DEVICE_MAP_H__
#include <difftest.h> #include <cpu/difftest.h>
#include <stdbool.h>
#include <types.h>
typedef void (*io_callback_t)(uint32_t, int, bool); typedef void(*io_callback_t)(uint32_t, int, bool);
uint8_t *new_space(int size); uint8_t* new_space(int size);
typedef struct { typedef struct {
const char *name; const char *name;
@ -38,19 +36,19 @@ static inline bool map_inside(IOMap *map, paddr_t addr) {
static inline int find_mapid_by_addr(IOMap *maps, int size, paddr_t addr) { static inline int find_mapid_by_addr(IOMap *maps, int size, paddr_t addr) {
int i; int i;
for (i = 0; i < size; i++) { for (i = 0; i < size; i ++) {
if (map_inside(maps + i, addr)) { if (map_inside(maps + i, addr)) {
nemu_do_difftest = false; difftest_skip_ref();
return i; return i;
} }
} }
return -1; return -1;
} }
void add_pio_map(const char *name, ioaddr_t addr, void *space, uint32_t len, void add_pio_map(const char *name, ioaddr_t addr,
io_callback_t callback); void *space, uint32_t len, io_callback_t callback);
void add_mmio_map(const char *name, paddr_t addr, void *space, uint32_t len, void add_mmio_map(const char *name, paddr_t addr,
io_callback_t callback); void *space, uint32_t len, io_callback_t callback);
word_t map_read(paddr_t addr, int len, IOMap *map); word_t map_read(paddr_t addr, int len, IOMap *map);
void map_write(paddr_t addr, int len, word_t data, IOMap *map); void map_write(paddr_t addr, int len, word_t data, IOMap *map);

View file

@ -0,0 +1,40 @@
/***************************************************************************************
* Copyright (c) 2014-2022 Zihao Yu, Nanjing University
*
* NEMU is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*
* See the Mulan PSL v2 for more details.
***************************************************************************************/
#ifndef __DIFFTEST_DEF_H__
#define __DIFFTEST_DEF_H__
#include <stdint.h>
#include <macro.h>
#include <generated/autoconf.h>
#define __EXPORT __attribute__((visibility("default")))
enum { DIFFTEST_TO_DUT, DIFFTEST_TO_REF };
#if defined(CONFIG_ISA_x86)
# define DIFFTEST_REG_SIZE (sizeof(uint32_t) * 9) // GPRs + pc
#elif defined(CONFIG_ISA_mips32)
# define DIFFTEST_REG_SIZE (sizeof(uint32_t) * 38) // GPRs + status + lo + hi + badvaddr + cause + pc
#elif defined(CONFIG_ISA_riscv)
#define RISCV_GPR_TYPE MUXDEF(CONFIG_RV64, uint64_t, uint32_t)
#define RISCV_GPR_NUM MUXDEF(CONFIG_RVE , 16, 32)
#define DIFFTEST_REG_SIZE (sizeof(RISCV_GPR_TYPE) * (RISCV_GPR_NUM + 1)) // GPRs + pc
#elif defined(CONFIG_ISA_loongarch32r)
# define DIFFTEST_REG_SIZE (sizeof(uint32_t) * 33) // GPRs + pc
#else
# error Unsupport ISA
#endif
#endif

View file

@ -1,8 +0,0 @@
#ifndef __NEMU_DIFFTEST_H__
#define __NEMU_DIFFTEST_H__
#include <stdbool.h>
extern bool nemu_do_difftest;
#endif // __NEMU_DIFFTEST_H__

View file

@ -17,7 +17,6 @@
#define __ISA_H__ #define __ISA_H__
// Located at src/isa/$(GUEST_ISA)/include/isa-def.h // Located at src/isa/$(GUEST_ISA)/include/isa-def.h
#include <gdbstub.h>
#include <isa-def.h> #include <isa-def.h>
// The macro `__GUEST_ISA__` is defined in $(CFLAGS). // The macro `__GUEST_ISA__` is defined in $(CFLAGS).
@ -31,11 +30,8 @@ void init_isa();
// reg // reg
extern CPU_state cpu; extern CPU_state cpu;
extern arch_info_t isa_arch_info;
void isa_reg_display(); void isa_reg_display();
word_t isa_reg_str2val(const char *name, bool *success); word_t isa_reg_str2val(const char *name, bool *success);
int isa_read_reg(void *args, int regno, size_t *reg_value);
int isa_write_reg(void *args, int regno, size_t data);
// exec // exec
struct Decode; struct Decode;

View file

@ -29,7 +29,7 @@
#define ARRLEN(arr) (int)(sizeof(arr) / sizeof(arr[0])) #define ARRLEN(arr) (int)(sizeof(arr) / sizeof(arr[0]))
// macro concatenation // macro concatenation
#define concat_temp(x, y) x##y #define concat_temp(x, y) x ## y
#define concat(x, y) concat_temp(x, y) #define concat(x, y) concat_temp(x, y)
#define concat3(x, y, z) concat(concat(x, y), z) #define concat3(x, y, z) concat(concat(x, y), z)
#define concat4(x, y, z, w) concat3(concat(x, y), z, w) #define concat4(x, y, z, w) concat3(concat(x, y), z, w)
@ -39,18 +39,17 @@
// See https://stackoverflow.com/questions/26099745/test-if-preprocessor-symbol-is-defined-inside-macro // See https://stackoverflow.com/questions/26099745/test-if-preprocessor-symbol-is-defined-inside-macro
#define CHOOSE2nd(a, b, ...) b #define CHOOSE2nd(a, b, ...) b
#define MUX_WITH_COMMA(contain_comma, a, b) CHOOSE2nd(contain_comma a, b) #define MUX_WITH_COMMA(contain_comma, a, b) CHOOSE2nd(contain_comma a, b)
#define MUX_MACRO_PROPERTY(p, macro, a, b) \ #define MUX_MACRO_PROPERTY(p, macro, a, b) MUX_WITH_COMMA(concat(p, macro), a, b)
MUX_WITH_COMMA(concat(p, macro), a, b)
// define placeholders for some property // define placeholders for some property
#define __P_DEF_0 X, #define __P_DEF_0 X,
#define __P_DEF_1 X, #define __P_DEF_1 X,
#define __P_ONE_1 X, #define __P_ONE_1 X,
#define __P_ZERO_0 X, #define __P_ZERO_0 X,
// define some selection functions based on the properties of BOOLEAN macro // define some selection functions based on the properties of BOOLEAN macro
#define MUXDEF(macro, X, Y) MUX_MACRO_PROPERTY(__P_DEF_, macro, X, Y) #define MUXDEF(macro, X, Y) MUX_MACRO_PROPERTY(__P_DEF_, macro, X, Y)
#define MUXNDEF(macro, X, Y) MUX_MACRO_PROPERTY(__P_DEF_, macro, Y, X) #define MUXNDEF(macro, X, Y) MUX_MACRO_PROPERTY(__P_DEF_, macro, Y, X)
#define MUXONE(macro, X, Y) MUX_MACRO_PROPERTY(__P_ONE_, macro, X, Y) #define MUXONE(macro, X, Y) MUX_MACRO_PROPERTY(__P_ONE_, macro, X, Y)
#define MUXZERO(macro, X, Y) MUX_MACRO_PROPERTY(__P_ZERO_, macro, X, Y) #define MUXZERO(macro, X, Y) MUX_MACRO_PROPERTY(__P_ZERO_,macro, X, Y)
// test if a boolean macro is defined // test if a boolean macro is defined
#define ISDEF(macro) MUXDEF(macro, 1, 0) #define ISDEF(macro) MUXDEF(macro, 1, 0)
@ -85,46 +84,29 @@
#define MAP(c, f) c(f) #define MAP(c, f) c(f)
#define BITMASK(bits) ((1ull << (bits)) - 1) #define BITMASK(bits) ((1ull << (bits)) - 1)
#define BITS(x, hi, lo) \ #define BITS(x, hi, lo) (((x) >> (lo)) & BITMASK((hi) - (lo) + 1)) // similar to x[hi:lo] in verilog
(((x) >> (lo)) & BITMASK((hi) - (lo) + 1)) // similar to x[hi:lo] in verilog #define SEXT(x, len) ({ struct { int64_t n : len; } __x = { .n = x }; (uint64_t)__x.n; })
#define SEXT(x, len) \
({ \
struct { \
int64_t n : len; \
} __x = {.n = x}; \
(uint64_t) __x.n; \
})
#define ROUNDUP(a, sz) ((((uintptr_t)a) + (sz)-1) & ~((sz)-1)) #define ROUNDUP(a, sz) ((((uintptr_t)a) + (sz) - 1) & ~((sz) - 1))
#define ROUNDDOWN(a, sz) ((((uintptr_t)a)) & ~((sz)-1)) #define ROUNDDOWN(a, sz) ((((uintptr_t)a)) & ~((sz) - 1))
#define PG_ALIGN __attribute((aligned(4096))) #define PG_ALIGN __attribute((aligned(4096)))
#define FAILED_GOTO(tag, exp) \ #define FAILED_GOTO(tag, exp) do {if((exp)) goto tag;} while(0)
do { \
if ((exp)) \
goto tag; \
} while (0)
#if !defined(likely) #if !defined(likely)
#define likely(cond) __builtin_expect(cond, 1) #define likely(cond) __builtin_expect(cond, 1)
#define unlikely(cond) __builtin_expect(cond, 0) #define unlikely(cond) __builtin_expect(cond, 0)
#endif #endif
#define __EXPORT __attribute__((visibility("default")))
// for AM IOE // for AM IOE
#define io_read(reg) \ #define io_read(reg) \
({ \ ({ reg##_T __io_param; \
reg##_T __io_param; \ ioe_read(reg, &__io_param); \
ioe_read(reg, &__io_param); \ __io_param; })
__io_param; \
})
#define io_write(reg, ...) \ #define io_write(reg, ...) \
({ \ ({ reg##_T __io_param = (reg##_T) { __VA_ARGS__ }; \
reg##_T __io_param = (reg##_T){__VA_ARGS__}; \ ioe_write(reg, &__io_param); })
ioe_write(reg, &__io_param); \
})
#endif #endif

View file

@ -1,28 +0,0 @@
#ifndef __NEMU_HEADER__
#define __NEMU_HEADER__
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
#include <gdbstub.h>
#ifdef __cplusplus
}
#endif
int nemu_read_mem(void *args, size_t addr, size_t len, void *val);
int nemu_write_mem(void *args, size_t addr, size_t len, void *val);
void nemu_cont(void *args, gdb_action_t *res);
void nemu_stepi(void *args, gdb_action_t *res);
bool nemu_set_bp(void *args, size_t addr, bp_type_t type);
bool nemu_del_bp(void *args, size_t addr, bp_type_t type);
void nemu_on_interrupt(void *args);
int nemu_read_reg(void *args, int regno, size_t *data);
int nemu_write_reg(void *args, int regno, size_t data);
void nemu_init(void *args);
extern arch_info_t nemu_isa_arch_info;
extern bool nemu_do_difftest;
extern bool nemu_dbg_state_size;
#endif // __NEMU_HEADER__

View file

@ -20,14 +20,7 @@
// ----------- state ----------- // ----------- state -----------
enum { enum { NEMU_RUNNING, NEMU_STOP, NEMU_END, NEMU_ABORT, NEMU_QUIT };
NEMU_RUNNING,
NEMU_GDB_INTERRUPT,
NEMU_STOP,
NEMU_END,
NEMU_ABORT,
NEMU_QUIT
};
typedef struct { typedef struct {
int state; int state;
@ -43,41 +36,42 @@ uint64_t get_time();
// ----------- log ----------- // ----------- log -----------
#define ANSI_FG_BLACK "\33[1;30m" #define ANSI_FG_BLACK "\33[1;30m"
#define ANSI_FG_RED "\33[1;31m" #define ANSI_FG_RED "\33[1;31m"
#define ANSI_FG_GREEN "\33[1;32m" #define ANSI_FG_GREEN "\33[1;32m"
#define ANSI_FG_YELLOW "\33[1;33m" #define ANSI_FG_YELLOW "\33[1;33m"
#define ANSI_FG_BLUE "\33[1;34m" #define ANSI_FG_BLUE "\33[1;34m"
#define ANSI_FG_MAGENTA "\33[1;35m" #define ANSI_FG_MAGENTA "\33[1;35m"
#define ANSI_FG_CYAN "\33[1;36m" #define ANSI_FG_CYAN "\33[1;36m"
#define ANSI_FG_WHITE "\33[1;37m" #define ANSI_FG_WHITE "\33[1;37m"
#define ANSI_BG_BLACK "\33[1;40m" #define ANSI_BG_BLACK "\33[1;40m"
#define ANSI_BG_RED "\33[1;41m" #define ANSI_BG_RED "\33[1;41m"
#define ANSI_BG_GREEN "\33[1;42m" #define ANSI_BG_GREEN "\33[1;42m"
#define ANSI_BG_YELLOW "\33[1;43m" #define ANSI_BG_YELLOW "\33[1;43m"
#define ANSI_BG_BLUE "\33[1;44m" #define ANSI_BG_BLUE "\33[1;44m"
#define ANSI_BG_MAGENTA "\33[1;35m" #define ANSI_BG_MAGENTA "\33[1;35m"
#define ANSI_BG_CYAN "\33[1;46m" #define ANSI_BG_CYAN "\33[1;46m"
#define ANSI_BG_WHITE "\33[1;47m" #define ANSI_BG_WHITE "\33[1;47m"
#define ANSI_NONE "\33[0m" #define ANSI_NONE "\33[0m"
#define ANSI_FMT(str, fmt) fmt str ANSI_NONE #define ANSI_FMT(str, fmt) fmt str ANSI_NONE
#define log_write(...) \ #define log_write(...) IFDEF(CONFIG_TARGET_NATIVE_ELF, \
IFDEF( \ do { \
CONFIG_TARGET_NATIVE_ELF, do { \ extern FILE* log_fp; \
extern FILE *log_fp; \ extern bool log_enable(); \
extern bool log_enable(); \ if (log_enable()) { \
if (log_enable()) { \ fprintf(log_fp, __VA_ARGS__); \
fprintf(log_fp, __VA_ARGS__); \ fflush(log_fp); \
fflush(log_fp); \ } \
} \ } while (0) \
} while (0)) )
#define _Log(...) \ #define _Log(...) \
do { \ do { \
printf(__VA_ARGS__); \ printf(__VA_ARGS__); \
log_write(__VA_ARGS__); \ log_write(__VA_ARGS__); \
} while (0) } while (0)
#endif #endif

View file

@ -22,7 +22,7 @@ CXX := g++
endif endif
LD := $(CXX) LD := $(CXX)
INCLUDES = $(addprefix -I, $(INC_PATH)) INCLUDES = $(addprefix -I, $(INC_PATH))
CFLAGS := -O2 -MMD -Wall $(INCLUDES) $(CFLAGS) CFLAGS := -O2 -MMD -Wall -Werror $(INCLUDES) $(CFLAGS)
LDFLAGS := -O2 $(LDFLAGS) LDFLAGS := -O2 $(LDFLAGS)
OBJS = $(SRCS:%.c=$(OBJ_DIR)/%.o) $(CXXSRC:%.cc=$(OBJ_DIR)/%.o) OBJS = $(SRCS:%.c=$(OBJ_DIR)/%.o) $(CXXSRC:%.cc=$(OBJ_DIR)/%.o)
@ -76,13 +76,8 @@ $(BINARY):: $(OBJS) $(ARCHIVES)
@$(LD) -o $@ $(OBJS) $(LDFLAGS) $(ARCHIVES) $(LIBS) @$(LD) -o $@ $(OBJS) $(LDFLAGS) $(ARCHIVES) $(LIBS)
install: $(BINARY) install: $(BINARY)
ifeq ($(SHARE),1)
@mkdir -p $(PREFIX)/lib
@cp $(BINARY) $(PREFIX)/lib/
else
@mkdir -p $(PREFIX)/bin @mkdir -p $(PREFIX)/bin
@cp $(BINARY) $(PREFIX)/bin/ @cp $(BINARY) $(PREFIX)/bin/
endif
clean: clean:
-rm -rf $(BUILD_DIR) -rm -rf $(BUILD_DIR)

View file

@ -13,11 +13,11 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
***************************************************************************************/ ***************************************************************************************/
#include "gdbstub.h" #include <utils.h>
#include <cpu/cpu.h> #include <cpu/cpu.h>
#include <cpu/decode.h> #include <cpu/decode.h>
#include <cpu/difftest.h>
#include <locale.h> #include <locale.h>
#include <utils.h>
/* The assembly code of instructions executed is only output to the screen /* The assembly code of instructions executed is only output to the screen
* when the number of instructions executed is less than this value. * when the number of instructions executed is less than this value.
@ -34,16 +34,13 @@ IFDEF(CONFIG_ITRACE, extern char logbuf[CONFIG_ITRACE_BUFFER][128]);
IFDEF(CONFIG_ITRACE, extern int logbuf_rear); IFDEF(CONFIG_ITRACE, extern int logbuf_rear);
void device_update(); void device_update();
bool wp_eval_all();
static void trace_and_difftest(Decode *_this, vaddr_t dnpc) { static void trace_and_difftest(Decode *_this, vaddr_t dnpc) {
#ifdef CONFIG_ITRACE_COND #ifdef CONFIG_ITRACE_COND
if (ITRACE_COND) { if (ITRACE_COND) { log_write("%s\n", logbuf[logbuf_rear]); }
log_write("%s\n", logbuf[logbuf_rear]);
}
#endif #endif
if (g_print_step) { if (g_print_step) { IFDEF(CONFIG_ITRACE, puts(logbuf[logbuf_rear])); }
IFDEF(CONFIG_ITRACE, puts(logbuf[logbuf_rear]));
}
IFDEF(CONFIG_DIFFTEST, difftest_step(_this->pc, dnpc)); IFDEF(CONFIG_DIFFTEST, difftest_step(_this->pc, dnpc));
} }
@ -59,13 +56,12 @@ static void exec_once(Decode *s, vaddr_t pc) {
int ilen = s->snpc - s->pc; int ilen = s->snpc - s->pc;
int i; int i;
uint8_t *inst = (uint8_t *)&s->isa.inst.val; uint8_t *inst = (uint8_t *)&s->isa.inst.val;
for (i = ilen - 1; i >= 0; i--) { for (i = ilen - 1; i >= 0; i --) {
p += snprintf(p, 4, " %02x", inst[i]); p += snprintf(p, 4, " %02x", inst[i]);
} }
int ilen_max = MUXDEF(CONFIG_ISA_x86, 8, 4); int ilen_max = MUXDEF(CONFIG_ISA_x86, 8, 4);
int space_len = ilen_max - ilen; int space_len = ilen_max - ilen;
if (space_len < 0) if (space_len < 0) space_len = 0;
space_len = 0;
space_len = space_len * 3 + 1; space_len = space_len * 3 + 1;
memset(p, ' ', space_len); memset(p, ' ', space_len);
p += space_len; p += space_len;
@ -73,8 +69,7 @@ static void exec_once(Decode *s, vaddr_t pc) {
#ifndef CONFIG_ISA_loongarch32r #ifndef CONFIG_ISA_loongarch32r
void disassemble(char *str, int size, uint64_t pc, uint8_t *code, int nbyte); void disassemble(char *str, int size, uint64_t pc, uint8_t *code, int nbyte);
disassemble(p, logbuf[logbuf_rear] + sizeof(logbuf[logbuf_rear]) - p, disassemble(p, logbuf[logbuf_rear] + sizeof(logbuf[logbuf_rear]) - p,
MUXDEF(CONFIG_ISA_x86, s->snpc, s->pc), MUXDEF(CONFIG_ISA_x86, s->snpc, s->pc), (uint8_t *)&s->isa.inst.val, ilen);
(uint8_t *)&s->isa.inst.val, ilen);
#else #else
p[0] = '\0'; // the upstream llvm does not support loongarch32r p[0] = '\0'; // the upstream llvm does not support loongarch32r
#endif #endif
@ -83,12 +78,15 @@ static void exec_once(Decode *s, vaddr_t pc) {
static void execute(uint64_t n) { static void execute(uint64_t n) {
Decode s; Decode s;
for (; n > 0; n--) { for (;n > 0; n --) {
exec_once(&s, cpu.pc); exec_once(&s, cpu.pc);
g_nr_guest_inst++; g_nr_guest_inst ++;
trace_and_difftest(&s, cpu.pc); trace_and_difftest(&s, cpu.pc);
if (nemu_state.state != NEMU_RUNNING) if (wp_eval_all()) {
puts(logbuf[logbuf_rear]);
break; break;
}
if (nemu_state.state != NEMU_RUNNING) break;
IFDEF(CONFIG_DEVICE, device_update()); IFDEF(CONFIG_DEVICE, device_update());
} }
} }
@ -98,12 +96,8 @@ static void statistic() {
#define NUMBERIC_FMT MUXDEF(CONFIG_TARGET_AM, "%", "%'") PRIu64 #define NUMBERIC_FMT MUXDEF(CONFIG_TARGET_AM, "%", "%'") PRIu64
Log("host time spent = " NUMBERIC_FMT " us", g_timer); Log("host time spent = " NUMBERIC_FMT " us", g_timer);
Log("total guest instructions = " NUMBERIC_FMT, g_nr_guest_inst); Log("total guest instructions = " NUMBERIC_FMT, g_nr_guest_inst);
if (g_timer > 0) if (g_timer > 0) Log("simulation frequency = " NUMBERIC_FMT " inst/s", g_nr_guest_inst * 1000000 / g_timer);
Log("simulation frequency = " NUMBERIC_FMT " inst/s", else Log("Finish running in less than 1 us and can not calculate the simulation frequency");
g_nr_guest_inst * 1000000 / g_timer);
else
Log("Finish running in less than 1 us and can not calculate the simulation "
"frequency");
} }
void assert_fail_msg() { void assert_fail_msg() {
@ -115,13 +109,10 @@ void assert_fail_msg() {
void cpu_exec(uint64_t n) { void cpu_exec(uint64_t n) {
g_print_step = (n < MAX_INST_TO_PRINT); g_print_step = (n < MAX_INST_TO_PRINT);
switch (nemu_state.state) { switch (nemu_state.state) {
case NEMU_END: case NEMU_END: case NEMU_ABORT:
case NEMU_ABORT: printf("Program execution has ended. To restart the program, exit NEMU and run again.\n");
printf("Program execution has ended. To restart the program, exit NEMU and " return;
"run again.\n"); default: nemu_state.state = NEMU_RUNNING;
return;
default:
nemu_state.state = NEMU_RUNNING;
} }
uint64_t timer_start = get_time(); uint64_t timer_start = get_time();
@ -132,53 +123,18 @@ void cpu_exec(uint64_t n) {
g_timer += timer_end - timer_start; g_timer += timer_end - timer_start;
switch (nemu_state.state) { switch (nemu_state.state) {
case NEMU_RUNNING: case NEMU_RUNNING: nemu_state.state = NEMU_STOP; break;
nemu_state.state = NEMU_STOP;
break;
case NEMU_END: case NEMU_END: case NEMU_ABORT: {
case NEMU_ABORT: { Log("nemu: %s at pc = " FMT_WORD,
Log("nemu: %s at pc = " FMT_WORD, (nemu_state.state == NEMU_ABORT ? ANSI_FMT("ABORT", ANSI_FG_RED) :
(nemu_state.state == NEMU_ABORT (nemu_state.halt_ret == 0 ? ANSI_FMT("HIT GOOD TRAP", ANSI_FG_GREEN) :
? ANSI_FMT("ABORT", ANSI_FG_RED) ANSI_FMT("HIT BAD TRAP", ANSI_FG_RED))),
: (nemu_state.halt_ret == 0 nemu_state.halt_pc);
? ANSI_FMT("HIT GOOD TRAP", ANSI_FG_GREEN) if(nemu_state.halt_ret != 0) {
: ANSI_FMT("HIT BAD TRAP", ANSI_FG_RED))), log_itrace_print();
nemu_state.halt_pc); }
if (nemu_state.halt_ret != 0) { } // fall through
IFDEF(CONFIG_ITRACE, log_itrace_print()); case NEMU_QUIT: statistic();
}
} // fall through
case NEMU_QUIT:
statistic();
} }
} }
breakpoint_t *cpu_exec_with_bp(uint64_t n, breakpoint_t *bp, size_t len) {
static Decode s;
nemu_state.state = NEMU_RUNNING;
do {
for (int i = 0; i < len; i++) {
size_t addr = bp[i].addr;
bp_type_t bptype = bp[i].type;
if (bptype == BP_SOFTWARE && cpu.pc == addr) {
return bp + i;
}
bool is_write = (bptype == BP_WRITE) || (bptype == BP_ACCESS);
bool is_read = (bptype == BP_READ) || (bptype == BP_ACCESS);
if (s.inst_type == INST_MEM_READ && s.inst_value.rmem == addr &&
is_write) {
return bp + i;
} else if (s.inst_type == INST_MEM_WRITE && s.inst_value.wmem == addr &&
is_read) {
return bp + i;
}
}
exec_once(&s, cpu.pc);
g_nr_guest_inst++;
IFDEF(CONFIG_DEVICE, device_update());
if (nemu_state.state != NEMU_RUNNING)
return NULL;
} while (--n);
return NULL;
}

132
nemu/src/cpu/difftest/dut.c Normal file
View file

@ -0,0 +1,132 @@
/***************************************************************************************
* Copyright (c) 2014-2022 Zihao Yu, Nanjing University
*
* NEMU is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*
* See the Mulan PSL v2 for more details.
***************************************************************************************/
#include <dlfcn.h>
#include <isa.h>
#include <cpu/cpu.h>
#include <memory/paddr.h>
#include <utils.h>
#include <difftest-def.h>
void (*ref_difftest_memcpy)(paddr_t addr, void *buf, size_t n, bool direction) = NULL;
void (*ref_difftest_regcpy)(void *dut, bool direction) = NULL;
void (*ref_difftest_exec)(uint64_t n) = NULL;
void (*ref_difftest_raise_intr)(uint64_t NO) = NULL;
#ifdef CONFIG_DIFFTEST
static bool is_skip_ref = false;
static int skip_dut_nr_inst = 0;
// this is used to let ref skip instructions which
// can not produce consistent behavior with NEMU
void difftest_skip_ref() {
is_skip_ref = true;
// If such an instruction is one of the instruction packing in QEMU
// (see below), we end the process of catching up with QEMU's pc to
// keep the consistent behavior in our best.
// Note that this is still not perfect: if the packed instructions
// already write some memory, and the incoming instruction in NEMU
// will load that memory, we will encounter false negative. But such
// situation is infrequent.
skip_dut_nr_inst = 0;
}
// this is used to deal with instruction packing in QEMU.
// Sometimes letting QEMU step once will execute multiple instructions.
// We should skip checking until NEMU's pc catches up with QEMU's pc.
// The semantic is
// Let REF run `nr_ref` instructions first.
// We expect that DUT will catch up with REF within `nr_dut` instructions.
void difftest_skip_dut(int nr_ref, int nr_dut) {
skip_dut_nr_inst += nr_dut;
while (nr_ref -- > 0) {
ref_difftest_exec(1);
}
}
void init_difftest(char *ref_so_file, long img_size, int port) {
assert(ref_so_file != NULL);
void *handle;
handle = dlopen(ref_so_file, RTLD_LAZY);
assert(handle);
ref_difftest_memcpy = dlsym(handle, "difftest_memcpy");
assert(ref_difftest_memcpy);
ref_difftest_regcpy = dlsym(handle, "difftest_regcpy");
assert(ref_difftest_regcpy);
ref_difftest_exec = dlsym(handle, "difftest_exec");
assert(ref_difftest_exec);
ref_difftest_raise_intr = dlsym(handle, "difftest_raise_intr");
assert(ref_difftest_raise_intr);
void (*ref_difftest_init)(int) = dlsym(handle, "difftest_init");
assert(ref_difftest_init);
Log("Differential testing: %s", ANSI_FMT("ON", ANSI_FG_GREEN));
Log("The result of every instruction will be compared with %s. "
"This will help you a lot for debugging, but also significantly reduce the performance. "
"If it is not necessary, you can turn it off in menuconfig.", ref_so_file);
ref_difftest_init(port);
ref_difftest_memcpy(RESET_VECTOR, guest_to_host(RESET_VECTOR), img_size, DIFFTEST_TO_REF);
ref_difftest_regcpy(&cpu, DIFFTEST_TO_REF);
}
static void checkregs(CPU_state *ref, vaddr_t pc) {
if (!isa_difftest_checkregs(ref, pc)) {
nemu_state.state = NEMU_ABORT;
nemu_state.halt_pc = pc;
isa_reg_display();
}
}
void difftest_step(vaddr_t pc, vaddr_t npc) {
CPU_state ref_r;
if (skip_dut_nr_inst > 0) {
ref_difftest_regcpy(&ref_r, DIFFTEST_TO_DUT);
if (ref_r.pc == npc) {
skip_dut_nr_inst = 0;
checkregs(&ref_r, npc);
return;
}
skip_dut_nr_inst --;
if (skip_dut_nr_inst == 0)
panic("can not catch up with ref.pc = " FMT_WORD " at pc = " FMT_WORD, ref_r.pc, pc);
return;
}
if (is_skip_ref) {
// to skip the checking of an instruction, just copy the reg state to reference design
ref_difftest_regcpy(&cpu, DIFFTEST_TO_REF);
is_skip_ref = false;
return;
}
ref_difftest_exec(1);
ref_difftest_regcpy(&ref_r, DIFFTEST_TO_DUT);
checkregs(&ref_r, pc);
}
#else
void init_difftest(char *ref_so_file, long img_size, int port) { }
#endif

View file

@ -0,0 +1,42 @@
/***************************************************************************************
* Copyright (c) 2014-2022 Zihao Yu, Nanjing University
*
* NEMU is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*
* See the Mulan PSL v2 for more details.
***************************************************************************************/
#include <isa.h>
#include <cpu/cpu.h>
#include <difftest-def.h>
#include <memory/paddr.h>
__EXPORT void difftest_memcpy(paddr_t addr, void *buf, size_t n, bool direction) {
assert(0);
}
__EXPORT void difftest_regcpy(void *dut, bool direction) {
assert(0);
}
__EXPORT void difftest_exec(uint64_t n) {
assert(0);
}
__EXPORT void difftest_raise_intr(word_t NO) {
assert(0);
}
__EXPORT void difftest_init(int port) {
void init_mem();
init_mem();
/* Perform ISA dependent initialization. */
init_isa();
}

View file

@ -1,4 +1,5 @@
menuconfig DEVICE menuconfig DEVICE
depends on !TARGET_SHARE
bool "Devices" bool "Devices"
default n default n
help help

View file

@ -13,17 +13,17 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
***************************************************************************************/ ***************************************************************************************/
#include <device/map.h>
#include <isa.h> #include <isa.h>
#include <memory/host.h> #include <memory/host.h>
#include <memory/vaddr.h> #include <memory/vaddr.h>
#include <device/map.h>
#define IO_SPACE_MAX (2 * 1024 * 1024) #define IO_SPACE_MAX (2 * 1024 * 1024)
static uint8_t *io_space = NULL; static uint8_t *io_space = NULL;
static uint8_t *p_space = NULL; static uint8_t *p_space = NULL;
uint8_t *new_space(int size) { uint8_t* new_space(int size) {
uint8_t *p = p_space; uint8_t *p = p_space;
// page aligned; // page aligned;
size = (size + (PAGE_SIZE - 1)) & ~PAGE_MASK; size = (size + (PAGE_SIZE - 1)) & ~PAGE_MASK;
@ -33,25 +33,17 @@ uint8_t *new_space(int size) {
} }
static void check_bound(IOMap *map, paddr_t addr) { static void check_bound(IOMap *map, paddr_t addr) {
#ifndef CONFIG_TARGET_SHARE
if (map == NULL) { if (map == NULL) {
Assert(map != NULL, Assert(map != NULL, "address (" FMT_PADDR ") is out of bound at pc = " FMT_WORD, addr, cpu.pc);
"address (" FMT_PADDR ") is out of bound at pc = " FMT_WORD, addr,
cpu.pc);
} else { } else {
Assert(addr <= map->high && addr >= map->low, Assert(addr <= map->high && addr >= map->low,
"address (" FMT_PADDR ") is out of bound {%s} [" FMT_PADDR "address (" FMT_PADDR ") is out of bound {%s} [" FMT_PADDR ", " FMT_PADDR "] at pc = " FMT_WORD,
", " FMT_PADDR "] at pc = " FMT_WORD, addr, map->name, map->low, map->high, cpu.pc);
addr, map->name, map->low, map->high, cpu.pc);
} }
#endif
} }
static void invoke_callback(io_callback_t c, paddr_t offset, int len, static void invoke_callback(io_callback_t c, paddr_t offset, int len, bool is_write) {
bool is_write) { if (c != NULL) { c(offset, len, is_write); }
if (c != NULL) {
c(offset, len, is_write);
}
} }
void init_map() { void init_map() {

View file

@ -13,8 +13,6 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
***************************************************************************************/ ***************************************************************************************/
#include <assert.h>
#include <debug.h>
#include <device/map.h> #include <device/map.h>
#define PORT_IO_SPACE_MAX 65535 #define PORT_IO_SPACE_MAX 65535
@ -24,19 +22,15 @@ static IOMap maps[NR_MAP] = {};
static int nr_map = 0; static int nr_map = 0;
/* device interface */ /* device interface */
void add_pio_map(const char *name, ioaddr_t addr, void *space, uint32_t len, void add_pio_map(const char *name, ioaddr_t addr, void *space, uint32_t len, io_callback_t callback) {
io_callback_t callback) {
assert(nr_map < NR_MAP); assert(nr_map < NR_MAP);
assert(addr + len <= PORT_IO_SPACE_MAX); assert(addr + len <= PORT_IO_SPACE_MAX);
maps[nr_map] = (IOMap){.name = name, maps[nr_map] = (IOMap){ .name = name, .low = addr, .high = addr + len - 1,
.low = addr, .space = space, .callback = callback };
.high = addr + len - 1,
.space = space,
.callback = callback};
Log("Add port-io map '%s' at [" FMT_PADDR ", " FMT_PADDR "]", Log("Add port-io map '%s' at [" FMT_PADDR ", " FMT_PADDR "]",
maps[nr_map].name, maps[nr_map].low, maps[nr_map].high); maps[nr_map].name, maps[nr_map].low, maps[nr_map].high);
nr_map++; nr_map ++;
} }
/* CPU interface */ /* CPU interface */

View file

@ -13,10 +13,7 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
***************************************************************************************/ ***************************************************************************************/
#include <assert.h>
#include <debug.h>
#include <device/map.h> #include <device/map.h>
#include <generated/autoconf.h>
#include <utils.h> #include <utils.h>
#define KEYDOWN_MASK 0x8000 #define KEYDOWN_MASK 0x8000
@ -25,27 +22,28 @@
#include <SDL2/SDL.h> #include <SDL2/SDL.h>
// Note that this is not the standard // Note that this is not the standard
#define NEMU_KEYS(f) \ #define NEMU_KEYS(f) \
f(ESCAPE) f(F1) f(F2) f(F3) f(F4) f(F5) f(F6) f(F7) f(F8) f(F9) f(F10) \ f(ESCAPE) f(F1) f(F2) f(F3) f(F4) f(F5) f(F6) f(F7) f(F8) f(F9) f(F10) f(F11) f(F12) \
f(F11) f(F12) f(GRAVE) f(1) f(2) f(3) f(4) f(5) f(6) f(7) f(8) f(9) f(0) \ f(GRAVE) f(1) f(2) f(3) f(4) f(5) f(6) f(7) f(8) f(9) f(0) f(MINUS) f(EQUALS) f(BACKSPACE) \
f(MINUS) f(EQUALS) f(BACKSPACE) f(TAB) f(Q) f(W) f(E) f(R) f(T) f(Y) \ f(TAB) f(Q) f(W) f(E) f(R) f(T) f(Y) f(U) f(I) f(O) f(P) f(LEFTBRACKET) f(RIGHTBRACKET) f(BACKSLASH) \
f(U) f(I) f(O) f(P) f(LEFTBRACKET) f(RIGHTBRACKET) f(BACKSLASH) \ f(CAPSLOCK) f(A) f(S) f(D) f(F) f(G) f(H) f(J) f(K) f(L) f(SEMICOLON) f(APOSTROPHE) f(RETURN) \
f(CAPSLOCK) f(A) f(S) f(D) f(F) f(G) f(H) f(J) f(K) f(L) \ f(LSHIFT) f(Z) f(X) f(C) f(V) f(B) f(N) f(M) f(COMMA) f(PERIOD) f(SLASH) f(RSHIFT) \
f(SEMICOLON) f(APOSTROPHE) f(RETURN) f(LSHIFT) f(Z) f(X) \ f(LCTRL) f(APPLICATION) f(LALT) f(SPACE) f(RALT) f(RCTRL) \
f(C) f(V) f(B) f(N) f(M) f(COMMA) f(PERIOD) f(SLASH) \ f(UP) f(DOWN) f(LEFT) f(RIGHT) f(INSERT) f(DELETE) f(HOME) f(END) f(PAGEUP) f(PAGEDOWN)
f(RSHIFT) f(LCTRL) f(APPLICATION) f(LALT) \
f(SPACE) f(RALT) f(RCTRL) f(UP) f(DOWN) \
f(LEFT) f(RIGHT) f(INSERT) f(DELETE) \
f(HOME) f(END) f(PAGEUP) f(PAGEDOWN)
#define NEMU_KEY_NAME(k) NEMU_KEY_##k, #define NEMU_KEY_NAME(k) NEMU_KEY_ ## k,
enum { NEMU_KEY_NONE = 0, MAP(NEMU_KEYS, NEMU_KEY_NAME) }; enum {
NEMU_KEY_NONE = 0,
MAP(NEMU_KEYS, NEMU_KEY_NAME)
};
#define SDL_KEYMAP(k) keymap[SDL_SCANCODE_##k] = NEMU_KEY_##k; #define SDL_KEYMAP(k) keymap[SDL_SCANCODE_ ## k] = NEMU_KEY_ ## k;
static uint32_t keymap[256] = {}; static uint32_t keymap[256] = {};
static void init_keymap() { MAP(NEMU_KEYS, SDL_KEYMAP) } static void init_keymap() {
MAP(NEMU_KEYS, SDL_KEYMAP)
}
#define KEY_QUEUE_LEN 1024 #define KEY_QUEUE_LEN 1024
static int key_queue[KEY_QUEUE_LEN] = {}; static int key_queue[KEY_QUEUE_LEN] = {};
@ -94,11 +92,9 @@ void init_i8042() {
i8042_data_port_base = (uint32_t *)new_space(4); i8042_data_port_base = (uint32_t *)new_space(4);
i8042_data_port_base[0] = NEMU_KEY_NONE; i8042_data_port_base[0] = NEMU_KEY_NONE;
#ifdef CONFIG_HAS_PORT_IO #ifdef CONFIG_HAS_PORT_IO
add_pio_map("keyboard", CONFIG_I8042_DATA_PORT, i8042_data_port_base, 4, add_pio_map ("keyboard", CONFIG_I8042_DATA_PORT, i8042_data_port_base, 4, i8042_data_io_handler);
i8042_data_io_handler);
#else #else
add_mmio_map("keyboard", CONFIG_I8042_DATA_MMIO, i8042_data_port_base, 4, add_mmio_map("keyboard", CONFIG_I8042_DATA_MMIO, i8042_data_port_base, 4, i8042_data_io_handler);
i8042_data_io_handler);
#endif #endif
IFNDEF(CONFIG_TARGET_AM, init_keymap()); IFNDEF(CONFIG_TARGET_AM, init_keymap());
} }

View file

@ -13,11 +13,8 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
***************************************************************************************/ ***************************************************************************************/
#include <assert.h>
#include <debug.h>
#include <device/map.h>
#include <generated/autoconf.h>
#include <utils.h> #include <utils.h>
#include <device/map.h>
/* http://en.wikibooks.org/wiki/Serial_Programming/8250_UART_Programming */ /* http://en.wikibooks.org/wiki/Serial_Programming/8250_UART_Programming */
// NOTE: this is compatible to 16550 // NOTE: this is compatible to 16550
@ -26,6 +23,7 @@
static uint8_t *serial_base = NULL; static uint8_t *serial_base = NULL;
static void serial_putc(char ch) { static void serial_putc(char ch) {
MUXDEF(CONFIG_TARGET_AM, putch(ch), putc(ch, stderr)); MUXDEF(CONFIG_TARGET_AM, putch(ch), putc(ch, stderr));
} }
@ -33,23 +31,21 @@ static void serial_putc(char ch) {
static void serial_io_handler(uint32_t offset, int len, bool is_write) { static void serial_io_handler(uint32_t offset, int len, bool is_write) {
assert(len == 1); assert(len == 1);
switch (offset) { switch (offset) {
/* We bind the serial port with the host stderr in NEMU. */ /* We bind the serial port with the host stderr in NEMU. */
case CH_OFFSET: case CH_OFFSET:
if (is_write) if (is_write) serial_putc(serial_base[0]);
serial_putc(serial_base[0]); else panic("do not support read");
else break;
panic("do not support read"); default: panic("do not support offset = %d", offset);
break;
default:
panic("do not support offset = %d", offset);
} }
} }
void init_serial() { void init_serial() {
serial_base = new_space(8); serial_base = new_space(8);
#ifdef CONFIG_HAS_PORT_IO #ifdef CONFIG_HAS_PORT_IO
add_pio_map("serial", CONFIG_SERIAL_PORT, serial_base, 8, serial_io_handler); add_pio_map ("serial", CONFIG_SERIAL_PORT, serial_base, 8, serial_io_handler);
#else #else
add_mmio_map("serial", CONFIG_SERIAL_MMIO, serial_base, 8, serial_io_handler); add_mmio_map("serial", CONFIG_SERIAL_MMIO, serial_base, 8, serial_io_handler);
#endif #endif
} }

View file

@ -13,10 +13,8 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
***************************************************************************************/ ***************************************************************************************/
#include <assert.h>
#include <device/alarm.h>
#include <device/map.h> #include <device/map.h>
#include <generated/autoconf.h> #include <device/alarm.h>
#include <utils.h> #include <utils.h>
static uint32_t *rtc_port_base = NULL; static uint32_t *rtc_port_base = NULL;
@ -42,7 +40,7 @@ static void timer_intr() {
void init_timer() { void init_timer() {
rtc_port_base = (uint32_t *)new_space(8); rtc_port_base = (uint32_t *)new_space(8);
#ifdef CONFIG_HAS_PORT_IO #ifdef CONFIG_HAS_PORT_IO
add_pio_map("rtc", CONFIG_RTC_PORT, rtc_port_base, 8, rtc_io_handler); add_pio_map ("rtc", CONFIG_RTC_PORT, rtc_port_base, 8, rtc_io_handler);
#else #else
add_mmio_map("rtc", CONFIG_RTC_MMIO, rtc_port_base, 8, rtc_io_handler); add_mmio_map("rtc", CONFIG_RTC_MMIO, rtc_port_base, 8, rtc_io_handler);
#endif #endif

View file

@ -13,19 +13,20 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
***************************************************************************************/ ***************************************************************************************/
#include <cpu/ifetch.h>
#include <difftest.h>
#include <isa.h>
#include <utils.h> #include <utils.h>
#include <cpu/ifetch.h>
#include <isa.h>
#include <cpu/difftest.h>
void set_nemu_state(int state, vaddr_t pc, int halt_ret) { void set_nemu_state(int state, vaddr_t pc, int halt_ret) {
nemu_do_difftest = false; difftest_skip_ref();
nemu_state.state = state; nemu_state.state = state;
nemu_state.halt_pc = pc; nemu_state.halt_pc = pc;
nemu_state.halt_ret = halt_ret; nemu_state.halt_ret = halt_ret;
} }
__attribute__((noinline)) void invalid_inst(vaddr_t thispc) { __attribute__((noinline))
void invalid_inst(vaddr_t thispc) {
uint32_t temp[2]; uint32_t temp[2];
vaddr_t pc = thispc; vaddr_t pc = thispc;
temp[0] = inst_fetch(&pc, 4); temp[0] = inst_fetch(&pc, 4);
@ -33,24 +34,18 @@ __attribute__((noinline)) void invalid_inst(vaddr_t thispc) {
uint8_t *p = (uint8_t *)temp; uint8_t *p = (uint8_t *)temp;
printf("invalid opcode(PC = " FMT_WORD "):\n" printf("invalid opcode(PC = " FMT_WORD "):\n"
"\t%02x %02x %02x %02x %02x %02x %02x %02x ...\n" "\t%02x %02x %02x %02x %02x %02x %02x %02x ...\n"
"\t%08x %08x...\n", "\t%08x %08x...\n",
thispc, p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], temp[0], thispc, p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], temp[0], temp[1]);
temp[1]);
printf("There are two cases which will trigger this unexpected exception:\n" printf("There are two cases which will trigger this unexpected exception:\n"
"1. The instruction at PC = " FMT_WORD " is not implemented.\n" "1. The instruction at PC = " FMT_WORD " is not implemented.\n"
"2. Something is implemented incorrectly.\n", "2. Something is implemented incorrectly.\n", thispc);
thispc); printf("Find this PC(" FMT_WORD ") in the disassembling result to distinguish which case it is.\n\n", thispc);
printf("Find this PC(" FMT_WORD
") in the disassembling result to distinguish which case it is.\n\n",
thispc);
printf(ANSI_FMT("If it is the first case, see\n%s\nfor more details.\n\n" printf(ANSI_FMT("If it is the first case, see\n%s\nfor more details.\n\n"
"If it is the second case, remember:\n" "If it is the second case, remember:\n"
"* The machine is always right!\n" "* The machine is always right!\n"
"* Every line of untested code is always wrong!\n\n", "* Every line of untested code is always wrong!\n\n", ANSI_FG_RED), isa_logo);
ANSI_FG_RED),
isa_logo);
set_nemu_state(NEMU_ABORT, thispc, -1); set_nemu_state(NEMU_ABORT, thispc, -1);
} }

View file

@ -13,26 +13,15 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
***************************************************************************************/ ***************************************************************************************/
#include "debug.h"
#include <cpu/cpu.h> #include <cpu/cpu.h>
#include <gdbstub.h>
int gdbstub_loop(); void sdb_mainloop();
extern bool enable_gdbstub;
void engine_start() { void engine_start() {
#ifdef CONFIG_TARGET_AM #ifdef CONFIG_TARGET_AM
cpu_exec(-1); cpu_exec(-1);
#else #else
/* Receive commands from user. */ /* Receive commands from user. */
int ret = 0; sdb_mainloop();
if (enable_gdbstub) {
if ((ret = gdbstub_loop())) {
Error("gdbstub exited abnormally");
exit(ret);
}
} else {
cpu_exec(-1);
}
#endif #endif
} }

View file

@ -14,12 +14,12 @@
#**************************************************************************************/ #**************************************************************************************/
SRCS-y += src/nemu-main.c SRCS-y += src/nemu-main.c
DIRS-y += src/cpu src/utils DIRS-y += src/cpu src/monitor src/utils
DIRS-$(CONFIG_MODE_SYSTEM) += src/memory DIRS-$(CONFIG_MODE_SYSTEM) += src/memory
DIRS-BLACKLIST-$(CONFIG_TARGET_AM) += src/monitor/sdb DIRS-BLACKLIST-$(CONFIG_TARGET_AM) += src/monitor/sdb
SHARE = $(if $(CONFIG_TARGET_SHARE),1,0) SHARE = $(if $(CONFIG_TARGET_SHARE),1,0)
LIBS += $(if $(CONFIG_TARGET_NATIVE_ELF),-lgdbstub -lreadline -ldl -pie,) LIBS += $(if $(CONFIG_TARGET_NATIVE_ELF),-lreadline -ldl -pie,)
ifdef mainargs ifdef mainargs
ASFLAGS += -DBIN_PATH=\"$(mainargs)\" ASFLAGS += -DBIN_PATH=\"$(mainargs)\"

View file

@ -28,50 +28,51 @@
*/ */
unsigned char isa_logo[] = { unsigned char isa_logo[] = {
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x5f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x5f, 0x5f, 0x5f, 0x5f, 0x20, 0x5f, 0x5f, 0x5f, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x5f, 0x5f, 0x5f, 0x20, 0x5f, 0x5f, 0x5f, 0x20, 0x20, 0x20, 0x20,
0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x5f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x5f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x20, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x5f, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x5f, 0x29,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x5f, 0x5f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x5f, 0x5f,
0x5f, 0x20, 0x5c, 0x5f, 0x5f, 0x20, 0x5c, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x5f, 0x20, 0x5c, 0x5f, 0x5f, 0x20, 0x5c, 0x20, 0x20, 0x7c, 0x20, 0x20,
0x5c, 0x2f, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5c, 0x2f, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x7c, 0x0a, 0x20, 0x20, 0x5f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x7c, 0x0a, 0x20, 0x20, 0x5f, 0x20,
0x5f, 0x5f, 0x20, 0x5f, 0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x5f, 0x20, 0x5f, 0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x20, 0x5f, 0x20,
0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x5f, 0x29, 0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x5f, 0x29,
0x20, 0x7c, 0x20, 0x29, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x5c, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x29, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x5c, 0x20, 0x20,
0x2f, 0x20, 0x7c, 0x20, 0x5f, 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x2f, 0x20, 0x7c, 0x20, 0x5f, 0x5f, 0x20, 0x5f, 0x20, 0x5f, 0x20, 0x5f,
0x5f, 0x20, 0x20, 0x5f, 0x20, 0x20, 0x20, 0x5f, 0x20, 0x20, 0x5f, 0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x20, 0x20, 0x20, 0x5f, 0x20, 0x20, 0x5f, 0x5f,
0x20, 0x5f, 0x7c, 0x20, 0x7c, 0x0a, 0x20, 0x7c, 0x20, 0x27, 0x5f, 0x20, 0x20, 0x5f, 0x7c, 0x20, 0x7c, 0x0a, 0x20, 0x7c, 0x20, 0x27, 0x5f, 0x20,
0x60, 0x20, 0x5f, 0x20, 0x5c, 0x7c, 0x20, 0x7c, 0x20, 0x27, 0x5f, 0x20, 0x60, 0x20, 0x5f, 0x20, 0x5c, 0x7c, 0x20, 0x7c, 0x20, 0x27, 0x5f, 0x20,
0x5c, 0x2f, 0x20, 0x5f, 0x5f, 0x7c, 0x7c, 0x5f, 0x5f, 0x20, 0x3c, 0x20, 0x5c, 0x2f, 0x20, 0x5f, 0x5f, 0x7c, 0x7c, 0x5f, 0x5f, 0x20, 0x3c, 0x20,
0x2f, 0x20, 0x2f, 0x20, 0x20, 0x7c, 0x20, 0x7c, 0x5c, 0x2f, 0x7c, 0x20, 0x2f, 0x20, 0x2f, 0x20, 0x20, 0x7c, 0x20, 0x7c, 0x5c, 0x2f, 0x7c, 0x20,
0x7c, 0x2f, 0x20, 0x5f, 0x60, 0x20, 0x7c, 0x20, 0x27, 0x5f, 0x20, 0x5c, 0x7c, 0x2f, 0x20, 0x5f, 0x60, 0x20, 0x7c, 0x20, 0x27, 0x5f, 0x20, 0x5c,
0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x2f, 0x20, 0x5f, 0x60, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x2f, 0x20, 0x5f, 0x60, 0x20,
0x7c, 0x20, 0x7c, 0x0a, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x7c, 0x20, 0x7c, 0x0a, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c,
0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x5f, 0x29, 0x20, 0x5c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x5f, 0x29, 0x20, 0x5c,
0x5f, 0x5f, 0x20, 0x5c, 0x5f, 0x5f, 0x5f, 0x29, 0x20, 0x2f, 0x20, 0x2f, 0x5f, 0x5f, 0x20, 0x5c, 0x5f, 0x5f, 0x5f, 0x29, 0x20, 0x2f, 0x20, 0x2f,
0x5f, 0x20, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x5f, 0x20, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x20, 0x7c, 0x20, 0x7c, 0x20,
0x28, 0x5f, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x28, 0x5f, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20,
0x7c, 0x5f, 0x7c, 0x20, 0x7c, 0x20, 0x28, 0x5f, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x5f, 0x7c, 0x20, 0x7c, 0x20, 0x28, 0x5f, 0x7c, 0x20, 0x7c, 0x20,
0x7c, 0x0a, 0x20, 0x7c, 0x5f, 0x7c, 0x20, 0x7c, 0x5f, 0x7c, 0x20, 0x7c, 0x7c, 0x0a, 0x20, 0x7c, 0x5f, 0x7c, 0x20, 0x7c, 0x5f, 0x7c, 0x20, 0x7c,
0x5f, 0x7c, 0x5f, 0x7c, 0x20, 0x2e, 0x5f, 0x5f, 0x2f, 0x7c, 0x5f, 0x5f, 0x5f, 0x7c, 0x5f, 0x7c, 0x20, 0x2e, 0x5f, 0x5f, 0x2f, 0x7c, 0x5f, 0x5f,
0x5f, 0x2f, 0x5f, 0x5f, 0x5f, 0x5f, 0x2f, 0x5f, 0x5f, 0x5f, 0x5f, 0x7c, 0x5f, 0x2f, 0x5f, 0x5f, 0x5f, 0x5f, 0x2f, 0x5f, 0x5f, 0x5f, 0x5f, 0x7c,
0x20, 0x7c, 0x5f, 0x7c, 0x20, 0x20, 0x7c, 0x5f, 0x7c, 0x5c, 0x5f, 0x5f, 0x20, 0x7c, 0x5f, 0x7c, 0x20, 0x20, 0x7c, 0x5f, 0x7c, 0x5c, 0x5f, 0x5f,
0x2c, 0x5f, 0x7c, 0x5f, 0x7c, 0x20, 0x7c, 0x5f, 0x7c, 0x5c, 0x5f, 0x5f, 0x2c, 0x5f, 0x7c, 0x5f, 0x7c, 0x20, 0x7c, 0x5f, 0x7c, 0x5c, 0x5f, 0x5f,
0x2c, 0x5f, 0x7c, 0x5c, 0x5f, 0x5f, 0x2c, 0x5f, 0x7c, 0x5f, 0x7c, 0x0a, 0x2c, 0x5f, 0x7c, 0x5c, 0x5f, 0x5f, 0x2c, 0x5f, 0x7c, 0x5f, 0x7c, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x7c, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c,
0x5f, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, '\0'}; 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x0a, '\0'
};

View file

@ -1,18 +0,0 @@
#include <csr.h>
void init_csr(csr_t csr) { memset(csr, 0, sizeof(word_t)); }
void write_csr(csr_t csr, csr_addr_t csrnum, word_t value) {
switch (csrnum) {
default:
csr[csrnum] = value;
}
}
word_t read_csr(csr_t csr, csr_addr_t csrnum) {
switch (csrnum) {
// TODO: Implement csr read checks
default:
return csr[csrnum];
}
}

View file

@ -0,0 +1,28 @@
/***************************************************************************************
* Copyright (c) 2014-2022 Zihao Yu, Nanjing University
*
* NEMU is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*
* See the Mulan PSL v2 for more details.
***************************************************************************************/
#include <isa.h>
#include <cpu/difftest.h>
#include "../local-include/reg.h"
bool isa_difftest_checkregs(CPU_state *ref_r, vaddr_t pc) {
for(int i = 0; i < MUXDEF(CONFIG_RVE, 16, 32); i++) {
if(!difftest_check_reg(reg_name(i), pc, ref_r->gpr[i], gpr(i))) return false;
}
return true;
}
void isa_difftest_attach() {
}

View file

@ -18,13 +18,8 @@
#include <common.h> #include <common.h>
#define CSR_SIZE (0x1000)
typedef word_t csr_t[CSR_SIZE];
typedef struct { typedef struct {
word_t gpr[MUXDEF(CONFIG_RVE, 16, 32)]; word_t gpr[MUXDEF(CONFIG_RVE, 16, 32)];
csr_t csr;
vaddr_t pc; vaddr_t pc;
} MUXDEF(CONFIG_RV64, riscv64_CPU_state, riscv32_CPU_state); } MUXDEF(CONFIG_RV64, riscv64_CPU_state, riscv32_CPU_state);

View file

@ -13,89 +13,45 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
***************************************************************************************/ ***************************************************************************************/
#include "isa.h" #include <common.h>
#include "local-include/reg.h" #include "local-include/reg.h"
#include "macro.h" #include "macro.h"
#include "types.h"
#include <common.h>
#include <cpu/cpu.h> #include <cpu/cpu.h>
#include <cpu/decode.h>
#include <cpu/ifetch.h> #include <cpu/ifetch.h>
#include <csr.h> #include <cpu/decode.h>
#include <ftrace.h> #include <ftrace.h>
#include <utils.h> #include <utils.h>
#define R(i) gpr(i) #define R(i) gpr(i)
#define Mr vaddr_read
#define Mw vaddr_write
enum { enum {
TYPE_R, TYPE_R, TYPE_I, TYPE_I_SHIFT, TYPE_U, TYPE_S, TYPE_B, TYPE_J,
TYPE_I,
TYPE_I_SHIFT,
TYPE_U,
TYPE_S,
TYPE_B,
TYPE_J,
TYPE_CSR,
TYPE_CSRI,
TYPE_N, // none TYPE_N, // none
}; };
#define src1R() \ #define src1R() do { *src1 = R(rs1); } while (0)
do { \ #define src2R() do { *src2 = R(rs2); } while (0)
*src1 = R(rs1); \ #define immI() do { *imm = SEXT(BITS(i, 31, 20), 12); } while(0)
} while (0) #define immU() do { *imm = SEXT(BITS(i, 31, 12), 20) << 12; } while(0)
#define src2R() \ #define immS() do { *imm = SEXT(BITS(i, 31, 25), 7) << 5 | BITS(i, 11, 7); } while(0)
do { \ #define immB() do { *imm = SEXT(BITS(i, 31, 31), 1) << 12 | BITS(i, 30, 25) << 5 | BITS(i, 11, 8) << 1 | BITS(i, 7, 7) << 11; } while(0)
*src2 = R(rs2); \ #define immJ() do { *imm = SEXT(BITS(i, 31, 31), 1) << 20 | BITS(i, 30, 21) << 1 | BITS(i, 20, 20) << 11 | BITS(i, 19, 12) << 12; } while(0)
} while (0)
#define immI() \
do { \
*imm = SEXT(BITS(i, 31, 20), 12); \
} while (0)
#define immU() \
do { \
*imm = SEXT(BITS(i, 31, 12), 20) << 12; \
} while (0)
#define immS() \
do { \
*imm = SEXT(BITS(i, 31, 25), 7) << 5 | BITS(i, 11, 7); \
} while (0)
#define immB() \
do { \
*imm = SEXT(BITS(i, 31, 31), 1) << 12 | BITS(i, 30, 25) << 5 | \
BITS(i, 11, 8) << 1 | BITS(i, 7, 7) << 11; \
} while (0)
#define immJ() \
do { \
*imm = SEXT(BITS(i, 31, 31), 1) << 20 | BITS(i, 30, 21) << 1 | \
BITS(i, 20, 20) << 11 | BITS(i, 19, 12) << 12; \
} while (0)
#define csr() \
do { \
*src2 = BITS(i, 31, 20); \
} while (0)
#define uimm() \
do { \
*imm = BITS(i, 19, 15); \
} while (0)
static void decode_operand(Decode *s, int *rd, word_t *src1, word_t *src2, static void decode_operand(Decode *s, int *rd, word_t *src1, word_t *src2,
word_t *imm, int type) { word_t *imm, int type) {
uint32_t i = s->isa.inst.val; uint32_t i = s->isa.inst.val;
int rs1 = BITS(i, 19, 15); int rs1 = BITS(i, 19, 15);
int rs2 = BITS(i, 24, 20); int rs2 = BITS(i, 24, 20);
*rd = BITS(i, 11, 7); *rd = BITS(i, 11, 7);
switch (type) { switch (type) {
// clang-format off case TYPE_R: src1R(); src2R(); break;
case TYPE_R: src1R(); src2R(); break; case TYPE_I: src1R(); immI(); break;
case TYPE_I: src1R(); immI(); break; case TYPE_U: immU(); break;
case TYPE_U: immU(); break; case TYPE_J: immJ(); break;
case TYPE_J: immJ(); break; case TYPE_S: src1R(); src2R(); immS(); break;
case TYPE_S: src1R(); src2R(); immS(); break; case TYPE_B: src1R(); src2R(); immB(); break;
case TYPE_B: src1R(); src2R(); immB(); break;
case TYPE_CSR: src1R(); csr(); break;
case TYPE_CSRI: csr(); uimm(); break;
// clang-format on
} }
} }
@ -106,23 +62,11 @@ static void do_branch(Decode *s, bool condition, word_t offset) {
} }
} }
static inline word_t Mr(Decode *s, vaddr_t addr, int len) {
s->inst_type = INST_MEM_READ;
s->inst_value.rmem = addr & ~0x3;
return vaddr_read(addr, len);
}
static inline void Mw(Decode *s, vaddr_t addr, int len, word_t data) {
vaddr_write(addr, len, data);
s->inst_type = INST_MEM_WRITE;
s->inst_value.wmem = addr & ~0x3;
}
#ifdef CONFIG_FTRACE #ifdef CONFIG_FTRACE
static void ftrace_jalr(Decode *s, int rd, vaddr_t dst) { static void ftrace_jalr(Decode *s, int rd, vaddr_t dst) {
uint32_t i = s->isa.inst.val; uint32_t i = s->isa.inst.val;
int rs1 = BITS(i, 19, 15); int rs1 = BITS(i, 19, 15);
if (rs1 == 1 && rd == 0) { if(rs1 == 1 && rd == 0) {
ftrace_return(s->pc, dst); ftrace_return(s->pc, dst);
} else { } else {
ftrace_call(s->pc, dst); ftrace_call(s->pc, dst);
@ -136,159 +80,70 @@ static int decode_exec(Decode *s) {
s->dnpc = s->snpc; s->dnpc = s->snpc;
#define INSTPAT_INST(s) ((s)->isa.inst.val) #define INSTPAT_INST(s) ((s)->isa.inst.val)
#define INSTPAT_MATCH(s, name, type, ... /* execute body */) \ #define INSTPAT_MATCH(s, name, type, ... /* execute body */ ) { \
{ \ decode_operand(s, &rd, &src1, &src2, &imm, concat(TYPE_, type)); \
decode_operand(s, &rd, &src1, &src2, &imm, concat(TYPE_, type)); \ __VA_ARGS__ ; \
__VA_ARGS__; \ }
}
INSTPAT_START(); INSTPAT_START();
INSTPAT("??????? ????? ????? ??? ????? 01101 11", lui, U, R(rd) = imm); INSTPAT("??????? ????? ????? ??? ????? 01101 11", lui , U, R(rd) = imm);
INSTPAT("??????? ????? ????? ??? ????? 00101 11", auipc, U, INSTPAT("??????? ????? ????? ??? ????? 00101 11", auipc , U, R(rd) = s->pc + imm);
R(rd) = s->pc + imm);
INSTPAT( INSTPAT("??????? ????? ????? ??? ????? 11011 11", jal , J, do {
"??????? ????? ????? ??? ????? 11011 11", jal, J, do { s->dnpc = s->pc + imm; R(rd) = s->pc + 4;
s->dnpc = s->pc + imm; IFDEF(CONFIG_FTRACE, ftrace_call(s->pc, s->pc + imm)); } while(0));
R(rd) = s->pc + 4; INSTPAT("??????? ????? ????? ??? ????? 11001 11", jalr , I, do {
IFDEF(CONFIG_FTRACE, ftrace_call(s->pc, s->pc + imm)); s->dnpc = src1 + imm; R(rd) = s->pc + 4;
} while (0)); IFDEF(CONFIG_FTRACE, ftrace_jalr(s, rd, src1 + imm)); } while(0));
INSTPAT( INSTPAT("??????? ????? ????? 000 ????? 11000 11", beq , B, do_branch(s, src1 == src2, imm));
"??????? ????? ????? ??? ????? 11001 11", jalr, I, do { INSTPAT("??????? ????? ????? 001 ????? 11000 11", bne , B, do_branch(s, src1 != src2, imm));
s->dnpc = src1 + imm; INSTPAT("??????? ????? ????? 100 ????? 11000 11", blt , B, do_branch(s, (sword_t)src1 < (sword_t)src2, imm));
R(rd) = s->pc + 4; INSTPAT("??????? ????? ????? 101 ????? 11000 11", bge , B, do_branch(s, (sword_t)src1 >= (sword_t)src2, imm));
IFDEF(CONFIG_FTRACE, ftrace_jalr(s, rd, src1 + imm)); INSTPAT("??????? ????? ????? 110 ????? 11000 11", bltu , B, do_branch(s, src1 < src2, imm));
} while (0)); INSTPAT("??????? ????? ????? 111 ????? 11000 11", bgeu , B, do_branch(s, src1 >= src2, imm));
INSTPAT("??????? ????? ????? 000 ????? 11000 11", beq, B,
do_branch(s, src1 == src2, imm));
INSTPAT("??????? ????? ????? 001 ????? 11000 11", bne, B,
do_branch(s, src1 != src2, imm));
INSTPAT("??????? ????? ????? 100 ????? 11000 11", blt, B,
do_branch(s, (sword_t)src1 < (sword_t)src2, imm));
INSTPAT("??????? ????? ????? 101 ????? 11000 11", bge, B,
do_branch(s, (sword_t)src1 >= (sword_t)src2, imm));
INSTPAT("??????? ????? ????? 110 ????? 11000 11", bltu, B,
do_branch(s, src1 < src2, imm));
INSTPAT("??????? ????? ????? 111 ????? 11000 11", bgeu, B,
do_branch(s, src1 >= src2, imm));
INSTPAT("??????? ????? ????? 000 ????? 00000 11", lb, I, INSTPAT("??????? ????? ????? 000 ????? 00000 11", lb , I, R(rd) = SEXT(Mr(src1 + imm, 1), 8));
R(rd) = SEXT(Mr(s, src1 + imm, 1), 8)); INSTPAT("??????? ????? ????? 001 ????? 00000 11", lh , I, R(rd) = SEXT(Mr(src1 + imm, 2), 16));
INSTPAT("??????? ????? ????? 001 ????? 00000 11", lh, I, INSTPAT("??????? ????? ????? 010 ????? 00000 11", lw , I, R(rd) = SEXT(Mr(src1 + imm, 4), 32));
R(rd) = SEXT(Mr(s, src1 + imm, 2), 16)); INSTPAT("??????? ????? ????? 100 ????? 00000 11", lbu , I, R(rd) = Mr(src1 + imm, 1));
INSTPAT("??????? ????? ????? 010 ????? 00000 11", lw, I, INSTPAT("??????? ????? ????? 101 ????? 00000 11", lhu , I, R(rd) = Mr(src1 + imm, 2));
R(rd) = SEXT(Mr(s, src1 + imm, 4), 32)); INSTPAT("??????? ????? ????? 000 ????? 01000 11", sb , S, Mw(src1 + imm, 1, src2));
INSTPAT("??????? ????? ????? 100 ????? 00000 11", lbu, I, INSTPAT("??????? ????? ????? 001 ????? 01000 11", sh , S, Mw(src1 + imm, 2, src2));
R(rd) = Mr(s, src1 + imm, 1)); INSTPAT("??????? ????? ????? 010 ????? 01000 11", sw , S, Mw(src1 + imm, 4, src2));
INSTPAT("??????? ????? ????? 101 ????? 00000 11", lhu, I,
R(rd) = Mr(s, src1 + imm, 2));
INSTPAT("??????? ????? ????? 000 ????? 01000 11", sb, S,
Mw(s, src1 + imm, 1, src2));
INSTPAT("??????? ????? ????? 001 ????? 01000 11", sh, S,
Mw(s, src1 + imm, 2, src2));
INSTPAT("??????? ????? ????? 010 ????? 01000 11", sw, S,
Mw(s, src1 + imm, 4, src2));
INSTPAT("??????? ????? ????? 000 ????? 00100 11", addi, I, INSTPAT("??????? ????? ????? 000 ????? 00100 11", addi , I, R(rd) = src1 + imm);
R(rd) = src1 + imm); INSTPAT("??????? ????? ????? 010 ????? 00100 11", slti , I, R(rd) = (sword_t)src1 < (sword_t)imm ? 1 : 0);
INSTPAT("??????? ????? ????? 010 ????? 00100 11", slti, I, INSTPAT("??????? ????? ????? 011 ????? 00100 11", sltiu , I, R(rd) = src1 < imm ? 1 : 0);
R(rd) = (sword_t)src1 < (sword_t)imm ? 1 : 0); INSTPAT("??????? ????? ????? 100 ????? 00100 11", xori , I, R(rd) = src1 ^ imm);
INSTPAT("??????? ????? ????? 011 ????? 00100 11", sltiu, I, INSTPAT("??????? ????? ????? 110 ????? 00100 11", ori , I, R(rd) = src1 | imm);
R(rd) = src1 < imm ? 1 : 0); INSTPAT("??????? ????? ????? 111 ????? 00100 11", andi , I, R(rd) = src1 & imm);
INSTPAT("??????? ????? ????? 100 ????? 00100 11", xori, I, INSTPAT("0000000 ????? ????? 001 ????? 00100 11", slli , I, R(rd) = src1 << imm);
R(rd) = src1 ^ imm); INSTPAT("0000000 ????? ????? 101 ????? 00100 11", srli , I, R(rd) = src1 >> imm);
INSTPAT("??????? ????? ????? 110 ????? 00100 11", ori, I, R(rd) = src1 | imm); INSTPAT("0100000 ????? ????? 101 ????? 00100 11", srai , I, R(rd) = (sword_t)src1 >> (imm & 0x01F));
INSTPAT("??????? ????? ????? 111 ????? 00100 11", andi, I, INSTPAT("0000000 ????? ????? 000 ????? 01100 11", add , R, R(rd) = src1 + src2);
R(rd) = src1 & imm); INSTPAT("0100000 ????? ????? 000 ????? 01100 11", sub , R, R(rd) = src1 - src2);
INSTPAT("0000000 ????? ????? 001 ????? 00100 11", slli, I, INSTPAT("0000000 ????? ????? 001 ????? 01100 11", sll , R, R(rd) = src1 << src2);
R(rd) = src1 << imm); INSTPAT("0000000 ????? ????? 010 ????? 01100 11", slt , R, R(rd) = (sword_t)src1 < (sword_t)src2 ? 1 : 0);
INSTPAT("0000000 ????? ????? 101 ????? 00100 11", srli, I, INSTPAT("0000000 ????? ????? 011 ????? 01100 11", sltu , R, R(rd) = src1 < src2 ? 1 : 0);
R(rd) = src1 >> imm); INSTPAT("0000000 ????? ????? 100 ????? 01100 11", xor , R, R(rd) = src1 ^ src2);
INSTPAT("0100000 ????? ????? 101 ????? 00100 11", srai, I, INSTPAT("0000000 ????? ????? 101 ????? 01100 11", srl , R, R(rd) = src1 >> src2);
R(rd) = (sword_t)src1 >> (imm & 0x01F)); INSTPAT("0100000 ????? ????? 101 ????? 01100 11", sra , R, R(rd) = (sword_t)src1 >> (src2 & 0x01F));
INSTPAT("0000000 ????? ????? 000 ????? 01100 11", add, R, INSTPAT("0000000 ????? ????? 110 ????? 01100 11", or , R, R(rd) = src1 | src2);
R(rd) = src1 + src2); INSTPAT("0000000 ????? ????? 111 ????? 01100 11", and , R, R(rd) = src1 & src2);
INSTPAT("0100000 ????? ????? 000 ????? 01100 11", sub, R,
R(rd) = src1 - src2);
INSTPAT("0000000 ????? ????? 001 ????? 01100 11", sll, R,
R(rd) = src1 << src2);
INSTPAT("0000000 ????? ????? 010 ????? 01100 11", slt, R,
R(rd) = (sword_t)src1 < (sword_t)src2 ? 1 : 0);
INSTPAT("0000000 ????? ????? 011 ????? 01100 11", sltu, R,
R(rd) = src1 < src2 ? 1 : 0);
INSTPAT("0000000 ????? ????? 100 ????? 01100 11", xor, R,
R(rd) = src1 ^ src2);
INSTPAT("0000000 ????? ????? 101 ????? 01100 11", srl, R,
R(rd) = src1 >> src2);
INSTPAT("0100000 ????? ????? 101 ????? 01100 11", sra, R,
R(rd) = (sword_t)src1 >> (src2 & 0x01F));
INSTPAT("0000000 ????? ????? 110 ????? 01100 11", or, R, R(rd) = src1 | src2);
INSTPAT("0000000 ????? ????? 111 ????? 01100 11", and, R,
R(rd) = src1 & src2);
INSTPAT("0000000 00001 00000 000 00000 11100 11", ebreak, N, INSTPAT("0000000 00001 00000 000 00000 11100 11", ebreak , N, NEMUTRAP(s->pc, R(10))); // R(10) is $a0
NEMUTRAP(s->pc, R(10))); // R(10) is $a0
// "M" // "M"
INSTPAT("0000001 ????? ????? 000 ????? 01100 11", mul, R, INSTPAT("0000001 ????? ????? 000 ????? 01100 11", mul , R, R(rd) = src1 * src2);
R(rd) = src1 * src2); INSTPAT("0000001 ????? ????? 001 ????? 01100 11", mulh , R, R(rd) = (int64_t)(sword_t)src1 * (sword_t)src2 >> 32);
INSTPAT("0000001 ????? ????? 001 ????? 01100 11", mulh, R, INSTPAT("0000001 ????? ????? 010 ????? 01100 11", mulhsu , R, R(rd) = (int64_t)(sword_t)src1 * (uint64_t)src2 >> 32);
R(rd) = (int64_t)(sword_t)src1 * (sword_t)src2 >> 32); INSTPAT("0000001 ????? ????? 011 ????? 01100 11", mulhu , R, R(rd) = (uint64_t)src1 * (uint64_t)src2 >> 32);
INSTPAT("0000001 ????? ????? 010 ????? 01100 11", mulhsu, R, INSTPAT("0000001 ????? ????? 100 ????? 01100 11", div , R, R(rd) = (sword_t)src1 / (sword_t)src2);
R(rd) = (int64_t)(sword_t)src1 * (uint64_t)src2 >> 32); INSTPAT("0000001 ????? ????? 101 ????? 01100 11", divu , R, R(rd) = src1 / src2);
INSTPAT("0000001 ????? ????? 011 ????? 01100 11", mulhu, R, INSTPAT("0000001 ????? ????? 110 ????? 01100 11", rem , R, R(rd) = (sword_t)src1 % (sword_t)src2);
R(rd) = (uint64_t)src1 * (uint64_t)src2 >> 32); INSTPAT("0000001 ????? ????? 111 ????? 01100 11", remu , R, R(rd) = src1 % src2);
INSTPAT("0000001 ????? ????? 100 ????? 01100 11", div, R,
R(rd) = (sword_t)src1 / (sword_t)src2);
INSTPAT("0000001 ????? ????? 101 ????? 01100 11", divu, R,
R(rd) = src1 / src2);
INSTPAT("0000001 ????? ????? 110 ????? 01100 11", rem, R,
R(rd) = (sword_t)src1 % (sword_t)src2);
INSTPAT("0000001 ????? ????? 111 ????? 01100 11", remu, R,
R(rd) = src1 % src2);
// "Previledge" INSTPAT("??????? ????? ????? ??? ????? ????? ??", inv , N, INV(s->pc));
// -- CSR instructions
// src2: R(read register)
// src1: R(write source)
// imm: write data()
INSTPAT(
"??????? ????? ????? 001 ????? 11100 11", csrrw, CSR, do {
R(rd) = read_csr(cpu.csr, src2);
write_csr(cpu.csr, src2, src1);
} while (0););
INSTPAT(
"??????? ????? ????? 010 ????? 11100 11", csrrs, CSR, do {
R(rd) = read_csr(cpu.csr, src2);
set_csr_bits(cpu.csr, src2, src1);
} while (0););
INSTPAT(
"??????? ????? ????? 011 ????? 11100 11", csrrc, CSR, do {
R(rd) = read_csr(cpu.csr, src2);
clear_csr_bits(cpu.csr, src2, src1);
} while (0););
INSTPAT(
"??????? ????? ????? 101 ????? 11100 11", csrrwi, CSRI, do {
R(rd) = read_csr(cpu.csr, src2);
write_csr(cpu.csr, src2, imm);
} while (0););
INSTPAT(
"??????? ????? ????? 110 ????? 11100 11", csrrsi, CSRI, do {
R(rd) = read_csr(cpu.csr, src2);
set_csr_bits(cpu.csr, src2, imm);
} while (0););
INSTPAT(
"??????? ????? ????? 111 ????? 11100 11", csrrci, CSRI, do {
R(rd) = read_csr(cpu.csr, src2);
clear_csr_bits(cpu.csr, src2, imm);
} while (0););
// -- Machine level
INSTPAT("0000000 00000 00000 000 00000 11100 11", ecall, N,
s->dnpc = isa_raise_intr(CauseEnvironmentCallFromMMode, cpu.pc));
INSTPAT("0011000 00010 00000 000 00000 11100 11", mret, N,
s->dnpc = read_csr(cpu.csr, MEPC));
INSTPAT("??????? ????? ????? ??? ????? ????? ??", inv, N, INV(s->pc));
INSTPAT_END(); INSTPAT_END();
R(0) = 0; // reset $zero to 0 R(0) = 0; // reset $zero to 0

View file

@ -1,29 +0,0 @@
#ifndef __NEMU_CSR_H__
#define __NEMU_CSR_H__
#include <isa-def.h>
#include <types.h>
#define MSTATUS 0x300
#define MISA 0x301
#define MIE 0x304
#define MTVEC 0x305
#define MEPC 0x341
#define MCAUSE 0x342
enum { CauseEnvironmentCallFromMMode = 11 };
typedef uint16_t csr_addr_t;
void init_csr(csr_t csr);
/* macro for setting and clearing csr bits */
#define set_csr_bits(csr, reg, mask) \
write_csr(csr, reg, read_csr(csr, reg) | (mask))
#define clear_csr_bits(csr, reg, mask) \
write_csr(csr, reg, read_csr(csr, reg) & ~(mask))
void write_csr(csr_t csr, csr_addr_t csrnum, word_t value);
word_t read_csr(csr_t csr, csr_addr_t csrnum);
#endif // __NEMU_CSR_H__

View file

@ -25,49 +25,39 @@
*/ */
unsigned char unsigned char isa_logo[] = {
isa_logo 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x20, 0x20, 0x20, 0x20,
[] = 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
{ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x5f, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x20, 0x20, 0x20, 0x5f, 0x5f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x5f, 0x20, 0x20, 0x28, 0x5f, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x5c, 0x2f, 0x20, 0x20, 0x7c, 0x20,
0x20, 0x20, 0x20, 0x20, 0x5f, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x28, 0x5f, 0x29, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x0a, 0x20, 0x20, 0x5f, 0x20, 0x5f, 0x5f, 0x20, 0x5f, 0x20, 0x5f,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x5f, 0x5f, 0x20, 0x5f, 0x5f, 0x5f, 0x5f,
0x20, 0x20, 0x5c, 0x2f, 0x20, 0x20, 0x7c, 0x20, 0x20, 0x20, 0x5f, 0x5f, 0x5f, 0x5f, 0x20, 0x20, 0x20, 0x5f, 0x5f, 0x20, 0x7c, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5c, 0x20, 0x20, 0x2f, 0x20, 0x7c, 0x20, 0x5f, 0x5f, 0x20, 0x5f, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x20, 0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x20, 0x20, 0x20, 0x5f, 0x20,
0x7c, 0x20, 0x7c, 0x0a, 0x20, 0x20, 0x5f, 0x20, 0x5f, 0x5f, 0x20, 0x5f, 0x5f, 0x20, 0x5f, 0x7c, 0x20, 0x7c, 0x0a, 0x20, 0x7c, 0x20,
0x20, 0x5f, 0x20, 0x5f, 0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x5f, 0x27, 0x5f, 0x5f, 0x7c, 0x20, 0x2f, 0x20, 0x5f, 0x5f, 0x7c, 0x2f, 0x20,
0x5f, 0x20, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x7c, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5c, 0x20, 0x5c,
0x20, 0x20, 0x20, 0x5f, 0x5f, 0x20, 0x7c, 0x20, 0x5c, 0x20, 0x20, 0x2f, 0x20, 0x2f, 0x20, 0x7c, 0x20, 0x7c, 0x5c, 0x2f, 0x7c, 0x20,
0x20, 0x2f, 0x20, 0x7c, 0x20, 0x5f, 0x5f, 0x20, 0x5f, 0x20, 0x7c, 0x2f, 0x20, 0x5f, 0x60, 0x20, 0x7c, 0x20, 0x27, 0x5f, 0x20, 0x5c,
0x5f, 0x20, 0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x20, 0x20, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x2f, 0x20, 0x5f, 0x60, 0x20,
0x5f, 0x20, 0x20, 0x5f, 0x5f, 0x20, 0x5f, 0x7c, 0x20, 0x7c, 0x7c, 0x20, 0x7c, 0x0a, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x20, 0x7c, 0x20,
0x0a, 0x20, 0x7c, 0x20, 0x27, 0x5f, 0x5f, 0x7c, 0x20, 0x2f, 0x5c, 0x5f, 0x5f, 0x20, 0x5c, 0x20, 0x28, 0x5f, 0x5f, 0x20, 0x20, 0x20,
0x20, 0x5f, 0x5f, 0x7c, 0x2f, 0x20, 0x5f, 0x5f, 0x7c, 0x5f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5c, 0x20, 0x56, 0x20, 0x2f, 0x20, 0x20,
0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5c, 0x20, 0x5c, 0x20, 0x2f, 0x7c, 0x20, 0x7c, 0x20, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x28, 0x5f, 0x7c,
0x20, 0x2f, 0x20, 0x7c, 0x20, 0x7c, 0x5c, 0x2f, 0x7c, 0x20, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x5f, 0x7c,
0x7c, 0x2f, 0x20, 0x5f, 0x60, 0x20, 0x7c, 0x20, 0x27, 0x5f, 0x20, 0x7c, 0x20, 0x28, 0x5f, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x0a, 0x20,
0x20, 0x5c, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x2f, 0x7c, 0x5f, 0x7c, 0x20, 0x20, 0x7c, 0x5f, 0x7c, 0x5f, 0x5f, 0x5f, 0x2f,
0x20, 0x5f, 0x60, 0x20, 0x7c, 0x20, 0x7c, 0x0a, 0x20, 0x7c, 0x5c, 0x5f, 0x5f, 0x5f, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x7c, 0x20, 0x20, 0x7c, 0x20, 0x5c, 0x5f, 0x5f, 0x20, 0x20, 0x5c, 0x5f, 0x2f, 0x20, 0x20, 0x20, 0x7c, 0x5f, 0x7c, 0x20, 0x20,
0x5c, 0x20, 0x28, 0x5f, 0x5f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7c, 0x5f, 0x7c, 0x5c, 0x5f, 0x5f, 0x2c, 0x5f, 0x7c, 0x5f, 0x7c, 0x20,
0x20, 0x20, 0x20, 0x5c, 0x20, 0x56, 0x20, 0x2f, 0x20, 0x20, 0x7c, 0x5f, 0x7c, 0x5c, 0x5f, 0x5f, 0x2c, 0x5f, 0x7c, 0x5c, 0x5f, 0x5f,
0x7c, 0x20, 0x7c, 0x20, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x28, 0x2c, 0x5f, 0x7c, 0x5f, 0x7c, 0x0a, '\0' /* Termination Character is indispensable! */
0x5f, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c, 0x20, 0x7c,
0x20, 0x7c, 0x5f, 0x7c, 0x20, 0x7c, 0x20, 0x28, 0x5f, 0x7c,
0x20, 0x7c, 0x20, 0x7c, 0x0a, 0x20, 0x7c, 0x5f, 0x7c, 0x20,
0x20, 0x7c, 0x5f, 0x7c, 0x5f, 0x5f, 0x5f, 0x2f, 0x5c, 0x5f,
0x5f, 0x5f, 0x7c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x5c, 0x5f, 0x2f, 0x20, 0x20, 0x20, 0x7c, 0x5f, 0x7c,
0x20, 0x20, 0x7c, 0x5f, 0x7c, 0x5c, 0x5f, 0x5f, 0x2c, 0x5f,
0x7c, 0x5f, 0x7c, 0x20, 0x7c, 0x5f, 0x7c, 0x5c, 0x5f, 0x5f,
0x2c, 0x5f, 0x7c, 0x5c, 0x5f, 0x5f, 0x2c, 0x5f, 0x7c, 0x5f,
0x7c, 0x0a, '\0' /* Termination Character is indispensable! */
}; };

View file

@ -13,21 +13,20 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
***************************************************************************************/ ***************************************************************************************/
#include "local-include/reg.h"
#include "csr.h"
#include "macro.h"
#include <errno.h>
#include <gdbstub.h>
#include <isa.h> #include <isa.h>
#include "local-include/reg.h"
#include "macro.h"
const char *regs[] = {"$0", "ra", "sp", "gp", "tp", "t0", "t1", "t2", const char *regs[] = {
"s0", "s1", "a0", "a1", "a2", "a3", "a4", "a5", "$0", "ra", "sp", "gp", "tp", "t0", "t1", "t2",
"a6", "a7", "s2", "s3", "s4", "s5", "s6", "s7", "s0", "s1", "a0", "a1", "a2", "a3", "a4", "a5",
"s8", "s9", "s10", "s11", "t3", "t4", "t5", "t6"}; "a6", "a7", "s2", "s3", "s4", "s5", "s6", "s7",
"s8", "s9", "s10", "s11", "t3", "t4", "t5", "t6"
};
void isa_reg_display() { void isa_reg_display() {
int colomn_per_row = 4; int colomn_per_row = 4;
for (int i = 0; i < ARRLEN(regs); i++) { for(int i = 0; i < ARRLEN(regs); i++) {
printf("\e[1;34m%3s\e[0m: " FMT_PADDR, reg_name(i), gpr(i)); printf("\e[1;34m%3s\e[0m: " FMT_PADDR, reg_name(i), gpr(i));
if (i % colomn_per_row == 3) if (i % colomn_per_row == 3)
putchar('\n'); putchar('\n');
@ -50,33 +49,3 @@ word_t isa_reg_str2val(const char *s, bool *success) {
return gpr(i); return gpr(i);
} }
int isa_read_reg(void *args, int regno, size_t *reg_value) {
if (regno > 32) {
return EFAULT;
}
if (regno == 32) {
*reg_value = cpu.pc;
} else {
*reg_value = cpu.gpr[regno];
}
return 0;
}
int isa_write_reg(void *args, int regno, size_t data) {
if (regno > 32) {
return EFAULT;
}
if (regno == 32) {
cpu.pc = data;
} else {
cpu.gpr[regno] = data;
}
return 0;
}
__EXPORT arch_info_t isa_arch_info = {.reg_num = 32,
.reg_byte = MUXDEF(CONFIG_RV64, 8, 4),
.target_desc = TARGET_RV32};

View file

@ -13,14 +13,16 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
***************************************************************************************/ ***************************************************************************************/
#include <csr.h>
#include <isa.h> #include <isa.h>
word_t isa_raise_intr(word_t NO, vaddr_t epc) { word_t isa_raise_intr(word_t NO, vaddr_t epc) {
write_csr(cpu.csr, MEPC, epc); /* TODO: Trigger an interrupt/exception with ``NO''.
write_csr(cpu.csr, MCAUSE, NO); * Then return the address of the interrupt/exception vector.
*/
return read_csr(cpu.csr, MTVEC); return 0;
} }
word_t isa_query_intr() { return INTR_EMPTY; } word_t isa_query_intr() {
return INTR_EMPTY;
}

1
nemu/src/isa/riscv64 Symbolic link
View file

@ -0,0 +1 @@
riscv32

View file

@ -15,13 +15,12 @@
#include "common.h" #include "common.h"
#include "debug.h" #include "debug.h"
#include "utils.h"
#include <device/mmio.h>
#include <isa.h>
#include <memory/host.h> #include <memory/host.h>
#include <memory/paddr.h> #include <memory/paddr.h>
#include <device/mmio.h>
#include <isa.h>
#if defined(CONFIG_PMEM_MALLOC) #if defined(CONFIG_PMEM_MALLOC)
static uint8_t *pmem = NULL; static uint8_t *pmem = NULL;
#else // CONFIG_PMEM_GARRAY #else // CONFIG_PMEM_GARRAY
static uint8_t pmem[CONFIG_MSIZE] PG_ALIGN = {}; static uint8_t pmem[CONFIG_MSIZE] PG_ALIGN = {};
@ -32,7 +31,7 @@ static word_t mtrace_end[CONFIG_MTRACE_RANGE_MAX] = {0};
static int range_count = 0; static int range_count = 0;
#endif #endif
uint8_t *guest_to_host(paddr_t paddr) { return pmem + paddr - CONFIG_MBASE; } uint8_t* guest_to_host(paddr_t paddr) { return pmem + paddr - CONFIG_MBASE; }
paddr_t host_to_guest(uint8_t *haddr) { return haddr - pmem + CONFIG_MBASE; } paddr_t host_to_guest(uint8_t *haddr) { return haddr - pmem + CONFIG_MBASE; }
static word_t pmem_read(paddr_t addr, int len) { static word_t pmem_read(paddr_t addr, int len) {
@ -45,29 +44,22 @@ static void pmem_write(paddr_t addr, int len, word_t data) {
} }
static void out_of_bound(paddr_t addr) { static void out_of_bound(paddr_t addr) {
#ifdef CONFIG_TARGET_SHARE panic("address = " FMT_PADDR " is out of bound of pmem [" FMT_PADDR ", " FMT_PADDR "] at pc = " FMT_WORD,
// Do not panic when used as a library. Give an error in log addr, PMEM_LEFT, PMEM_RIGHT, cpu.pc);
Error("Out of bound at 0x%x", addr);
#else
panic("address = " FMT_PADDR " is out of bound of pmem [" FMT_PADDR
", " FMT_PADDR "] at pc = " FMT_WORD,
addr, PMEM_LEFT, PMEM_RIGHT, cpu.pc);
#endif
} }
#ifdef CONFIG_MTRACE #ifdef CONFIG_MTRACE
static void mtrace_print(char type, word_t addr, int len, word_t data) { static void mtrace_print(char type, word_t addr, int len, word_t data) {
for (int i = 0; i < range_count; i++) for (int i = 0; i < range_count; i++)
if (addr <= mtrace_end[i] && addr >= mtrace_start[i]) { if (addr <= mtrace_end[i] && addr >= mtrace_start[i] ) {
Trace("PC=" FMT_PADDR " Mem %c" FMT_PADDR " %d D " FMT_PADDR, cpu.pc, Trace("Mem %c " FMT_PADDR "%d D " FMT_PADDR, type, addr, len, data);
type, addr, len, data);
break; break;
} }
} }
#endif #endif
void init_mem() { void init_mem() {
#if defined(CONFIG_PMEM_MALLOC) #if defined(CONFIG_PMEM_MALLOC)
pmem = malloc(CONFIG_MSIZE); pmem = malloc(CONFIG_MSIZE);
assert(pmem); assert(pmem);
#endif #endif
@ -75,17 +67,15 @@ void init_mem() {
char range[sizeof(CONFIG_MTRACE_RANGE)] = CONFIG_MTRACE_RANGE; char range[sizeof(CONFIG_MTRACE_RANGE)] = CONFIG_MTRACE_RANGE;
char *saveptr, *ptr; char *saveptr, *ptr;
ptr = strtok_r(range, ",", &saveptr); ptr = strtok_r(range, ",", &saveptr);
for (range_count = 0; range_count < CONFIG_MTRACE_RANGE_MAX;) { for (range_count = 0; range_count < CONFIG_MTRACE_RANGE_MAX; ) {
word_t start, end; word_t start, end;
Assert(sscanf(ptr, FMT_PADDR "-" FMT_PADDR, &start, &end) == 2, Assert(sscanf(ptr, FMT_PADDR "-" FMT_PADDR, &start, &end) == 2, "Config option MTRACE_RANGE has wrong format");
"Config option MTRACE_RANGE has wrong format");
mtrace_start[range_count] = start; mtrace_start[range_count] = start;
mtrace_end[range_count] = end; mtrace_end[range_count] = end;
range_count++; range_count++;
ptr = strtok_r(NULL, ",", &saveptr); ptr = strtok_r(NULL, ",", &saveptr);
if (!ptr) if (!ptr) break;
break;
} }
Trace("MTRACE ranges: "); Trace("MTRACE ranges: ");
for (int i = 0; i < range_count; i++) { for (int i = 0; i < range_count; i++) {
@ -93,17 +83,13 @@ void init_mem() {
} }
#endif #endif
IFDEF(CONFIG_MEM_RANDOM, memset(pmem, rand(), CONFIG_MSIZE)); IFDEF(CONFIG_MEM_RANDOM, memset(pmem, rand(), CONFIG_MSIZE));
Log("physical memory area [" FMT_PADDR ", " FMT_PADDR "]", PMEM_LEFT, Log("physical memory area [" FMT_PADDR ", " FMT_PADDR "]", PMEM_LEFT, PMEM_RIGHT);
PMEM_RIGHT);
} }
word_t paddr_read(paddr_t addr, int len) { word_t paddr_read(paddr_t addr, int len) {
word_t result = 0; word_t result = 0;
if (likely(in_pmem(addr))) { if (likely(in_pmem(addr))) { result = pmem_read(addr, len); goto mtrace;}
result = pmem_read(addr, len); IFDEF(CONFIG_DEVICE, result = mmio_read(addr, len); goto mtrace)
goto mtrace;
}
IFDEF(CONFIG_DEVICE, result = mmio_read(addr, len); goto mtrace;)
out_of_bound(addr); out_of_bound(addr);
mtrace: mtrace:
@ -114,10 +100,7 @@ mtrace:
void paddr_write(paddr_t addr, int len, word_t data) { void paddr_write(paddr_t addr, int len, word_t data) {
IFDEF(CONFIG_MTRACE, mtrace_print('W', addr, len, data)); IFDEF(CONFIG_MTRACE, mtrace_print('W', addr, len, data));
if (likely(in_pmem(addr))) { if (likely(in_pmem(addr))) { pmem_write(addr, len, data); return; }
pmem_write(addr, len, data);
return;
}
IFDEF(CONFIG_DEVICE, mmio_write(addr, len, data); return); IFDEF(CONFIG_DEVICE, mmio_write(addr, len, data); return);
out_of_bound(addr); out_of_bound(addr);
} }

View file

@ -1,4 +0,0 @@
DIRS-y += src/monitor
CXXSRC += src/monitor/gdbstub.cc
LIBS += -lgdbstub

View file

@ -1,170 +0,0 @@
#include "types.h"
#include "utils.h"
#include <vector>
extern "C" {
#include <cpu/cpu.h>
#include <debug.h>
#include <errno.h>
#include <gdbstub.h>
#include <isa.h>
#include <memory/paddr.h>
#include <stddef.h>
#include <stdlib.h>
typedef struct {
std::vector<breakpoint_t> *bp;
bool halt;
} DbgState;
__EXPORT size_t nemu_dbg_state_size = sizeof(DbgState);
__EXPORT bool nemu_do_difftest = true;
__EXPORT arch_info_t nemu_isa_arch_info = isa_arch_info;
__EXPORT int nemu_read_mem(void *args, size_t addr, size_t len, void *val) {
if (!in_pmem(addr))
return EINVAL;
memcpy(val, guest_to_host(addr), len);
return 0;
}
__EXPORT int nemu_write_mem(void *args, size_t addr, size_t len, void *val) {
if (!in_pmem(addr))
return EINVAL;
memcpy(guest_to_host(addr), val, len);
return 0;
}
static void nemu_is_stopped(gdb_action_t *act, breakpoint_t *stopped_at) {
switch (nemu_state.state) {
case NEMU_RUNNING:
nemu_state.state = NEMU_STOP;
if (stopped_at == NULL) {
act->reason = gdb_action_t::ACT_NONE;
} else {
switch (stopped_at->type) {
case BP_SOFTWARE:
act->reason = gdb_action_t::ACT_BREAKPOINT;
break;
case BP_ACCESS:
act->reason = gdb_action_t::ACT_WATCH;
break;
case BP_WRITE:
act->reason = gdb_action_t::ACT_WWATCH;
break;
case BP_READ:
act->reason = gdb_action_t::ACT_RWATCH;
break;
}
act->data = stopped_at->addr;
}
break;
case NEMU_GDB_INTERRUPT:
act->reason = gdb_action_t::ACT_BREAKPOINT;
act->data = cpu.pc;
break;
default:
act->reason = gdb_action_t::ACT_SHUTDOWN;
act->data = nemu_state.halt_ret;
}
}
__EXPORT void nemu_cont(void *args, gdb_action_t *res) {
DbgState *dbg_state = (DbgState *)args;
breakpoint_t *stopped_at =
cpu_exec_with_bp(-1, dbg_state->bp->data(), dbg_state->bp->size());
nemu_is_stopped(res, stopped_at);
}
__EXPORT void nemu_stepi(void *args, gdb_action_t *res) {
DbgState *dbg_state = (DbgState *)args;
breakpoint_t *stopped_at =
cpu_exec_with_bp(1, dbg_state->bp->data(), dbg_state->bp->size());
nemu_is_stopped(res, stopped_at);
}
__EXPORT bool nemu_set_bp(void *args, size_t addr, bp_type_t type) {
DbgState *dbg_state = (DbgState *)args;
for (const auto &bp : *dbg_state->bp) {
if (bp.addr == addr && bp.type == type) {
return true;
}
}
dbg_state->bp->push_back({.addr = addr, .type = type});
return true;
}
__EXPORT bool nemu_del_bp(void *args, size_t addr, bp_type_t type) {
DbgState *dbg_state = (DbgState *)args;
for (auto it = dbg_state->bp->begin(); it != dbg_state->bp->end(); it++) {
if (it->addr == addr && it->type == type) {
std::swap(*it, *dbg_state->bp->rbegin());
dbg_state->bp->pop_back();
return true;
}
}
return false;
}
__EXPORT void nemu_on_interrupt(void *args) {
nemu_state.state = NEMU_GDB_INTERRUPT;
}
__EXPORT int nemu_read_reg(void *args, int regno, size_t *data) {
return isa_read_reg(args, regno, data);
}
__EXPORT int nemu_write_reg(void *args, int regno, size_t data) {
return isa_write_reg(args, regno, data);
}
static struct target_ops nemu_gdbstub_ops = {.cont = nemu_cont,
.stepi = nemu_stepi,
.read_reg = nemu_read_reg,
.write_reg = nemu_write_reg,
.read_mem = nemu_read_mem,
.write_mem = nemu_write_mem,
.set_bp = nemu_set_bp,
.del_bp = nemu_del_bp,
.on_interrupt = nemu_on_interrupt,
.monitor = NULL};
static DbgState *pdbg;
static gdbstub_t gdbstub_priv;
const char SOCKET_ADDR[] = "/tmp/gdbstub-nemu.sock";
static void init_remote_gdbstub(void *args) {
DbgState *dbg_state = (DbgState *)args;
pdbg = (DbgState *)args;
dbg_state->bp = new std::vector<breakpoint_t>();
dbg_state->halt = 0;
Assert(dbg_state->bp != NULL, "Failed to allocate breakpoint");
}
__EXPORT void nemu_init(void *args) {
init_remote_gdbstub(args);
void init_rand();
void init_mem();
IFDEF(CONFIG_DEVICE, void init_device());
init_rand();
init_mem();
IFDEF(CONFIG_DEVICE, init_device());
/* Perform ISA dependent initialization. */
init_isa();
}
int gdbstub_loop() {
if (!gdbstub_init(&gdbstub_priv, &nemu_gdbstub_ops,
(arch_info_t)isa_arch_info, NULL, SOCKET_ADDR)) {
return EINVAL;
}
printf("Waiting for gdb connection at %s", SOCKET_ADDR);
bool success = gdbstub_run(&gdbstub_priv, pdbg);
// gdbstub_close(&gdbstub_priv);
return !success;
}
}

View file

@ -13,12 +13,8 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
***************************************************************************************/ ***************************************************************************************/
#include <cpu/cpu.h>
#include <errno.h>
#include <isa.h> #include <isa.h>
#include <memory/paddr.h> #include <memory/paddr.h>
#include <nemu.h>
#include <strings.h>
#include <utils.h> #include <utils.h>
void init_rand(); void init_rand();
@ -26,77 +22,38 @@ void init_log(const char *log_file);
void init_mem(); void init_mem();
void init_difftest(char *ref_so_file, long img_size, int port); void init_difftest(char *ref_so_file, long img_size, int port);
void init_device(); void init_device();
void init_sdb();
void init_disasm(const char *triple); void init_disasm(const char *triple);
char *log_file = NULL;
char *elf_file = NULL;
char *img_file = NULL;
bool enable_gdbstub = false;
static void welcome() { static void welcome() {
Log("Trace: %s", MUXDEF(CONFIG_TRACE, ANSI_FMT("ON", ANSI_FG_GREEN), Log("Trace: %s", MUXDEF(CONFIG_TRACE, ANSI_FMT("ON", ANSI_FG_GREEN), ANSI_FMT("OFF", ANSI_FG_RED)));
ANSI_FMT("OFF", ANSI_FG_RED))); IFDEF(CONFIG_TRACE, Log("If trace is enabled, a log file will be generated "
IFDEF(CONFIG_TRACE, "to record the trace. This may lead to a large log file. "
Log("If trace is enabled, a log file will be generated " "If it is not necessary, you can disable it in menuconfig"));
"to record the trace. This may lead to a large log file. "
"If it is not necessary, you can disable it in menuconfig"));
Log("Build time: %s, %s", __TIME__, __DATE__); Log("Build time: %s, %s", __TIME__, __DATE__);
printf("Welcome to %s-NEMU!\n", printf("Welcome to %s-NEMU!\n", ANSI_FMT(str(__GUEST_ISA__), ANSI_FG_YELLOW ANSI_BG_RED));
ANSI_FMT(str(__GUEST_ISA__), ANSI_FG_YELLOW ANSI_BG_RED));
printf("For help, type \"help\"\n"); printf("For help, type \"help\"\n");
} }
#ifndef CONFIG_TARGET_AM #ifndef CONFIG_TARGET_AM
#include <getopt.h> #include <getopt.h>
void sdb_set_batch_mode();
static char *log_file = NULL;
static char *elf_file = NULL;
static char *diff_so_file = NULL;
static char *img_file = NULL;
static int difftest_port = 1234;
static long load_img() { static long load_img() {
FILE *fp = NULL;
size_t img_filename_len = strlen(img_file);
if (img_file == NULL) { if (img_file == NULL) {
Log("No image is given. Use the default build-in image."); Log("No image is given. Use the default build-in image.");
return 4096; // built-in image size return 4096; // built-in image size
} }
// Image file is searched from paths in environment variable NEMU_IMAGES_PATH if it's a relative path FILE *fp = fopen(img_file, "rb");
if (img_file[0] != '/') { Assert(fp, "Can not open '%s'", img_file);
char *search_paths = getenv("NEMU_IMAGES_PATH");
if (search_paths == NULL)
search_paths = "./";
search_paths = strdup(search_paths);
Trace("NEMU_IMAGES_PATH=%s", search_paths);
char *paths_end = strchr(search_paths, '\0');
char *p_start = search_paths;
do {
char *p = strchr(p_start, ':');
if (p != NULL)
*p = '\0';
else
p = paths_end;
char *file_path = malloc(p - p_start + img_filename_len + 2);
strcpy(file_path, p_start);
strcat(file_path, "/");
strcat(file_path, img_file);
fp = fopen(file_path, "rb");
free(file_path);
if (fp) {
Log("Found '%s' in '%s'", img_file, p_start);
break;
}
Assert(fp != NULL || errno == ENOENT, "Cannot open '%s'", img_file);
p_start = p + 1;
} while (p_start < paths_end);
free(search_paths);
Assert(fp, "Cannot find '%s'", img_file);
} else {
fp = fopen(img_file, "rb");
Assert(fp, "Cannot open '%s'", img_file);
}
fseek(fp, 0, SEEK_END); fseek(fp, 0, SEEK_END);
long size = ftell(fp); long size = ftell(fp);
@ -113,54 +70,69 @@ static long load_img() {
static int parse_args(int argc, char *argv[]) { static int parse_args(int argc, char *argv[]) {
const struct option table[] = { const struct option table[] = {
{"batch", no_argument, NULL, 'b'}, {"log", required_argument, NULL, 'l'}, {"batch" , no_argument , NULL, 'b'},
{"debug", no_argument, NULL, 'g'}, {"elf", required_argument, NULL, 'f'}, {"log" , required_argument, NULL, 'l'},
{"help", no_argument, NULL, 'h'}, {0, 0, NULL, 0}, {"diff" , required_argument, NULL, 'd'},
{"port" , required_argument, NULL, 'p'},
{"elf" , required_argument, NULL, 'f'},
{"help" , no_argument , NULL, 'h'},
{0 , 0 , NULL, 0 },
}; };
int o; int o;
while ((o = getopt_long(argc, argv, "-bhl:d:p:", table, NULL)) != -1) { while ( (o = getopt_long(argc, argv, "-bhl:d:p:", table, NULL)) != -1) {
switch (o) { switch (o) {
case 'l': case 'b': sdb_set_batch_mode(); break;
log_file = optarg; case 'p': sscanf(optarg, "%d", &difftest_port); break;
break; case 'l': log_file = optarg; break;
case 'f': case 'd': diff_so_file = optarg; break;
elf_file = optarg; case 'f': elf_file = optarg; break;
break; case 1: img_file = optarg; return 0;
case 'g': default:
enable_gdbstub = true; printf("Usage: %s [OPTION...] IMAGE [args]\n\n", argv[0]);
break; printf("\t-b,--batch run with batch mode\n");
case 1: printf("\t-l,--log=FILE output log to FILE\n");
img_file = optarg; printf("\t-d,--diff=REF_SO run DiffTest with reference REF_SO\n");
return 0; printf("\t-p,--port=PORT run DiffTest with port PORT\n");
default: printf("\t-f,--elf=FILE elf file with debug info\n");
printf("Usage: %s [OPTION...] IMAGE [args]\n\n", argv[0]); printf("\n");
printf("\t-b,--batch run with batch mode\n"); exit(0);
printf("\t-g,--debug enable gdb remote server\n");
printf("\t-l,--log=FILE output log to FILE\n");
printf("\t-f,--elf=FILE elf file with debug info\n");
printf("\n");
exit(0);
} }
} }
return 0; return 0;
} }
void init_monitor(int argc, char *argv[]) { void init_monitor(int argc, char *argv[]) {
/* Perform some global initialization. */
/* Parse arguments. */ /* Parse arguments. */
parse_args(argc, argv); parse_args(argc, argv);
void init_log(const char *log_file); /* Set random seed. */
init_rand();
/* Open the log file. */ /* Open the log file. */
init_log(log_file); init_log(log_file);
/* Perform some global initialization. */ /* Initialize memory. */
nemu_init(malloc(nemu_dbg_state_size)); init_mem();
/* Initialize devices. */
IFDEF(CONFIG_DEVICE, init_device());
/* Perform ISA dependent initialization. */
init_isa();
/* Load the image to memory. This will overwrite the built-in image. */ /* Load the image to memory. This will overwrite the built-in image. */
load_img(); long img_size = load_img();
/* Initialize differential testing. */
init_difftest(diff_so_file, img_size, difftest_port);
/* Initialize the simple debugger. */
init_sdb();
// printf("elf_file: %s\n", elf_file); // printf("elf_file: %s\n", elf_file);
if (elf_file != NULL) { if(elf_file != NULL) {
#ifdef CONFIG_FTRACE #ifdef CONFIG_FTRACE
void init_elf(const char *path); void init_elf(const char *path);
init_elf(elf_file); init_elf(elf_file);
@ -170,13 +142,14 @@ void init_monitor(int argc, char *argv[]) {
} }
#ifndef CONFIG_ISA_loongarch32r #ifndef CONFIG_ISA_loongarch32r
IFDEF(CONFIG_ITRACE, IFDEF(CONFIG_ITRACE, init_disasm(
init_disasm( MUXDEF(CONFIG_ISA_x86, "i686",
MUXDEF(CONFIG_ISA_x86, "i686", MUXDEF(CONFIG_ISA_mips32, "mipsel",
MUXDEF(CONFIG_ISA_mips32, "mipsel", MUXDEF(CONFIG_ISA_riscv,
MUXDEF(CONFIG_ISA_riscv, MUXDEF(CONFIG_RV64, "riscv64",
MUXDEF(CONFIG_RV64, "riscv64", "riscv32"), "riscv32"),
"bad"))) "-pc-linux-gnu")); "bad"))) "-pc-linux-gnu"
));
#endif #endif
/* Display welcome message. */ /* Display welcome message. */

View file

@ -1,10 +1,8 @@
%{ %{
#include <types.h> #include <isa.h>
#include <stdbool.h> #include <addrexp.h>
#include "addrexp.h"
static bool success = false; static bool success = false;
void yyerror(word_t *result, const char *err); void yyerror(word_t *result, const char *err);
word_t reg_str2val(const char *name, bool*);
%} %}
%option noyywrap %option noyywrap
@ -13,7 +11,7 @@
0[xX][0-9a-fA-F]+ { yylval = strtoul(yytext, NULL, 16); return HEX_NUMBER; } 0[xX][0-9a-fA-F]+ { yylval = strtoul(yytext, NULL, 16); return HEX_NUMBER; }
[0-9]+ { yylval = strtoul(yytext, NULL, 10); return NUMBER; } [0-9]+ { yylval = strtoul(yytext, NULL, 10); return NUMBER; }
$[asgprt$][0-9pa][0-9]? { $[asgprt$][0-9pa][0-9]? {
yylval = reg_str2val(yytext + 1, &success); yylval = isa_reg_str2val(yytext + 1, &success);
if(!success) { if(!success) {
yyerror(NULL, "Failed to convert reg to value"); yyerror(NULL, "Failed to convert reg to value");
return YYerror; return YYerror;

View file

@ -1,17 +1,19 @@
%code requires { %code requires {
#include <types.h> #include <common.h>
#include <memory/vaddr.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
extern int yylex(void); extern int yylex(void);
} }
%{ %{
#include <types.h> #include <common.h>
#include <utils.h>
#include <isa.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
void yyerror(word_t *result, const char *err) { void yyerror(word_t *result, const char *err) {
fprintf(stderr, "%s", err); Error("%s", err);
} }
int pmem_read(int raddr);
%} %}
%token NUMBER HEX_NUMBER %token NUMBER HEX_NUMBER
@ -22,7 +24,6 @@
%parse-param { uint32_t *result } %parse-param { uint32_t *result }
%left '-' '+' %left '-' '+'
%left '*' '/' %left '*' '/'
%expect 68
%% %%
input input
@ -42,13 +43,13 @@ expression
| expression '*' expression { $$ = $1 * $3; } | expression '*' expression { $$ = $1 * $3; }
| expression '/' expression { | expression '/' expression {
if($3 == 0) { if($3 == 0) {
fprintf(stderr, "Error: divide by zero at" FMT_WORD " / " FMT_WORD "\n", $1, $3); fprintf(stderr, "Error: divide by zero at %u / %u\n", $1, $3);
YYABORT; YYABORT;
}; };
$$ = $1 / $3; $$ = $1 / $3;
} }
| '-' number { $$ = -$2; } | '-' number { $$ = -$2; }
| '*' expression { $$ = pmem_read($2); } | '*' expression { $$ = vaddr_read($2, WORD_BYTES); }
| '(' expression ')' { $$ = $2; } | '(' expression ')' { $$ = $2; }
number number

View file

@ -0,0 +1,2 @@
SRCS-y += src/monitor/sdb/addrexp.tag.c src/monitor/sdb/addrexp.yy.c
LFLAGS += -DYY_NO_UNPUT -DYY_NO_INPUT

361
nemu/src/monitor/sdb/sdb.c Normal file
View file

@ -0,0 +1,361 @@
/***************************************************************************************
* Copyright (c) 2014-2022 Zihao Yu, Nanjing University
*
* NEMU is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan
*PSL v2. You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
*KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
*NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*
* See the Mulan PSL v2 for more details.
***************************************************************************************/
#include "sdb.h"
#include "common.h"
#include "sys/types.h"
#include <addrexp.h>
#include <addrexp_lex.h>
#include <cpu/cpu.h>
#include <errno.h>
#include <isa.h>
#include <memory/vaddr.h>
#include <readline/history.h>
#include <readline/readline.h>
#include <stdint.h>
static int is_batch_mode = false;
// command handlers
static int cmd_help(char *args);
static int cmd_c(char *args);
static int cmd_p(char *args);
static int cmd_q(char *args);
static int cmd_w(char *args);
static int cmd_x(char *args);
static int cmd_si(char *args);
static int cmd_info(char *args);
static int cmd_info_r(char *args);
static int cmd_info_w(char *args);
static struct CommandTable {
const char *name;
const char *description;
int (*handler)(char *);
struct CommandTable *subcommand;
int nr_subcommand;
} cmd_info_table[] =
{
{"r", "List all registers and their contents", cmd_info_r, NULL, 0},
{"w", "Status of specified watchpoints", cmd_info_w, NULL, 0},
},
cmd_table[] = {
{"help", "Display information about all supported commands", cmd_help,
NULL, 0},
{"c", "Continue the execution of the program", cmd_c, NULL, 0},
{"p", "Print expression result", cmd_p, NULL, 0},
{"q", "Exit NEMU", cmd_q, NULL, 0},
{"x", "Examine content of physical memory address", cmd_x, NULL, 0},
{"w", "Break when expression is changed", cmd_w, NULL, 0},
{"si", "Execute next [n] program line", cmd_si, NULL, 0},
{"info", "Print information of registers or watchpoints", cmd_info,
cmd_info_table, ARRLEN(cmd_info_table)},
};
#define NR_CMD ARRLEN(cmd_table)
void init_regex();
void init_wp_pool();
/* We use the `readline' library to provide more flexibility to read from stdin.
*/
static char *rl_gets() {
static char *line_read = NULL;
if (line_read) {
free(line_read);
line_read = NULL;
}
line_read = readline("\e[1;34m(nemu)\e[0m ");
if (line_read && *line_read) {
add_history(line_read);
}
return line_read;
}
/* Extract Integer from a string. Can handle hex, binary and decimal numbers.
* Print error if meet any error.
* Return `UINTMAX_MAX` if the string is invalid or number exceed the limit of
* uint.
*/
static word_t parse_uint(const char *arg, bool *success) {
if (arg == NULL) {
puts("Invalid uint argument.");
*success = false;
return 0;
}
int base = 10;
int token_length = strnlen(arg, 34);
if (token_length > 2) {
if (arg[0] == '0' && (arg[1] == 'b' || arg[1] == 'B')) {
base = 2;
arg = arg + 2;
} else if (arg[0] == '0' && (arg[1] == 'x' || arg[1] == 'X')) {
base = 16;
arg = arg + 2;
}
}
char *endptr;
uintmax_t n = strtoumax(arg, &endptr, base);
if (errno == ERANGE || n > WORD_T_MAX) {
printf("%s exceed the limit of uint\n", arg);
*success = false;
return 0;
} else if (arg == endptr) {
puts("Invalid uint argument.");
*success = false;
return 0;
} else if (n > WORD_T_MAX) {
*success = false;
return WORD_T_MAX;
} else {
*success = true;
return n;
}
}
word_t parse_expr(const char *arg, bool *success) {
if (arg == NULL) {
puts("Invalid expr argument.");
*success = false;
return 0;
} else {
word_t res;
yy_scan_string(arg);
*success = !yyparse(&res);
yylex_destroy();
return res;
}
}
static int cmd_c(char *args) {
cpu_exec(-1);
return 0;
}
static int cmd_p(char *args) {
char *arg = strtok(NULL, "");
bool res = false;
word_t result = parse_expr(arg, &res);
if (!res)
goto wrong_usage;
printf("%s: %u\n", arg, result);
return 0;
wrong_usage:
printf("Invalid argument for command p: %s\n", arg);
printf("Usage: p [EXPR: <expr>]\n");
return 0;
}
static int cmd_q(char *args) {
nemu_state.state = NEMU_QUIT;
return -1;
}
/* Single stepping
* <step>: execute <step> step
*/
static int cmd_si(char *args) {
char *arg = strtok(NULL, " ");
if (arg == NULL) {
cpu_exec(1);
} else {
bool res = false;
word_t n = parse_uint(arg, &res);
if (!res)
goto wrong_usage;
cpu_exec(n);
}
return 0;
wrong_usage:
printf("Invalid argument for command si: %s\n", args);
printf("Usage: si [N: uint]\n");
return 0;
}
static int cmd_info_r(char *args) {
isa_reg_display();
return 0;
}
static int cmd_info_w(char *args) {
printf("Not implemented");
return 0;
}
static int cmd_w(char *args) {
char *expr = strtok(NULL, "");
wp_add(expr);
return 0;
}
static int cmd_x(char *args) {
char *arg = strtok(NULL, " ");
bool res = false;
word_t n = parse_uint(arg, &res);
if (!res)
goto wrong_usage;
// No deliminter here, just pass all the remain argument to `parse_expr()`
arg = strtok(NULL, "");
word_t start_addr = parse_expr(arg, &res);
if (!res)
goto wrong_usage;
start_addr = start_addr & ~(WORD_BYTES - 1);
for (vaddr_t vaddr = start_addr; vaddr < start_addr + n; vaddr += WORD_BYTES) {
word_t value = vaddr_read(vaddr, WORD_BYTES);
printf("\e[1;34m" FMT_PADDR "\e[0m"
" " FMT_WORD "\n",
vaddr, value);
}
return 0;
wrong_usage:
printf("Invalid argument for command x: %s\n", arg);
printf("Usage: x [N: uint] [EXPR: <expr>]\n");
return 0;
}
static int cmd_info(char *args) {
char *arg = strtok(NULL, " ");
int i;
if (arg == NULL) {
goto wrong_usage;
return 0;
}
for (i = 0; i < ARRLEN(cmd_info_table); i++) {
if (strcmp(arg, cmd_info_table[i].name) == 0) {
cmd_info_table[i].handler(args);
return 0;
}
}
wrong_usage:
printf("Invalid argument for command info: %s\n", args);
printf("Usage: info [r | w]\n");
return 0;
}
static int cmd_help_print(char *args, struct CommandTable *cur_cmd_table,
int cur_nr_cmd) {
int i;
char *arg = strtok(NULL, " ");
if (arg == NULL) {
return -1;
} else {
for (i = 0; i < cur_nr_cmd; i++) {
if (strcmp(arg, cur_cmd_table[i].name) == 0) {
printf("%s ", cur_cmd_table[i].name);
if (cmd_help_print(arg, cur_cmd_table[i].subcommand,
cur_cmd_table[i].nr_subcommand) == -1) {
printf("-- %s\n", cur_cmd_table[i].description);
}
return 0;
}
}
return -1;
}
}
static int cmd_help(char *args) {
/* extract the first argument */
char *arg = strtok(NULL, " ");
int i;
if (arg == NULL) {
/* no argument given */
for (i = 0; i < NR_CMD; i++) {
printf("%s -- %s\n", cmd_table[i].name, cmd_table[i].description);
}
} else {
for (i = 0; i < NR_CMD; i++) {
if (strcmp(arg, cmd_table[i].name) == 0) {
printf("%s ", cmd_table[i].name);
if (cmd_help_print(args, cmd_table[i].subcommand,
cmd_table[i].nr_subcommand) == -1) {
printf("-- %s\n", cmd_table[i].description);
// Print available subcommands
for (int j = 0; j < cmd_table[i].nr_subcommand; j++) {
struct CommandTable *sub_cmd_table = cmd_table[i].subcommand;
printf(" > %s -- %s\n", sub_cmd_table[j].name,
sub_cmd_table[j].description);
}
}
return 0;
}
}
printf("Unknown command '%s'\n", arg);
}
return 0;
}
void sdb_set_batch_mode() { is_batch_mode = true; }
void sdb_mainloop() {
if (is_batch_mode) {
cmd_c(NULL);
return;
}
for (char *str; (str = rl_gets()) != NULL;) {
char *str_end = str + strlen(str);
/* extract the first token as the command */
char *cmd = strtok(str, " ");
if (cmd == NULL) {
continue;
}
/* treat the remaining string as the arguments,
* which may need further parsing
*/
char *args = cmd + strlen(cmd) + 1;
if (args >= str_end) {
args = NULL;
}
#ifdef CONFIG_DEVICE
extern void sdl_clear_event_queue();
sdl_clear_event_queue();
#endif
int i;
for (i = 0; i < NR_CMD; i++) {
if (strcmp(cmd, cmd_table[i].name) == 0) {
if (cmd_table[i].handler(args) < 0) {
return;
}
break;
}
}
if (i == NR_CMD) {
printf("Unknown command '%s'\n", cmd);
}
}
}
void init_sdb() {
// /* Compile the regular expressions. */
// init_regex();
/* Initialize the watchpoint pool. */
init_wp_pool();
}

View file

@ -0,0 +1,25 @@
/***************************************************************************************
* Copyright (c) 2014-2022 Zihao Yu, Nanjing University
*
* NEMU is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*
* See the Mulan PSL v2 for more details.
***************************************************************************************/
#ifndef __SDB_H__
#define __SDB_H__
#include <common.h>
word_t parse_expr(const char *arg, bool *success);
int wp_add(char * expr);
int wp_remove_by_number(int number);
#endif

View file

@ -0,0 +1,150 @@
/***************************************************************************************
* Copyright (c) 2014-2022 Zihao Yu, Nanjing University
*
* NEMU is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan
*PSL v2. You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
*KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
*NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*
* See the Mulan PSL v2 for more details.
***************************************************************************************/
#include "sdb.h"
#include <common.h>
#include <stdio.h>
#define NR_WP 32
typedef struct watchpoint {
int NO;
struct watchpoint *next;
word_t val;
char *expr;
} WP;
static WP wp_pool[NR_WP] = {};
static WP *head = NULL, *tail = NULL, *free_ = NULL;
static int wp_count = 0;
void init_wp_pool() {
int i;
for (i = 0; i < NR_WP; i++) {
wp_pool[i].NO = i;
wp_pool[i].next = (i == NR_WP - 1 ? NULL : &wp_pool[i + 1]);
}
head = NULL;
free_ = wp_pool;
}
static WP *wp_new() {
if (free_ == NULL) {
Error("wp_pool: Watchpoint pool not initialized or is full.");
return NULL;
}
WP *ret = free_;
free_ = free_->next;
ret->NO = 0;
ret->next = NULL;
return ret;
}
static void wp_delete(WP *wp) {
Assert(wp, "Failed to delete watchpoint from pool.");
wp->next = free_;
free_ = wp;
}
int wp_add(char * expr) {
WP *wp = wp_new();
if (wp == NULL) {
Error("watchpoint: Failed to add watchpoint, pool is full.");
goto failed_create;
}
wp->NO = wp_count++;
if (tail == NULL) {
head = wp;
tail = wp;
} else {
tail->next = wp;
tail = wp;
}
bool success = false;
wp->val = parse_expr(expr, &success);
if (!success) {
Error("Failed to parse given expression `%s`", expr);
goto failed_create;
}
int len = strlen(expr);
wp->expr = malloc((len + 1) * sizeof(char));
if (wp->expr == NULL) {
Error("Failed to allocate memory for expression");
goto failed_create;
}
strncpy(wp->expr, expr, len + 1);
wp->expr[len] = '\0';
return 0;
failed_create:
wp_delete(wp);
return 1;
}
int wp_remove_by_number(int number) {
WP *target_prev;
// Find previous node of target number
for (target_prev = head; target_prev != NULL && target_prev->next->NO != number; target_prev = target_prev->next) ;
if (target_prev == NULL) {
Error("Watchpoint not found, you can check current watchpoints with `info w`");
return 1;
}
WP *target = target_prev->next;
target_prev->next = target->next;
if (target == head) {
head = target->next;
} else if (target == tail) {
tail = target_prev;
}
wp_delete(target);
return 0;
}
static bool wp_check_change(WP* wp) {
bool success = false;
word_t result;
result = parse_expr(wp->expr, &success);
if (!success) {
panic("Failed to evaluate expression `%s`", wp->expr);
}
if (result != wp->val) {
wp->val = result;
return true;
}
return false;
}
/*
Check if watchpoint value changed after execution
*/
bool wp_eval_all() {
WP *wp;
bool value_change = false;
for (wp = head; wp != NULL; wp = wp->next) {
int prev_val = wp->val;
if (wp_check_change(wp)) {
printf("Watchpoint %d: %s\n %u -> %u\n", wp->NO, wp->expr, prev_val, wp->val);
value_change = true;
}
}
return value_change;
}

View file

@ -59,8 +59,7 @@ extern "C" void init_disasm(const char *triple) {
llvm::MCRegisterInfo *gMRI = nullptr; llvm::MCRegisterInfo *gMRI = nullptr;
auto target = llvm::TargetRegistry::lookupTarget(gTriple, errstr); auto target = llvm::TargetRegistry::lookupTarget(gTriple, errstr);
if (!target) { if (!target) {
llvm::errs() << "Can't find target for " << gTriple << ": " << errstr llvm::errs() << "Can't find target for " << gTriple << ": " << errstr << "\n";
<< "\n";
assert(0); assert(0);
} }
@ -78,24 +77,22 @@ extern "C" void init_disasm(const char *triple) {
gMRI = target->createMCRegInfo(gTriple); gMRI = target->createMCRegInfo(gTriple);
auto AsmInfo = target->createMCAsmInfo(*gMRI, gTriple, MCOptions); auto AsmInfo = target->createMCAsmInfo(*gMRI, gTriple, MCOptions);
#if LLVM_VERSION_MAJOR >= 13 #if LLVM_VERSION_MAJOR >= 13
auto llvmTripleTwine = Twine(triple); auto llvmTripleTwine = Twine(triple);
auto llvmtriple = llvm::Triple(llvmTripleTwine); auto llvmtriple = llvm::Triple(llvmTripleTwine);
auto Ctx = new llvm::MCContext(llvmtriple, AsmInfo, gMRI, nullptr); auto Ctx = new llvm::MCContext(llvmtriple,AsmInfo, gMRI, nullptr);
#else #else
auto Ctx = new llvm::MCContext(AsmInfo, gMRI, nullptr); auto Ctx = new llvm::MCContext(AsmInfo, gMRI, nullptr);
#endif #endif
gDisassembler = target->createMCDisassembler(*gSTI, *Ctx); gDisassembler = target->createMCDisassembler(*gSTI, *Ctx);
gIP = target->createMCInstPrinter(llvm::Triple(gTriple), gIP = target->createMCInstPrinter(llvm::Triple(gTriple),
AsmInfo->getAssemblerDialect(), *AsmInfo, AsmInfo->getAssemblerDialect(), *AsmInfo, *gMII, *gMRI);
*gMII, *gMRI);
gIP->setPrintImmHex(true); gIP->setPrintImmHex(true);
gIP->setPrintBranchImmAsAddress(true); gIP->setPrintBranchImmAsAddress(true);
if (isa == "riscv32" || isa == "riscv64") if (isa == "riscv32" || isa == "riscv64")
gIP->applyTargetSpecificCLOption("no-aliases"); gIP->applyTargetSpecificCLOption("no-aliases");
} }
extern "C" void disassemble(char *str, int size, uint64_t pc, uint8_t *code, extern "C" void disassemble(char *str, int size, uint64_t pc, uint8_t *code, int nbyte) {
int nbyte) {
MCInst inst; MCInst inst;
llvm::ArrayRef<uint8_t> arr(code, nbyte); llvm::ArrayRef<uint8_t> arr(code, nbyte);
uint64_t dummy_size = 0; uint64_t dummy_size = 0;

View file

@ -14,7 +14,7 @@
#**************************************************************************************/ #**************************************************************************************/
ifneq ($(CONFIG_ITRACE)$(CONFIG_IQUEUE),) ifneq ($(CONFIG_ITRACE)$(CONFIG_IQUEUE),)
CXXSRC += src/utils/disasm.cc CXXSRC = src/utils/disasm.cc
CXXFLAGS += $(shell llvm-config --cxxflags) -fPIE CXXFLAGS += $(shell llvm-config --cxxflags) -fPIE
LIBS += $(shell llvm-config --libs) LIBS += $(shell llvm-config --libs)
endif endif

View file

@ -17,12 +17,10 @@ static int cmp_func_t(const void *a, const void *b) {
static func_t *get_func(vaddr_t addr) { static func_t *get_func(vaddr_t addr) {
int l = 0, r = func_table_len - 1; int l = 0, r = func_table_len - 1;
while (l <= r) { while(l <= r) {
int mid = (l + r) / 2; int mid = (l + r) / 2;
if (func_table[mid].start <= addr) if(func_table[mid].start <= addr) l = mid + 1;
l = mid + 1; else r = mid - 1;
else
r = mid - 1;
} }
return l == 0 ? NULL : &func_table[l - 1]; return l == 0 ? NULL : &func_table[l - 1];
} }
@ -35,27 +33,20 @@ void init_elf(const char *path) {
func_table = (func_t *)calloc(func_table_size, sizeof(func_t)); func_table = (func_t *)calloc(func_table_size, sizeof(func_t));
assert(func_table); assert(func_table);
FAILED_GOTO(failed_header, FAILED_GOTO(failed_header, fread(&header, sizeof(Elf32_Ehdr), 1, elf_file) <= 0);
fread(&header, sizeof(Elf32_Ehdr), 1, elf_file) <= 0);
FAILED_GOTO(failed_header, fseek(elf_file, header.e_shoff, SEEK_SET) != 0); FAILED_GOTO(failed_header, fseek(elf_file, header.e_shoff, SEEK_SET) != 0);
FAILED_GOTO(failed_header, fread(section_header, header.e_shentsize, FAILED_GOTO(failed_header, fread(section_header, header.e_shentsize, header.e_shnum, elf_file) <= 0);
header.e_shnum, elf_file) <= 0);
char *shstrtab = calloc(1, section_header[header.e_shstrndx].sh_size); char *shstrtab = calloc(1, section_header[header.e_shstrndx].sh_size);
FAILED_GOTO(failed_shstrtab, FAILED_GOTO(failed_shstrtab, fseek(elf_file, section_header[header.e_shstrndx].sh_offset, SEEK_SET) != 0);
fseek(elf_file, section_header[header.e_shstrndx].sh_offset, FAILED_GOTO(failed_shstrtab, fread(shstrtab, section_header[header.e_shstrndx].sh_size, 1, elf_file) <= 0);
SEEK_SET) != 0);
FAILED_GOTO(failed_shstrtab,
fread(shstrtab, section_header[header.e_shstrndx].sh_size, 1,
elf_file) <= 0);
Elf32_Shdr *symtab = NULL, *strtab = NULL; Elf32_Shdr *symtab = NULL, *strtab = NULL;
for (int i = 0; i < header.e_shnum; i++) { for(int i = 0; i < header.e_shnum; i++) {
psh = section_header + i; psh = section_header + i;
if (psh->sh_type == SHT_SYMTAB) { if (psh->sh_type == SHT_SYMTAB) {
symtab = psh; symtab = psh;
} else if (psh->sh_type == SHT_STRTAB && } else if (psh->sh_type == SHT_STRTAB && strncmp(shstrtab + psh->sh_name, ".strtab", 8) == 0) {
strncmp(shstrtab + psh->sh_name, ".strtab", 8) == 0) {
strtab = psh; strtab = psh;
} }
} }
@ -63,28 +54,22 @@ void init_elf(const char *path) {
int sym_length = symtab->sh_size / sizeof(Elf32_Sym); int sym_length = symtab->sh_size / sizeof(Elf32_Sym);
Elf32_Sym *sym = calloc(sym_length, sizeof(Elf32_Sym)); Elf32_Sym *sym = calloc(sym_length, sizeof(Elf32_Sym));
assert(sym); assert(sym);
FAILED_GOTO(failed_funcname, FAILED_GOTO(failed_funcname, fseek(elf_file, symtab->sh_offset, SEEK_SET) != 0);
fseek(elf_file, symtab->sh_offset, SEEK_SET) != 0); FAILED_GOTO(failed_funcname, fread(sym, sizeof(Elf32_Sym), sym_length, elf_file) <= 0);
FAILED_GOTO(failed_funcname,
fread(sym, sizeof(Elf32_Sym), sym_length, elf_file) <= 0);
for (int j = 0; j < sym_length; j++) { for(int j = 0; j < sym_length; j++) {
if (ELF32_ST_TYPE(sym[j].st_info) != STT_FUNC) if(ELF32_ST_TYPE(sym[j].st_info) != STT_FUNC) continue;
continue;
// Only read function type symbol // Only read function type symbol
func_t *f = &func_table[func_table_len]; func_t *f = &func_table[func_table_len];
char *func = (char *)malloc(30); char *func = (char *)malloc(30);
FAILED_GOTO(failed_funcname, FAILED_GOTO(failed_funcname, fseek(elf_file, strtab->sh_offset + sym[j].st_name, SEEK_SET) != 0);
fseek(elf_file, strtab->sh_offset + sym[j].st_name, SEEK_SET) !=
0);
FAILED_GOTO(failed_funcname, fgets(func, 30, elf_file) <= 0); FAILED_GOTO(failed_funcname, fgets(func, 30, elf_file) <= 0);
f->start = sym[j].st_value; f->start = sym[j].st_value;
f->len = sym[j].st_size; f->len = sym[j].st_size;
f->name = func; f->name = func;
++func_table_len; ++func_table_len;
if (func_table_len >= func_table_size) { if(func_table_len >= func_table_size) {
Assert(func_table_size * 2 > func_table_size, Assert(func_table_size * 2 > func_table_size, "Function table exceed memory limit");
"Function table exceed memory limit");
func_table_size *= 2; func_table_size *= 2;
func_table = realloc(func_table, func_table_size * sizeof(func_t)); func_table = realloc(func_table, func_table_size * sizeof(func_t));
Assert(func_table, "Function table exceed memory limit"); Assert(func_table, "Function table exceed memory limit");
@ -103,11 +88,9 @@ failed_funcname:
failed_shstrtab: failed_shstrtab:
free(shstrtab); free(shstrtab);
failed_header: failed_header:
for (int i = 0; i < func_table_len; i++) { for(int i = 0; i < func_table_len; i++) {
func_t *f = &func_table[i]; func_t *f = &func_table[i];
if (f->name) { if(f->name) { free(f->name); }
free(f->name);
}
} }
free(func_table); free(func_table);
Error("Failed reading elf file"); Error("Failed reading elf file");
@ -131,9 +114,8 @@ void ftrace_return(vaddr_t pc, vaddr_t addr) {
ftrace_stack_len--) { ftrace_stack_len--) {
vaddr_t tco_addr = ftrace_stack[ftrace_stack_len]; vaddr_t tco_addr = ftrace_stack[ftrace_stack_len];
func_t *f = get_func(tco_addr); func_t *f = get_func(tco_addr);
Trace("%*s0x%x ret 0x%x <%s+0x%x> (TCO)", ftrace_stack_len, "", pc, Trace("%*s0x%x ret 0x%x <%s+0x%x> (TCO)", ftrace_stack_len, "", pc, tco_addr,
tco_addr, f == NULL ? "???" : f->name, f == NULL ? "???" : f->name, f == NULL ? addr : addr - f->start);
f == NULL ? addr : addr - f->start);
} }
func_t *f = get_func(addr); func_t *f = get_func(addr);
Trace("%*s0x%x ret 0x%x <%s+0x%x>", ftrace_stack_len, "", pc, addr, Trace("%*s0x%x ret 0x%x <%s+0x%x>", ftrace_stack_len, "", pc, addr,

View file

@ -1,4 +1,5 @@
TEST_SRCS += TEST_SRCS += tests/expr_test.c
YACC = bison
$(OBJ_DIR)/%: %.c $(TEST_OBJS) app $(OBJ_DIR)/%: %.c $(TEST_OBJS) app
@mkdir -p $(dir $@) @mkdir -p $(dir $@)

244
nemu/tests/expr_test.c Normal file
View file

@ -0,0 +1,244 @@
#include "macro.h"
#include "sys/types.h"
#include <unistd.h>
#include <assert.h>
#include <check.h>
#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <addrexp.h>
#include <addrexp_lex.h>
#include <isa.h>
#include <reg.h>
char buf[65536] = {}, ref_buf[65536] = {};
static char code_buf[65536 + 128] = {}; // a little larger than `buf`
const int buf_start_pos = 0;
char *buf_ptr = buf + buf_start_pos, *ref_buf_ptr = ref_buf;
static char *code_format = "#include <stdio.h>\n"
"#include <stdint.h>\n"
"int main() { "
" uint32_t result = %s; "
" printf(\"%%u\", result); "
" return 0; "
"}";
void gen(char c) {
*(buf_ptr++) = c;
*(ref_buf_ptr++) = c;
}
void gen_num(void) {
uint32_t num = rand();
int len = 0, ref_len = 0;
switch (rand() % 3) {
case 0:
len = snprintf(buf_ptr, 100, "%u", num);
ref_len = snprintf(ref_buf_ptr, 100, "%uU", num);
break;
case 1:
len = snprintf(buf_ptr, 100, "0x%x", num);
ref_len = snprintf(ref_buf_ptr, 100, "%uU", num);
break;
case 2:
len = snprintf(buf_ptr, 100, "%d", num);
ref_len = snprintf(ref_buf_ptr, 100, "%d", num);
break;
default:
assert(0);
}
buf_ptr += len;
ref_buf_ptr += ref_len;
}
void gen_rand_op(void) {
switch (rand() % 4) {
case 0:
gen('+');
break;
case 1:
gen('-');
break;
case 2:
gen('*');
break;
case 3:
gen('/');
break;
}
}
void gen_rand_expr(void) {
int choice = rand() % 3;
if (buf_ptr - buf > 2000) {
choice = 0;
}
switch (choice) {
case 0:
gen_num();
break;
case 1:
gen('(');
gen_rand_expr();
gen(')');
break;
default:
gen_rand_expr();
gen(' ');
gen_rand_op();
gen(' ');
gen_rand_expr();
break;
}
}
START_TEST(test_expr_random_100) {
srand(time(0) + _i * 100);
gen_rand_expr();
sprintf(code_buf, code_format, ref_buf);
FILE *fp = fopen("/tmp/.code.c", "w");
ck_assert(fp != NULL);
fputs(code_buf, fp);
fclose(fp);
int ret =
system("gcc /tmp/.code.c -Werror=div-by-zero -o /tmp/.expr 2>/dev/null");
if (ret == 256) {
// Probably devide by zero. Skip
goto clean_up;
}
ck_assert_msg(!ret, "system ret: %d, error: %s", ret, strerror(ret));
fp = popen("/tmp/.expr", "r");
ck_assert(fp != NULL);
uint32_t reference;
ret = fscanf(fp, "%u", &reference);
ck_assert(ret == 1);
pclose(fp);
// fprintf(stderr, "\n\tbuf = %s\n\taddr = %u, reference = %u", buf, addr,
// reference);
yy_scan_string(buf + buf_start_pos);
uint32_t addr;
ck_assert(!yyparse(&addr));
yylex_destroy();
ck_assert_msg(addr == reference,
"\n\tbuf = %s\n\t(addr = %u) != (reference = %u)\n", buf, addr,
reference);
clean_up:
while (buf_ptr != buf + buf_start_pos) {
*(--buf_ptr) = '\0';
}
while (ref_buf_ptr != ref_buf) {
*(--ref_buf_ptr) = '\0';
}
}
END_TEST
struct {
const char *expr;
uint32_t reference;
} exprs[] = {
{"-1", 0xFFFFFFFFU},
{"-0x1", 0xFFFFFFFFU},
{"0--1", 0x1},
{"0--0x1", 0x1},
}, reg_exprs[] = {
{"$ra", 0x1},
{"0x2 + 4*-$a7", 0xFFFFFFBEU},
{"0x1831/$gp + 13", 2077U},
{"$$0 == 123", 0},
{"$$0 == 0", 1},
};
START_TEST(test_expr_negative_operand) {
yy_scan_string(exprs[_i].expr);
uint32_t addr;
ck_assert(!yyparse(&addr));
yylex_destroy();
ck_assert_msg(addr == exprs[_i].reference,
"\n\texpr = %s\n\t(addr = %u) != (reference = %u)\n", exprs[_i].expr,
addr, exprs[_i].reference);
}
END_TEST
extern const char *regs[];
START_TEST(test_expr_plain_register) {
int i, j, result;
char buf[30] = {};
uint32_t value;
// NOTE: need to fix this if want to support more arch
buf[0] = '$';
for (i = 0; i < 32; i++) {
ck_assert(strncpy(buf + 1, regs[i], 10) != NULL);
gpr(i) = i;
yy_scan_string(buf);
result = yyparse(&value);
yylex_destroy();
ck_assert_msg(result == 0, "expr = %s\n", buf);
ck_assert(value == i);
for (j = 1; j < 10; j++) {
buf[j] = '\0';
}
}
}
END_TEST
START_TEST(test_expr_register) {
int i;
uint32_t value;
for (i = 0; i < 32; i++) {
gpr(i) = i;
}
yy_scan_string(reg_exprs[_i].expr);
ck_assert(!yyparse(&value));
yylex_destroy();
ck_assert_msg(value == reg_exprs[_i].reference,
"\n\texpr = %s\n\t(addr = %u) != (reference = %u)\n", reg_exprs[_i].expr,
value, reg_exprs[_i].reference);
}
END_TEST
Suite *expr_suite(void) {
Suite *s;
TCase *tc_core;
s = suite_create("Expr test");
tc_core = tcase_create("Core");
tcase_add_loop_test(tc_core, test_expr_random_100, 0, 20);
tcase_add_loop_test(tc_core, test_expr_negative_operand, 0,
sizeof(exprs) / sizeof(exprs[0]));
tcase_add_loop_test(tc_core, test_expr_register, 0,
sizeof(reg_exprs) / sizeof(reg_exprs[0]));
tcase_add_test(tc_core, test_expr_plain_register);
suite_add_tcase(s, tc_core);
return s;
}
int main(void) {
int number_failed;
Suite *s;
SRunner *sr;
s = expr_suite();
sr = srunner_create(s);
srunner_run_all(sr, CK_NORMAL);
number_failed = srunner_ntests_failed(sr);
srunner_free(sr);
return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
}

View file

@ -18,8 +18,8 @@
#if defined(CONFIG_ISA_mips32) #if defined(CONFIG_ISA_mips32)
#define ISA_QEMU_BIN "qemu-system-mipsel" #define ISA_QEMU_BIN "qemu-system-mipsel"
#define ISA_QEMU_ARGS \ #define ISA_QEMU_ARGS "-machine", "mipssim",\
"-machine", "mipssim", "-kernel", NEMU_HOME "/resource/mips-elf/mips.dummy", "-kernel", NEMU_HOME "/resource/mips-elf/mips.dummy",
#elif defined(CONFIG_ISA_riscv) && !defined(CONFIG_RV64) #elif defined(CONFIG_ISA_riscv) && !defined(CONFIG_RV64)
#define ISA_QEMU_BIN "qemu-system-riscv32" #define ISA_QEMU_BIN "qemu-system-riscv32"
#define ISA_QEMU_ARGS "-bios", "none", #define ISA_QEMU_ARGS "-bios", "none",
@ -41,7 +41,7 @@ union isa_gdb_regs {
#elif defined(CONFIG_ISA_riscv) && !defined(CONFIG_RV64) #elif defined(CONFIG_ISA_riscv) && !defined(CONFIG_RV64)
uint32_t gpr[32]; uint32_t gpr[32];
uint32_t pc; uint32_t pc;
#elif defined(CONFIG_ISA_riscv) && defined(CONFIG_RV64) #elif defined(CONFIG_ISA_riscv) && defined(CONFIG_RV64)
uint64_t gpr[32]; uint64_t gpr[32];
uint64_t fpr[32]; uint64_t fpr[32];
uint64_t pc; uint64_t pc;

Some files were not shown because too many files have changed in this diff Show more