[why]
Originally submit_job is too complicated, it need to be simplified.
Signed-off-by: Hu XueJiao <1034502035(a)qq.com>
---
 spec/submit/job_on_fail/job-3000.yaml         | 52 +++++++++++
 .../{job_on_fail.yaml => job.yaml}            |  1 +
 .../job_on_fail/job_on_fail-3000.yaml         | 22 -----
 spec/submit/link_jobs/ftq.yaml                |  1 -
 .../ftq/ftq-1000-2-100000ss-add.yaml          | 29 ------
 .../ftq/ftq-10000-2-100000ss-add.yaml         | 29 ------
 .../link_jobs/ftq/ftq-20-2-6000ss-cache.yaml  | 29 ------
 spec/submit/link_jobs/redis.yaml              |  1 -
 .../link_jobs1/job-10000-2-100000ss-add.yaml  | 57 ++++++++++++
 spec/submit/link_jobs1/job.yaml               |  8 ++
 ...68000000-1-65535-set_get-never-never.yaml} | 90 +++++++------------
 spec/submit/link_jobs2/job.yaml               | 26 ++++++
 .../matrix/job-1-300-whetstone-double.yaml    | 55 ++++++++++++
 spec/submit/matrix/job-3-300-shell1.yaml      | 55 ++++++++++++
 .../matrix/{unixbench-spec.yaml => job.yaml}  |  5 +-
 ...unixbench-spec-1-300-whetstone-double.yaml | 25 ------
 .../unixbench-spec-3-300-shell1.yaml          | 25 ------
 spec/submit/merge_yaml/job-defaults.yaml      | 49 ++++++++++
 spec/submit/merge_yaml/job.yaml               |  1 +
 .../merge_yaml/merge_included_files.yaml      |  1 -
 .../merge_included_files-defaults.yaml        | 19 ----
 spec/submit/merge_yaml/template_yaml          |  2 +-
 .../ftq/ftq-1000-2-100000ss-add.yaml          | 27 ------
 .../ftq/ftq-10000-2-100000ss-add.yaml         | 27 ------
 .../ftq/ftq-20-2-6000ss-cache.yaml            | 27 ------
 .../job-1000-2-100000ss-add.yaml              | 57 ++++++++++++
 .../job-10000-2-100000ss-add.yaml             | 57 ++++++++++++
 .../separate_yaml/job-20-2-6000ss-cache.yaml  | 57 ++++++++++++
 .../separate_yaml/{ftq.yaml => job.yaml}      |  0
 spec/submit_spec.rb                           | 41 ++-------
 30 files changed, 520 insertions(+), 355 deletions(-)
 create mode 100644 spec/submit/job_on_fail/job-3000.yaml
 rename spec/submit/job_on_fail/{job_on_fail.yaml => job.yaml} (97%)
 delete mode 100644 spec/submit/job_on_fail/job_on_fail/job_on_fail-3000.yaml
 delete mode 120000 spec/submit/link_jobs/ftq.yaml
 delete mode 100644 spec/submit/link_jobs/ftq/ftq-1000-2-100000ss-add.yaml
 delete mode 100644 spec/submit/link_jobs/ftq/ftq-10000-2-100000ss-add.yaml
 delete mode 100644 spec/submit/link_jobs/ftq/ftq-20-2-6000ss-cache.yaml
 delete mode 120000 spec/submit/link_jobs/redis.yaml
 create mode 100644 spec/submit/link_jobs1/job-10000-2-100000ss-add.yaml
 create mode 100644 spec/submit/link_jobs1/job.yaml
 rename spec/submit/{link_jobs/redis/redis-1-cs-localhost-even-1024-68000000-5-3-4-68000000-1-65535-set_get-never-never.yaml => link_jobs2/job-1-cs-localhost-even-1024-68000000-5-3-4-68000000-1-65535-set_get-never-never.yaml} (56%)
 create mode 100644 spec/submit/link_jobs2/job.yaml
 create mode 100644 spec/submit/matrix/job-1-300-whetstone-double.yaml
 create mode 100644 spec/submit/matrix/job-3-300-shell1.yaml
 rename spec/submit/matrix/{unixbench-spec.yaml => job.yaml} (54%)
 delete mode 100644 spec/submit/matrix/unixbench-spec/unixbench-spec-1-300-whetstone-double.yaml
 delete mode 100644 spec/submit/matrix/unixbench-spec/unixbench-spec-3-300-shell1.yaml
 create mode 100644 spec/submit/merge_yaml/job-defaults.yaml
 create mode 100644 spec/submit/merge_yaml/job.yaml
 delete mode 100644 spec/submit/merge_yaml/merge_included_files.yaml
 delete mode 100644 spec/submit/merge_yaml/merge_included_files/merge_included_files-defaults.yaml
 delete mode 100644 spec/submit/separate_yaml/ftq/ftq-1000-2-100000ss-add.yaml
 delete mode 100644 spec/submit/separate_yaml/ftq/ftq-10000-2-100000ss-add.yaml
 delete mode 100644 spec/submit/separate_yaml/ftq/ftq-20-2-6000ss-cache.yaml
 create mode 100644 spec/submit/separate_yaml/job-1000-2-100000ss-add.yaml
 create mode 100644 spec/submit/separate_yaml/job-10000-2-100000ss-add.yaml
 create mode 100644 spec/submit/separate_yaml/job-20-2-6000ss-cache.yaml
 rename spec/submit/separate_yaml/{ftq.yaml => job.yaml} (100%)
