TKG
TKG copied to clipboard
Simplify ottawa.csv
The mode is a short name for a list of jvm options. We inherited the old logic from vmfarm.
TKG/resources/modes.xml - defines the list of jvm options for each mode TKG/resources/ottawa.csv - defines what mode can or cannot run on which platforms. The complexity escalates when it needs to support 64_nocmprssptrs, cmprssptrs, and mixed JVM using one file. And support both internal (old Axxon) and external cases.
Due to the large number of columns and rows, it's difficult to discern what has been altered in the ottawa.csv file. And we had cases in which we had to revert change after merging. (see https://github.com/adoptium/TKG/pull/511). Also, it is hard to add new platforms.
Below are the platforms that we have so far:
win_x86-32 win_x86-64_ncr win_x86-64_cr win_x86-64 linux_x86-32 linux_x86-64_ncr linux_x86-64_cr linux_x86-64 linux_ppc-32 linux_ppc-64_ncr linux_ppc-64_cr linux_ppc-64 linux_ppcle-64_ncr linux_ppcle-64_cr linux_ppc-64 linux_390-31 linux_390-64_ncr linux_390-64_cr linux_390-64_cr_zt linux_390-64 linux_390-64_zt aix_ppc-32 aix_ppc-64_ncr aix_ppc-64_cr aix_ppc-64 zos_390-31 zos_390-31_zt zos_390-64_ncr zos_390-64_cr zos_390-64_cr_zt zos_390-64 zos_390-64_zt linux_arm osx_x86-64_ncr osx_x86-64_cr osx_x86-64 osx_aarch64_ncr bsd_x86-64 sunos_sparcv9-64 sunos_x86-64 linux_aarch64_ncr linux_aarch64_cr linux_aarch64 linux_riscv64_ncr linux_riscv64_cr linux_riscv64 alpine-linux_x86-64 alpine-linux_aarch64 default-64 default-none64
I think we need to simplify ottawa.csv. To start, we could
- remove the platforms that do not use special modes (i.e., bsd_x86-64, sunos_sparcv9-64, sunos_x86-64-64). The
default-64anddefault-none64should cover the regular cases. - remove the modes that we do not use in the pipeline
I am open to ideas of replacing ottawa.csv with a better solution.
💯 agree, and recalling that we had long ago discussions of moving away from modes completely, since the variations within the playlist can be directly a set of VM options.
What modes really provides is a check on whether certain options are valid on certain platforms. Perhaps there is a different way to relate this information to test targets.