diff --git a/spec/submit/job_on_fail/job-3000.yaml b/spec/submit/job_on_fail/job-3000.yaml
new file mode 100644
index 00000000..5f41e885
--- /dev/null
+++ b/spec/submit/job_on_fail/job-3000.yaml
@@ -0,0 +1,52 @@
+---
+
+#! spec/submit/job_on_fail/job.yaml
+suite: atomic
+on_fail:
+  sleep: 3000
+atomic:
+lab: spec_lab
+testbox: vm-2p8g--spec_submit
+job_origin: spec/submit/job_on_fail/job.yaml
+tbox_group: vm-2p8g--spec_submit
+
+#! hosts/vm-2p8g
+provider: qemu
+template: kvm
+nr_node: 1
+nr_cpu: 2
+memory: 8G
+arch: aarch64
+
+#! /etc/compass-ci/defaults/crystal.yaml
+SCHED_HOST: 172.168.131.113
+TASKQUEUE_HOST: 172.168.131.113
+LKP_SERVER: 172.168.131.113
+SCHED_PORT: 3000
+GIT_SERVER: 172.168.131.113
+GITCACHE_HOST: 172.168.131.113
+INITRD_HTTP_HOST: 172.168.131.113
+MASTER_FLUENTD_HOST: 172.168.131.113
+MASTER_FLUENTD_PORT: 24224
+my_email: team(a)crystal.ci
+my_name: team
+my_uuid: a426ef61-9afe-4679-bc2c-af0163393245
+
+#! /home/huxuejiao/.config/compass-ci/defaults/huxuejiao.yaml
+lkp_initrd_user: huxuejiao
+
+#! include/testbox/vm
+cpufreq_governor:
+need_kconfig:
+- CONFIG_KVM_GUEST=y
+
+#! user overrides
+
+#! auto generated by add_pp()
+pp:
+  sleep: 3000
+  atomic:
+  cpufreq_governor:
+
+#! auto generated by add_monitors()
+monitors:
diff --git a/spec/submit/job_on_fail/job_on_fail.yaml b/spec/submit/job_on_fail/job.yaml
similarity index 97%
rename from spec/submit/job_on_fail/job_on_fail.yaml
rename to spec/submit/job_on_fail/job.yaml
index bf68ff40..5aaedf30 100644
--- a/spec/submit/job_on_fail/job_on_fail.yaml
+++ b/spec/submit/job_on_fail/job.yaml
@@ -2,4 +2,5 @@ suite: atomic
 
 on_fail:
   sleep: 3000
+
 atomic:
diff --git a/spec/submit/job_on_fail/job_on_fail/job_on_fail-3000.yaml b/spec/submit/job_on_fail/job_on_fail/job_on_fail-3000.yaml
deleted file mode 100644
index 3d7ad9b5..00000000
--- a/spec/submit/job_on_fail/job_on_fail/job_on_fail-3000.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
----
-suite: atomic
-on_fail:
-  sleep: 3000
-atomic:
-lab: spec_lab
-testbox: vm-2p8g--spec_submit
-tbox_group: vm-2p8g--spec_submit
-provider: qemu
-template: kvm
-nr_node: 1
-nr_cpu: 2
-memory: 8G
-arch: aarch64
-cpufreq_governor:
-need_kconfig:
-- CONFIG_KVM_GUEST=y
-pp:
-  sleep: 3000
-  atomic:
-  cpufreq_governor:
-monitors:
diff --git a/spec/submit/link_jobs/ftq.yaml b/spec/submit/link_jobs/ftq.yaml
deleted file mode 120000
index b472f871..00000000
--- a/spec/submit/link_jobs/ftq.yaml
+++ /dev/null
@@ -1 +0,0 @@
-../../../jobs/ftq.yaml
\ No newline at end of file
diff --git a/spec/submit/link_jobs/ftq/ftq-1000-2-100000ss-add.yaml b/spec/submit/link_jobs/ftq/ftq-1000-2-100000ss-add.yaml
deleted file mode 100644
index 9a613c00..00000000
--- a/spec/submit/link_jobs/ftq/ftq-1000-2-100000ss-add.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-suite: ftq
-testcase: ftq
-category: noise-benchmark
-nr_task: 2
-samples: 100000ss
-ftq:
-  test: add
-  freq: 1000
-lab: spec_lab
-testbox: vm-2p8g--spec_submit
-tbox_group: vm-2p8g--spec_submit
-provider: qemu
-template: kvm
-nr_node: 1
-nr_cpu: 2
-memory: 8G
-arch: aarch64
-cpufreq_governor: 
-need_kconfig:
-- CONFIG_KVM_GUEST=y
-pp:
-  ftq:
-    nr_task: 2
-    samples: 100000ss
-    freq: 1000
-    test: add
-  cpufreq_governor: 
-monitors: 
diff --git a/spec/submit/link_jobs/ftq/ftq-10000-2-100000ss-add.yaml b/spec/submit/link_jobs/ftq/ftq-10000-2-100000ss-add.yaml
deleted file mode 100644
index 8bf52d0f..00000000
--- a/spec/submit/link_jobs/ftq/ftq-10000-2-100000ss-add.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-suite: ftq
-testcase: ftq
-category: noise-benchmark
-nr_task: 2
-samples: 100000ss
-ftq:
-  test: add
-  freq: 10000
-lab: spec_lab
-testbox: vm-2p8g--spec_submit
-tbox_group: vm-2p8g--spec_submit
-provider: qemu
-template: kvm
-nr_node: 1
-nr_cpu: 2
-memory: 8G
-arch: aarch64
-cpufreq_governor: 
-need_kconfig:
-- CONFIG_KVM_GUEST=y
-pp:
-  ftq:
-    nr_task: 2
-    samples: 100000ss
-    freq: 10000
-    test: add
-  cpufreq_governor: 
-monitors: 
diff --git a/spec/submit/link_jobs/ftq/ftq-20-2-6000ss-cache.yaml b/spec/submit/link_jobs/ftq/ftq-20-2-6000ss-cache.yaml
deleted file mode 100644
index 8cb78287..00000000
--- a/spec/submit/link_jobs/ftq/ftq-20-2-6000ss-cache.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-suite: ftq
-testcase: ftq
-category: noise-benchmark
-nr_task: 2
-samples: 6000ss
-ftq:
-  test: cache
-  freq: 20
-lab: spec_lab
-testbox: vm-2p8g--spec_submit
-tbox_group: vm-2p8g--spec_submit
-provider: qemu
-template: kvm
-nr_node: 1
-nr_cpu: 2
-memory: 8G
-arch: aarch64
-cpufreq_governor: 
-need_kconfig:
-- CONFIG_KVM_GUEST=y
-pp:
-  ftq:
-    nr_task: 2
-    samples: 6000ss
-    freq: 20
-    test: cache
-  cpufreq_governor: 
-monitors: 
diff --git a/spec/submit/link_jobs/redis.yaml b/spec/submit/link_jobs/redis.yaml
deleted file mode 120000
index 438bdab7..00000000
--- a/spec/submit/link_jobs/redis.yaml
+++ /dev/null
@@ -1 +0,0 @@
-../../../jobs/redis.yaml
\ No newline at end of file
diff --git a/spec/submit/link_jobs1/job-10000-2-100000ss-add.yaml b/spec/submit/link_jobs1/job-10000-2-100000ss-add.yaml
new file mode 100644
index 00000000..a36d77de
--- /dev/null
+++ b/spec/submit/link_jobs1/job-10000-2-100000ss-add.yaml
@@ -0,0 +1,57 @@
+---
+
+#! spec/submit/link_jobs1/job.yaml
+suite: ftq
+nr_task: 2
+samples: 100000ss
+ftq:
+  test: add
+  freq: 10000
+lab: spec_lab
+testbox: vm-2p8g--spec_submit
+job_origin: spec/submit/link_jobs1/job.yaml
+tbox_group: vm-2p8g--spec_submit
+
+#! hosts/vm-2p8g
+provider: qemu
+template: kvm
+nr_node: 1
+nr_cpu: 2
+memory: 8G
+arch: aarch64
+
+#! /etc/compass-ci/defaults/crystal.yaml
+SCHED_HOST: 172.168.131.113
+TASKQUEUE_HOST: 172.168.131.113
+LKP_SERVER: 172.168.131.113
+SCHED_PORT: 3000
+GIT_SERVER: 172.168.131.113
+GITCACHE_HOST: 172.168.131.113
+INITRD_HTTP_HOST: 172.168.131.113
+MASTER_FLUENTD_HOST: 172.168.131.113
+MASTER_FLUENTD_PORT: 24224
+my_email: team(a)crystal.ci
+my_name: team
+my_uuid: a426ef61-9afe-4679-bc2c-af0163393245
+
+#! /home/huxuejiao/.config/compass-ci/defaults/huxuejiao.yaml
+lkp_initrd_user: huxuejiao
+
+#! include/testbox/vm
+cpufreq_governor:
+need_kconfig:
+- CONFIG_KVM_GUEST=y
+
+#! user overrides
+
+#! auto generated by add_pp()
+pp:
+  ftq:
+    nr_task: 2
+    samples: 100000ss
+    freq: 10000
+    test: add
+  cpufreq_governor:
+
+#! auto generated by add_monitors()
+monitors:
diff --git a/spec/submit/link_jobs1/job.yaml b/spec/submit/link_jobs1/job.yaml
new file mode 100644
index 00000000..5624b122
--- /dev/null
+++ b/spec/submit/link_jobs1/job.yaml
@@ -0,0 +1,8 @@
+suite: ftq
+
+nr_task: 100%
+samples: 100000ss
+
+ftq:
+  test: add
+  freq: 10000
diff --git a/spec/submit/link_jobs/redis/redis-1-cs-localhost-even-1024-68000000-5-3-4-68000000-1-65535-set_get-never-never.yaml b/spec/submit/link_jobs2/job-1-cs-localhost-even-1024-68000000-5-3-4-68000000-1-65535-set_get-never-never.yaml
similarity index 56%
rename from spec/submit/link_jobs/redis/redis-1-cs-localhost-even-1024-68000000-5-3-4-68000000-1-65535-set_get-never-never.yaml
rename to spec/submit/link_jobs2/job-1-cs-localhost-even-1024-68000000-5-3-4-68000000-1-65535-set_get-never-never.yaml
index 466a2054..6e023d71 100644
--- a/spec/submit/link_jobs/redis/redis-1-cs-localhost-even-1024-68000000-5-3-4-68000000-1-65535-set_get-never-never.yaml
+++ b/spec/submit/link_jobs2/job-1-cs-localhost-even-1024-68000000-5-3-4-68000000-1-65535-set_get-never-never.yaml
@@ -1,7 +1,7 @@
 ---
+
+#! spec/submit/link_jobs2/job.yaml
 suite: redis
-testcase: redis
-category: benchmark
 need_memory: 62G
 nr_threads: 2
 numactl:
@@ -16,7 +16,7 @@ cluster: cs-localhost
 cpu_node_bind: even
 nr_processes: 4
 if role server:
-  redis-server: 
+  redis-server:
 if role client:
   redis:
     test: set,get
@@ -27,43 +27,43 @@ if role client:
     key_len: 68000000
 lab: spec_lab
 testbox: vm-2p8g--spec_submit
+job_origin: spec/submit/link_jobs2/job.yaml
 tbox_group: vm-2p8g--spec_submit
 node_roles: server client
+
+#! hosts/vm-2p8g
 provider: qemu
 template: kvm
 nr_node: 1
 nr_cpu: 2
 memory: 8G
 arch: aarch64
-kmsg: 
-boot-time: 
-uptime: 
-iostat: 
-heartbeat: 
-vmstat: 
-numa-numastat: 
-numa-vmstat: 
-numa-meminfo: 
-proc-vmstat: 
-proc-stat: 
-meminfo: 
-slabinfo: 
-interrupts: 
-lock_stat: 
-latency_stats: 
-softirqs: 
-bdi_dev_mapping: 
-diskstats: 
-nfsstat: 
-cpuidle: 
-cpufreq-stats: 
-sched_debug: 
-perf-stat: 
-mpstat: 
-perf-profile: 
-cpufreq_governor: 
+
+#! /etc/compass-ci/defaults/crystal.yaml
+SCHED_HOST: 172.168.131.113
+TASKQUEUE_HOST: 172.168.131.113
+LKP_SERVER: 172.168.131.113
+SCHED_PORT: 3000
+GIT_SERVER: 172.168.131.113
+GITCACHE_HOST: 172.168.131.113
+INITRD_HTTP_HOST: 172.168.131.113
+MASTER_FLUENTD_HOST: 172.168.131.113
+MASTER_FLUENTD_PORT: 24224
+my_email: team(a)crystal.ci
+my_name: team
+my_uuid: a426ef61-9afe-4679-bc2c-af0163393245
+
+#! /home/huxuejiao/.config/compass-ci/defaults/huxuejiao.yaml
+lkp_initrd_user: huxuejiao
+
+#! include/testbox/vm
+cpufreq_governor:
 need_kconfig:
 - CONFIG_KVM_GUEST=y
+
+#! user overrides
+
+#! auto generated by add_pp()
 pp:
   numactl:
     all: 1
@@ -85,31 +85,7 @@ pp:
     key_len: 68000000
     nr_processes: 4
     cpu_node_bind: even
-  cpufreq_governor: 
+  cpufreq_governor:
+
+#! auto generated by add_monitors()
 monitors:
-  kmsg: 
-  boot-time: 
-  uptime: 
-  iostat: 
-  heartbeat: 
-  vmstat: 
-  numa-numastat: 
-  numa-vmstat: 
-  numa-meminfo: 
-  proc-vmstat: 
-  proc-stat: 
-  meminfo: 
-  slabinfo: 
-  interrupts: 
-  lock_stat: 
-  latency_stats: 
-  softirqs: 
-  bdi_dev_mapping: 
-  diskstats: 
-  nfsstat: 
-  cpuidle: 
-  cpufreq-stats: 
-  sched_debug: 
-  perf-stat: 
-  mpstat: 
-  perf-profile: 
diff --git a/spec/submit/link_jobs2/job.yaml b/spec/submit/link_jobs2/job.yaml
new file mode 100644
index 00000000..bf96e654
--- /dev/null
+++ b/spec/submit/link_jobs2/job.yaml
@@ -0,0 +1,26 @@
+suite: redis
+
+need_memory: 62G
+nr_threads: 100%
+numactl:
+  all: 1
+sysctl:
+  sc_overcommit_memory: 1
+  sc_somaxconn: 65535
+transparent_hugepage:
+  thp_enabled: never
+  thp_defrag: never
+cluster: cs-localhost
+cpu_node_bind: even
+nr_processes: 4
+
+if role server:
+  redis-server:
+if role client:
+  redis:
+    test: set,get
+    data_size: 1024
+    n_client: 5
+    requests: 68000000
+    n_pipeline: 3
+    key_len: 68000000
diff --git a/spec/submit/matrix/job-1-300-whetstone-double.yaml b/spec/submit/matrix/job-1-300-whetstone-double.yaml
new file mode 100644
index 00000000..ae23f10c
--- /dev/null
+++ b/spec/submit/matrix/job-1-300-whetstone-double.yaml
@@ -0,0 +1,55 @@
+---
+
+#! spec/submit/matrix/job.yaml
+suite: unixbench
+runtime: 300
+unixbench:
+lab: spec_lab
+testbox: vm-2p8g--spec_submit
+nr_task: '1'
+test: whetstone-double
+job_origin: spec/submit/matrix/job.yaml
+tbox_group: vm-2p8g--spec_submit
+
+#! hosts/vm-2p8g
+provider: qemu
+template: kvm
+nr_node: 1
+nr_cpu: 2
+memory: 8G
+arch: aarch64
+
+#! /etc/compass-ci/defaults/crystal.yaml
+SCHED_HOST: 172.168.131.113
+TASKQUEUE_HOST: 172.168.131.113
+LKP_SERVER: 172.168.131.113
+SCHED_PORT: 3000
+GIT_SERVER: 172.168.131.113
+GITCACHE_HOST: 172.168.131.113
+INITRD_HTTP_HOST: 172.168.131.113
+MASTER_FLUENTD_HOST: 172.168.131.113
+MASTER_FLUENTD_PORT: 24224
+my_email: team(a)crystal.ci
+my_name: team
+my_uuid: a426ef61-9afe-4679-bc2c-af0163393245
+
+#! /home/huxuejiao/.config/compass-ci/defaults/huxuejiao.yaml
+lkp_initrd_user: huxuejiao
+
+#! include/testbox/vm
+cpufreq_governor:
+need_kconfig:
+- CONFIG_KVM_GUEST=y
+
+#! user overrides
+
+#! auto generated by add_pp()
+pp:
+  unixbench:
+    runtime: 300
+    test: whetstone-double
+    nr_task: '1'
+  cpufreq_governor:
+
+#! auto generated by add_monitors()
+monitors:
diff --git a/spec/submit/matrix/job-3-300-shell1.yaml b/spec/submit/matrix/job-3-300-shell1.yaml
new file mode 100644
index 00000000..90e20c6b
--- /dev/null
+++ b/spec/submit/matrix/job-3-300-shell1.yaml
@@ -0,0 +1,55 @@
+---
+
+#! spec/submit/matrix/job.yaml
+suite: unixbench
+runtime: 300
+unixbench:
+lab: spec_lab
+testbox: vm-2p8g--spec_submit
+nr_task: '3'
+test: shell1
+job_origin: spec/submit/matrix/job.yaml
+tbox_group: vm-2p8g--spec_submit
+
+#! hosts/vm-2p8g
+provider: qemu
+template: kvm
+nr_node: 1
+nr_cpu: 2
+memory: 8G
+arch: aarch64
+
+#! /etc/compass-ci/defaults/crystal.yaml
+SCHED_HOST: 172.168.131.113
+TASKQUEUE_HOST: 172.168.131.113
+LKP_SERVER: 172.168.131.113
+SCHED_PORT: 3000
+GIT_SERVER: 172.168.131.113
+GITCACHE_HOST: 172.168.131.113
+INITRD_HTTP_HOST: 172.168.131.113
+MASTER_FLUENTD_HOST: 172.168.131.113
+MASTER_FLUENTD_PORT: 24224
+my_email: team(a)crystal.ci
+my_name: team
+my_uuid: a426ef61-9afe-4679-bc2c-af0163393245
+
+#! /home/huxuejiao/.config/compass-ci/defaults/huxuejiao.yaml
+lkp_initrd_user: huxuejiao
+
+#! include/testbox/vm
+cpufreq_governor:
+need_kconfig:
+- CONFIG_KVM_GUEST=y
+
+#! user overrides
+
+#! auto generated by add_pp()
+pp:
+  unixbench:
+    runtime: 300
+    test: shell1
+    nr_task: '3'
+  cpufreq_governor:
+
+#! auto generated by add_monitors()
+monitors:
diff --git a/spec/submit/matrix/unixbench-spec.yaml b/spec/submit/matrix/job.yaml
similarity index 54%
rename from spec/submit/matrix/unixbench-spec.yaml
rename to spec/submit/matrix/job.yaml
index e17322b4..75864574 100644
--- a/spec/submit/matrix/unixbench-spec.yaml
+++ b/spec/submit/matrix/job.yaml
@@ -1,9 +1,8 @@
 suite: unixbench
 
 runtime: 300s
-
 nr_task test:
-        - 1 whetstone-double
-        - 3 shell1
+- 1 whetstone-double
+- 3 shell1
 
 unixbench:
diff --git a/spec/submit/matrix/unixbench-spec/unixbench-spec-1-300-whetstone-double.yaml b/spec/submit/matrix/unixbench-spec/unixbench-spec-1-300-whetstone-double.yaml
deleted file mode 100644
index 9896bcef..00000000
--- a/spec/submit/matrix/unixbench-spec/unixbench-spec-1-300-whetstone-double.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
----
-suite: unixbench
-runtime: 300
-unixbench:
-lab: spec_lab
-testbox: vm-2p8g--spec_submit
-nr_task: '1'
-test: whetstone-double
-tbox_group: vm-2p8g--spec_submit
-provider: qemu
-template: kvm
-nr_node: 1
-nr_cpu: 2
-memory: 8G
-arch: aarch64
-cpufreq_governor:
-need_kconfig:
-- CONFIG_KVM_GUEST=y
-pp:
-  unixbench:
-    runtime: 300
-    test: whetstone-double
-    nr_task: '1'
-  cpufreq_governor:
-monitors:
diff --git a/spec/submit/matrix/unixbench-spec/unixbench-spec-3-300-shell1.yaml b/spec/submit/matrix/unixbench-spec/unixbench-spec-3-300-shell1.yaml
deleted file mode 100644
index 912d10ee..00000000
--- a/spec/submit/matrix/unixbench-spec/unixbench-spec-3-300-shell1.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
----
-suite: unixbench
-runtime: 300
-unixbench:
-lab: spec_lab
-testbox: vm-2p8g--spec_submit
-nr_task: '3'
-test: shell1
-tbox_group: vm-2p8g--spec_submit
-provider: qemu
-template: kvm
-nr_node: 1
-nr_cpu: 2
-memory: 8G
-arch: aarch64
-cpufreq_governor:
-need_kconfig:
-- CONFIG_KVM_GUEST=y
-pp:
-  unixbench:
-    runtime: 300
-    test: shell1
-    nr_task: '3'
-  cpufreq_governor:
-monitors:
diff --git a/spec/submit/merge_yaml/job-defaults.yaml b/spec/submit/merge_yaml/job-defaults.yaml
new file mode 100644
index 00000000..4168a6ef
--- /dev/null
+++ b/spec/submit/merge_yaml/job-defaults.yaml
@@ -0,0 +1,49 @@
+---
+
+#! spec/submit/merge_yaml/job.yaml
+suite: atomic
+atomic:
+lab: spec_lab
+testbox: vm-2p8g--spec_submit
+job_origin: spec/submit/merge_yaml/job.yaml
+tbox_group: vm-2p8g--spec_submit
+
+#! hosts/vm-2p8g
+provider: qemu
+template: kvm
+nr_node: 1
+nr_cpu: 2
+memory: 8G
+arch: aarch64
+
+#! /etc/compass-ci/defaults/crystal.yaml
+SCHED_HOST: 172.168.131.113
+TASKQUEUE_HOST: 172.168.131.113
+LKP_SERVER: 172.168.131.113
+SCHED_PORT: 3000
+GIT_SERVER: 172.168.131.113
+GITCACHE_HOST: 172.168.131.113
+INITRD_HTTP_HOST: 172.168.131.113
+MASTER_FLUENTD_HOST: 172.168.131.113
+MASTER_FLUENTD_PORT: 24224
+my_email: team(a)crystal.ci
+my_name: team
+my_uuid: a426ef61-9afe-4679-bc2c-af0163393245
+
+#! /home/huxuejiao/.config/compass-ci/defaults/huxuejiao.yaml
+lkp_initrd_user: huxuejiao
+
+#! include/testbox/vm
+cpufreq_governor:
+need_kconfig:
+- CONFIG_KVM_GUEST=y
+
+#! user overrides
+
+#! auto generated by add_pp()
+pp:
+  atomic:
+  cpufreq_governor:
+
+#! auto generated by add_monitors()
+monitors:
diff --git a/spec/submit/merge_yaml/job.yaml b/spec/submit/merge_yaml/job.yaml
new file mode 100644
index 00000000..6d64c381
--- /dev/null
+++ b/spec/submit/merge_yaml/job.yaml
@@ -0,0 +1 @@
+<< : template_yaml
diff --git a/spec/submit/merge_yaml/merge_included_files.yaml b/spec/submit/merge_yaml/merge_included_files.yaml
deleted file mode 100644
index 8d459a32..00000000
--- a/spec/submit/merge_yaml/merge_included_files.yaml
+++ /dev/null
@@ -1 +0,0 @@
-<<: template_yaml
diff --git a/spec/submit/merge_yaml/merge_included_files/merge_included_files-defaults.yaml b/spec/submit/merge_yaml/merge_included_files/merge_included_files-defaults.yaml
deleted file mode 100644
index 42b53c13..00000000
--- a/spec/submit/merge_yaml/merge_included_files/merge_included_files-defaults.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-suite: atomic
-atomic:
-lab: spec_lab
-testbox: vm-2p8g--spec_submit
-tbox_group: vm-2p8g--spec_submit
-provider: qemu
-template: kvm
-nr_node: 1
-nr_cpu: 2
-memory: 8G
-arch: aarch64
-cpufreq_governor:
-need_kconfig:
-- CONFIG_KVM_GUEST=y
-pp:
-  atomic:
-  cpufreq_governor:
-monitors:
diff --git a/spec/submit/merge_yaml/template_yaml b/spec/submit/merge_yaml/template_yaml
index 331cb470..a4805648 100644
--- a/spec/submit/merge_yaml/template_yaml
+++ b/spec/submit/merge_yaml/template_yaml
@@ -1,3 +1,3 @@
 suite: atomic
 
-atomic:
+atomic: 
diff --git a/spec/submit/separate_yaml/ftq/ftq-1000-2-100000ss-add.yaml b/spec/submit/separate_yaml/ftq/ftq-1000-2-100000ss-add.yaml
deleted file mode 100644
index f3e2c553..00000000
--- a/spec/submit/separate_yaml/ftq/ftq-1000-2-100000ss-add.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-suite: ftq
-nr_task: 2
-samples: 100000ss
-ftq:
-  test: add
-  freq: 1000
-lab: spec_lab
-testbox: vm-2p8g--spec_submit
-tbox_group: vm-2p8g--spec_submit
-provider: qemu
-template: kvm
-nr_node: 1
-nr_cpu: 2
-memory: 8G
-arch: aarch64
-cpufreq_governor:
-need_kconfig:
-- CONFIG_KVM_GUEST=y
-pp:
-  ftq:
-    nr_task: 2
-    samples: 100000ss
-    freq: 1000
-    test: add
-  cpufreq_governor:
-monitors:
diff --git a/spec/submit/separate_yaml/ftq/ftq-10000-2-100000ss-add.yaml b/spec/submit/separate_yaml/ftq/ftq-10000-2-100000ss-add.yaml
deleted file mode 100644
index 63bac5cf..00000000
--- a/spec/submit/separate_yaml/ftq/ftq-10000-2-100000ss-add.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-suite: ftq
-nr_task: 2
-samples: 100000ss
-ftq:
-  test: add
-  freq: 10000
-lab: spec_lab
-testbox: vm-2p8g--spec_submit
-tbox_group: vm-2p8g--spec_submit
-provider: qemu
-template: kvm
-nr_node: 1
-nr_cpu: 2
-memory: 8G
-arch: aarch64
-cpufreq_governor:
-need_kconfig:
-- CONFIG_KVM_GUEST=y
-pp:
-  ftq:
-    nr_task: 2
-    samples: 100000ss
-    freq: 10000
-    test: add
-  cpufreq_governor:
-monitors:
diff --git a/spec/submit/separate_yaml/ftq/ftq-20-2-6000ss-cache.yaml b/spec/submit/separate_yaml/ftq/ftq-20-2-6000ss-cache.yaml
deleted file mode 100644
index a802dc1b..00000000
--- a/spec/submit/separate_yaml/ftq/ftq-20-2-6000ss-cache.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-suite: ftq
-nr_task: 2
-samples: 6000ss
-ftq:
-  test: cache
-  freq: 20
-lab: spec_lab
-testbox: vm-2p8g--spec_submit
-tbox_group: vm-2p8g--spec_submit
-provider: qemu
-template: kvm
-nr_node: 1
-nr_cpu: 2
-memory: 8G
-arch: aarch64
-cpufreq_governor:
-need_kconfig:
-- CONFIG_KVM_GUEST=y
-pp:
-  ftq:
-    nr_task: 2
-    samples: 6000ss
-    freq: 20
-    test: cache
-  cpufreq_governor:
-monitors:
diff --git a/spec/submit/separate_yaml/job-1000-2-100000ss-add.yaml b/spec/submit/separate_yaml/job-1000-2-100000ss-add.yaml
new file mode 100644
index 00000000..4dcd179d
--- /dev/null
+++ b/spec/submit/separate_yaml/job-1000-2-100000ss-add.yaml
@@ -0,0 +1,57 @@
+---
+
+#! spec/submit/separate_yaml/job.yaml
+suite: ftq
+nr_task: 2
+samples: 100000ss
+ftq:
+  test: add
+  freq: 1000
+lab: spec_lab
+testbox: vm-2p8g--spec_submit
+job_origin: spec/submit/separate_yaml/job.yaml
+tbox_group: vm-2p8g--spec_submit
+
+#! hosts/vm-2p8g
+provider: qemu
+template: kvm
+nr_node: 1
+nr_cpu: 2
+memory: 8G
+arch: aarch64
+
+#! /etc/compass-ci/defaults/crystal.yaml
+SCHED_HOST: 172.168.131.113
+TASKQUEUE_HOST: 172.168.131.113
+LKP_SERVER: 172.168.131.113
+SCHED_PORT: 3000
+GIT_SERVER: 172.168.131.113
+GITCACHE_HOST: 172.168.131.113
+INITRD_HTTP_HOST: 172.168.131.113
+MASTER_FLUENTD_HOST: 172.168.131.113
+MASTER_FLUENTD_PORT: 24224
+my_email: team(a)crystal.ci
+my_name: team
+my_uuid: a426ef61-9afe-4679-bc2c-af0163393245
+
+#! /home/huxuejiao/.config/compass-ci/defaults/huxuejiao.yaml
+lkp_initrd_user: huxuejiao
+
+#! include/testbox/vm
+cpufreq_governor:
+need_kconfig:
+- CONFIG_KVM_GUEST=y
+
+#! user overrides
+
+#! auto generated by add_pp()
+pp:
+  ftq:
+    nr_task: 2
+    samples: 100000ss
+    freq: 1000
+    test: add
+  cpufreq_governor:
+
+#! auto generated by add_monitors()
+monitors:
diff --git a/spec/submit/separate_yaml/job-10000-2-100000ss-add.yaml b/spec/submit/separate_yaml/job-10000-2-100000ss-add.yaml
new file mode 100644
index 00000000..d5566714
--- /dev/null
+++ b/spec/submit/separate_yaml/job-10000-2-100000ss-add.yaml
@@ -0,0 +1,57 @@
+---
+
+#! spec/submit/separate_yaml/job.yaml
+suite: ftq
+nr_task: 2
+samples: 100000ss
+ftq:
+  test: add
+  freq: 10000
+lab: spec_lab
+testbox: vm-2p8g--spec_submit
+job_origin: spec/submit/separate_yaml/job.yaml
+tbox_group: vm-2p8g--spec_submit
+
+#! hosts/vm-2p8g
+provider: qemu
+template: kvm
+nr_node: 1
+nr_cpu: 2
+memory: 8G
+arch: aarch64
+
+#! /etc/compass-ci/defaults/crystal.yaml
+SCHED_HOST: 172.168.131.113
+TASKQUEUE_HOST: 172.168.131.113
+LKP_SERVER: 172.168.131.113
+SCHED_PORT: 3000
+GIT_SERVER: 172.168.131.113
+GITCACHE_HOST: 172.168.131.113
+INITRD_HTTP_HOST: 172.168.131.113
+MASTER_FLUENTD_HOST: 172.168.131.113
+MASTER_FLUENTD_PORT: 24224
+my_email: team(a)crystal.ci
+my_name: team
+my_uuid: a426ef61-9afe-4679-bc2c-af0163393245
+
+#! /home/huxuejiao/.config/compass-ci/defaults/huxuejiao.yaml
+lkp_initrd_user: huxuejiao
+
+#! include/testbox/vm
+cpufreq_governor:
+need_kconfig:
+- CONFIG_KVM_GUEST=y
+
+#! user overrides
+
+#! auto generated by add_pp()
+pp:
+  ftq:
+    nr_task: 2
+    samples: 100000ss
+    freq: 10000
+    test: add
+  cpufreq_governor:
+
+#! auto generated by add_monitors()
+monitors:
diff --git a/spec/submit/separate_yaml/job-20-2-6000ss-cache.yaml b/spec/submit/separate_yaml/job-20-2-6000ss-cache.yaml
new file mode 100644
index 00000000..dd177379
--- /dev/null
+++ b/spec/submit/separate_yaml/job-20-2-6000ss-cache.yaml
@@ -0,0 +1,57 @@
+---
+
+#! spec/submit/separate_yaml/job.yaml
+suite: ftq
+nr_task: 2
+samples: 6000ss
+ftq:
+  test: cache
+  freq: 20
+lab: spec_lab
+testbox: vm-2p8g--spec_submit
+job_origin: spec/submit/separate_yaml/job.yaml
+tbox_group: vm-2p8g--spec_submit
+
+#! hosts/vm-2p8g
+provider: qemu
+template: kvm
+nr_node: 1
+nr_cpu: 2
+memory: 8G
+arch: aarch64
+
+#! /etc/compass-ci/defaults/crystal.yaml
+SCHED_HOST: 172.168.131.113
+TASKQUEUE_HOST: 172.168.131.113
+LKP_SERVER: 172.168.131.113
+SCHED_PORT: 3000
+GIT_SERVER: 172.168.131.113
+GITCACHE_HOST: 172.168.131.113
+INITRD_HTTP_HOST: 172.168.131.113
+MASTER_FLUENTD_HOST: 172.168.131.113
+MASTER_FLUENTD_PORT: 24224
+my_email: team(a)crystal.ci
+my_name: team
+my_uuid: a426ef61-9afe-4679-bc2c-af0163393245
+
+#! /home/huxuejiao/.config/compass-ci/defaults/huxuejiao.yaml
+lkp_initrd_user: huxuejiao
+
+#! include/testbox/vm
+cpufreq_governor:
+need_kconfig:
+- CONFIG_KVM_GUEST=y
+
+#! user overrides
+
+#! auto generated by add_pp()
+pp:
+  ftq:
+    nr_task: 2
+    samples: 6000ss
+    freq: 20
+    test: cache
+  cpufreq_governor:
+
+#! auto generated by add_monitors()
+monitors:
diff --git a/spec/submit/separate_yaml/ftq.yaml b/spec/submit/separate_yaml/job.yaml
similarity index 100%
rename from spec/submit/separate_yaml/ftq.yaml
rename to spec/submit/separate_yaml/job.yaml
diff --git a/spec/submit_spec.rb b/spec/submit_spec.rb
index 4096cb73..312400a4 100644
--- a/spec/submit_spec.rb
+++ b/spec/submit_spec.rb
@@ -14,46 +14,23 @@ def stable_yaml_file(yaml_file)
   save_yaml(job, yaml_file)
 end
 
-def traverse_file(output_dir)
-  Dir.glob("#{output_dir}/*.yaml").each do |yaml_file|
-    stable_yaml_file(yaml_file)
-  end
+def traverse_file(yaml_file)
+  stable_yaml_file(yaml_file) unless File.basename(yaml_file) == 'job.yaml'
 end
-
-def submit_job(submit_item)
-  submit_yaml_path = File.join("#{LKP_SRC}/spec/submit", submit_item)
-  Dir.glob("#{submit_yaml_path}/*.yaml").each do |yaml_file|
-  output_dir = File.join(submit_yaml_path, File.basename(yaml_file, '.yaml'))
+    
+def submit_job()
+  Dir.glob("#{LKP_SRC}/spec/submit/*").each do |dir|
+    yaml_file = "#{dir}/job.yaml"
     submit_cmd = [
       "#{LKP_SRC}/sbin/submit",
-      '-o', output_dir,
+      '-o', dir,
       '-s', 'lab: spec_lab',
       '-s', 'testbox: vm-2p8g--spec_submit',
       yaml_file
     ]
     system(*submit_cmd)
-    traverse_file(output_dir)
+    traverse_file(yaml_file)
   end
 end
 
-describe 'submit job spec' do
-  it 'link jobs spec' do
-    submit_job('link_jobs')
-  end
-
-  it 'link matrix' do
-    submit_job('matrix')
-  end
-
-  it 'separate yaml spec' do
-    submit_job('separate_yaml')
-  end
-
-  it 'job on fail' do
-    submit_job('job_on_fail')
-  end
-
-  it 'merge yaml' do
-    submit_job('merge_yaml')
-  end
-end
+submit_job
-- 
2.23.0