• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2024 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14module:
15  name: runtime
16  namespace: ark
17
18options:
19- name: boot-panda-files
20  type: arg_list_t
21  default:
22      - $ORIGIN/../pandastdlib/arkstdlib.abc
23  description: Boot panda files separated by colon
24  delimiter: ":"
25
26- name: panda-files
27  type: arg_list_t
28  default: []
29  description: Panda files separated by colon which is not within boot-panda-files
30  delimiter: ":"
31
32- name: boot-intrinsic-spaces
33  type: arg_list_t
34  default:
35    - core
36  possible_values:
37    - core
38  description: Load specified intrinsic spaces. This option is for fine tuning. Use load-runtimes instead
39  delimiter: ":"
40
41- name: boot-class-spaces
42  type: arg_list_t
43  default:
44    - core
45  possible_values:
46    - core
47  description: Load specified class spaces. This option is for fine tuning. Use load-runtimes instead
48  delimiter: ":"
49
50- name: runtime-type
51  type: std::string
52  default: core
53  possible_values:
54    - core
55  description: Runtime type. This option is for fine tuning. Use load-runtimes instead
56
57- name: load-runtimes
58  type: arg_list_t
59  default:
60    - core
61  possible_values:
62    - core
63  description: Load specified class and intrinsic spaces and define runtime type
64  delimiter: ":"
65
66- name: runtime-compressed-strings-enabled
67  type: bool
68  default: true
69  description: Enable/disable compressed strings
70
71- name: explicit-concurrent-gc-enabled
72  type: bool
73  default: true
74  description: Enable/disable explicit GC run in concurrent
75
76- name: run-gc-in-place
77  type: bool
78  default: false
79  description: Enable/disable running GC only in place
80
81- name: full-gc-bombing-frequency
82  type: uint32_t
83  default: 0
84  description: Switch on running Full GC collection instead of the one in the trigger queue in the GC thread. Value means frequency - each N collection in the GC thread will be a full collection. Can't be use with run-gc-in-place
85
86- name: run-gc-every-safepoint
87  type: bool
88  default: false
89  description: Run GC on every safepoint. GC will be run only if we use gc-trigger-type=debug and run-gc-in-place=true
90
91- name: compiler-enable-jit
92  type: bool
93  default: true
94  description: Enables/disables JIT compiler
95
96- name: compiler-hotness-threshold
97  type: uint32_t
98  default: 3000
99  description: Threshold for "hotness" counter of the method after that it will be compiled
100
101- name: compiler-profiling-threshold
102  type: uint32_t
103  default: 1500
104  description: Threshold to start method profiling.
105
106- name: compiler-enable-osr
107  type: bool
108  default: true
109  description: Enables/disables OSR compilation
110
111- name: debugger-library-path
112  type: std::string
113  default: ""
114  description: Path to debugger library
115
116- name: debugger-enable
117  type: bool
118  default: false
119  description: Is debugger enabled on runtime create
120
121- name: sampling-profiler-enable
122  type: bool
123  default: false
124  description: Is the sampling profiler enabled during execution time
125
126- name: sampling-profiler-interval
127  type: uint32_t
128  default: 500
129  description: Sampling profiler interval in microseconds
130
131- name: sampling-profiler-output-file
132  type: std::string
133  default: ""
134  description: Name of file to collect trace in .aspt format
135
136- name: debugger-port
137  type: uint32_t
138  default: 19015
139  description: Port for serving debugger clients via socket
140
141- name: debugger-break-on-start
142  type: bool
143  default: false
144  description: Whether to break threads on creation or not
145
146- name: log-components
147  type: arg_list_t
148  default:
149    - all
150  possible_values:
151    - all
152    - alloc
153    - mm-obj-events
154    - classlinker
155    - common
156    - core
157    - gc
158    - gc_trigger
159    - reference_processor
160    - interpreter
161    - compiler
162    - pandafile
163    - memorypool
164    - runtime
165    - trace
166    - debugger
167    - interop
168    - verifier
169    - compilation_queue
170    - aot
171    - events
172    - scheduler
173    - coroutines
174  description: '[DEPRECATED] Option was moved to libpandabase/options.yaml, use base_options::Options instead of runtime options.'
175  delimiter: ":"
176  deprecated: true
177
178- name: compiler-nullcheck
179  type: uint64_t
180  default: 1
181  possible_values:
182    - 0
183    - 1
184  description: Dfx option for compiler-nullcheck
185
186- name: reference-dump
187  type: uint64_t
188  default: 1
189  possible_values:
190    - 0
191    - 1
192  description: Dfx option for reference-dump
193
194- name: signal-catcher
195  type: uint64_t
196  default: 1
197  possible_values:
198    - 0
199    - 1
200  description: Dfx option for signal-catcher
201
202- name: signal-handler
203  type: uint64_t
204  default: 1
205  possible_values:
206    - 0
207    - 1
208  description: Dfx option for signal-handler
209
210- name: sigquit-flag
211  type: uint64_t
212  default: 1
213  possible_values:
214    - 0
215    - 1
216  description: Dfx option for sigquit
217
218- name: sigusr1-flag
219  type: uint64_t
220  default: 1
221  possible_values:
222    - 0
223    - 1
224  description: Dfx option for sigusr1
225
226- name: sigusr2-flag
227  type: uint64_t
228  default: 1
229  possible_values:
230    - 0
231    - 1
232  description: Dfx option for sigusr2
233
234- name: mobile-log-flag
235  type: uint64_t
236  default: 1
237  possible_values:
238    - 0
239    - 1
240  description: Dfx option for mobile-log
241
242- name: dfx-log
243  type: uint64_t
244  default: 0
245  possible_values:
246    - 0
247    - 1
248  description: Dfx option for dfx log
249
250- name: gc-type
251  type: std::string
252  default: g1-gc
253  possible_values:
254    - epsilon
255    - epsilon-g1
256    - stw
257    - gen-gc
258    - g1-gc
259  description: Type of used GC
260
261- name: ic-enable
262  type: bool
263  default: true
264  description: switch of inline cache
265
266- name: gc-trigger-type
267  type: std::string
268  default: heap-trigger-test
269  possible_values:
270    - heap-trigger-test
271    - heap-trigger
272    - adaptive-heap-trigger
273    - trigger-heap-occupancy
274    - no-gc-for-start-up
275    - debug
276    - debug-never
277    - pause-time-goal-trigger
278  description: Type of used GC trigger
279
280- name: log-detailed-gc-info-enabled
281  type: bool
282  default: false
283  description: If print INFO log to get more detailed information in GC.
284
285- name: log-detailed-gc-compaction-info-enabled
286  type: bool
287  default: false
288  description: If print INFO log to get more detailed compaction/promotion information per region in GC.
289
290- name: gc-trigger-percent-threshold
291  type: uint32_t
292  default: 15
293  description: Percent of heap for threshold increasing
294
295- name: gc-trigger-adaptive-multiplier
296  type: uint32_t
297  default: 3
298  description: Adjust jump from too frequent gc. New jump calculate as gc-trigger-adaptive-multiplier * max-max-extra-heap-size
299
300- name: max-trigger-percent
301  type: uint32_t
302  default: 45
303  description: Percent of maximum heap size is used as threshold for trigger-heap-occupancy
304
305- name: skip-startup-gc-count
306  type: uint32_t
307  default: 10
308  description: No stw gc count for no-gc-for-start-up
309
310- name: gc-use-nth-alloc-trigger
311  type: bool
312  default: false
313  description: Allow to trigger GC on n-th allocation
314
315- name: init-young-space-size
316  type: uint64_t
317  default: 4194304
318  description: Initial young space size gen-gc
319
320- name: young-space-size
321  type: uint64_t
322  default: 4194304
323  description: Young space size of gen-gc
324
325- name: young-shared-space-size
326  type: uint64_t
327  default: 524288
328  description: How much space in young-gen are shared (this space is not used for tlabs)
329
330- name: min-extra-heap-size
331  type: uint64_t
332  default: 5242880
333  description: Minimum extra heap size for trigger gc
334
335- name: max-extra-heap-size
336  type: uint64_t
337  default: 8388608
338  description: Maximum extra heap size for trigger gc
339
340- name: gc-debug-trigger-start
341  type: uint64_t
342  default: 0
343  description: First iteration to start returning true in debug trigger
344
345- name: gc-dump-heap
346  type: bool
347  default: false
348  description: Dump heap before and after GC
349
350- name: gc-workers-count
351  type: uint32_t
352  default: 2
353  description: Set number of additional GC helper threads. GC uses these threads to speed up collection doing work in parallel.
354
355- name: manage-gc-threads-affinity
356  type: bool
357  default: true
358  description: Manage GC Threads affinity on cores
359
360- name: use-weak-cpu-for-gc-concurrent
361  type: bool
362  default: false
363  description: Set GC Thread on weak cores during concurrent phases
364
365- name: g1-region-garbage-rate-threshold
366  type: uint32_t
367  default: 52
368  description: Specify garbage rate threshold of a tenured region to be included into a mixed collection.
369
370- name: g1-number-of-tenured-regions-at-mixed-collection
371  type: uint32_t
372  default: 20
373  description: Specify a max number of tenured regions which can be collected at mixed collection in G1GC.
374
375- name: g1-track-freed-objects
376  type: std::string
377  default: default
378  possible_values:
379  - default
380  - 'true'
381  - 'false'
382  description: Specify whether G1GC tracks object removing (i.e. update objects count in memstats and log removed objects). Default means true on Release and false otherwise. If the value is true G1GC doesn't delete classes in concurrent phase because it needs to know object size.
383
384- name: gc-marking-stack-new-tasks-frequency
385  type: uint64_t
386  default: 10000000
387  description: Limit the creation rate of tasks during marking in nanoseconds. if average task creation during marking is less than this value - it increases the stack size limit to create tasks less frequently.
388
389- name: gc-root-marking-stack-max-size
390  type: uint32_t
391  default: 186
392  description: The max stack size for root marking in main thread, if it exceeded, we will send a new task to workers. 0 means unlimited.
393
394- name: gc-workers-marking-stack-max-size
395  type: uint32_t
396  default: 200
397  description: The max stack size for marking stage proceed in workers threads, if it exceeded, we will send a new task to other workers. 0 means unlimited.
398
399- name: gc-parallel-marking-enabled
400  type: bool
401  default: true
402  description: Enable parallel marking in GC if it is supported (now it is G1 and STW). If we don't have gc workers, this options will be ignored.
403
404- name: gc-parallel-compacting-enabled
405  type: bool
406  default: true
407  description: Enable parallel compacting in GC if it is supported (now it is G1). If we don't have gc workers, this options will be ignored.
408
409- name: gc-parallel-ref-updating-enabled
410  type: bool
411  default: true
412  description: Enable parallel references updating in GC if it is supported (now it is G1). If we don't have gc workers, this options will be ignored.
413
414- name: g1-single-pass-compaction-enabled
415  type: bool
416  default: true
417  description: Enable single pass compaction mode for G1 GC if it is supported by VM implementation
418
419- name: reference-processor-enable
420  type: bool
421  default: true
422  description: Enables/disables ReferenceProcessor
423
424- name: log-level
425  type: std::string
426  default: error
427  possible_values:
428  - debug
429  - info
430  - warning
431  - error
432  - fatal
433  description: '[DEPRECATED] Option was moved to libpandabase/options.yaml, use base_options::Options instead of runtime options.'
434  deprecated: true
435
436- name: log-stream
437  type: std::string
438  default: std
439  possible_values:
440  - std
441  - file
442  - fast-file
443  - dummy
444  description: '[DEPRECATED] Option was moved to libpandabase/options.yaml, use base_options::Options instead of runtime options.'
445  deprecated: true
446
447- name: log-file
448  type: std::string
449  default: ""
450  description: '[DEPRECATED] Option was moved to libpandabase/options.yaml, use base_options::Options instead of runtime options.'
451  deprecated: true
452
453- name: gc-enable-tracing
454  type: bool
455  default: false
456  description: enables/disables tracing gc
457
458- name: g1-enable-concurrent-update-remset
459  type: bool
460  default: true
461  description: enables/disables concurrent update remset thread
462
463- name: g1-min-concurrent-cards-to-process
464  type: uint32_t
465  default: 2
466  description: Minimum number of cards to process from queue in update-remset-thread. Higher number consumes less CPU, but can cause higher pause.
467
468- name: g1-hot-cards-processing-frequency
469  type: uint32_t
470  default: 7
471  description: Frequency of proccessing hot cards in update-remset-thread
472
473- name: g1-promotion-region-alive-rate
474  type: uint32_t
475  default: 75
476  description: Minimum percentage of alive bytes in young region to promote it into tenured without moving. 100 value means never.
477
478- name: g1-full-gc-region-fragmentation-rate
479  type: uint32_t
480  default: 10
481  description: Maximum fragmentation percentage for a tenured region with no garbage inside to skip it on full collection. If the region has bigger fragmentation, we will collect it during a full collection in spite of it has no garbage inside. 0 value means we will collect every region.
482
483- name: g1-pause-time-goal
484  description: Enable G1 pause time goal
485  sub_options:
486  - name: max-gc-pause
487    type: uint32_t
488    default: 10
489    description: Maximum sum of G1 GC pauses during gc-pause-interval in milliseconds
490  - name: gc-pause-interval
491    type: uint32_t
492    default: 11
493    description: Time interval for max-gc-pause in milliseconds
494
495- name: distributed-profiling
496  type: bool
497  default: false
498  description: Enable/disable collection of information for distributed profiling
499
500- name: aot-file
501  type: std::string
502  default: ""
503  description: path to aot file
504
505- name: aot-files
506  type: arg_list_t
507  default: []
508  description: List of aot files to be loaded
509  delimiter: ':'
510
511- name: aot-verify-abs-path
512  type: bool
513  default: true
514  description: Use absolute path to panda files in Aot verification
515
516- name: adaptive-tlab-size
517  type: bool
518  default: true
519  description: Enable/disable adaptive TLAB size according to runtime allocation statistics
520
521- name: init-tlab-size
522  type: uint64_t
523  default: 4096
524  description: Initial TLAB size and maximum size of object to be allocated in TLAB. TLAB size remains constant unless adaptive-tlab-size is enabled. Also, this value is used for YoungAllocMaxSize
525
526- name: max-tlab-size
527  type: uint64_t
528  default: 16384
529  description: Max TLAB size. Used when adaptive-tlab-size is enabled
530
531- name: use-tlab-for-allocations
532  type: bool
533  default: true
534  description: Enable/disable TLAB using for object allocations. Now, it is ignored for all GCs except GenGC. Temporary option for quick switch between modes.
535
536- name: init-heap-size-limit
537  type: uint64_t
538  default: 536870912
539  description: Initial size of pool used for objects (Xms). If it was not set explicitly then it set as heap-size-limit
540
541- name: heap-size-limit
542  type: uint32_t
543  default: 536870912
544  description: Max heap size
545
546- name: internal-memory-size-limit
547  type: uint64_t
548  default: 2147483648
549  description: Max internal memory used by the VM
550
551- name: frames-memory-size-limit
552  type: uint64_t
553  default: 2147483648
554  description: Max internal memory used for frames in the VM
555
556- name: min-heap-free-percentage
557  type: uint32_t
558  default: 30
559  description: Minimum percentage of free space in heap. Must be 0 <= min-heap-free-percentage <= max-heap-free-percentage <= 100
560
561- name: max-heap-free-percentage
562  type: uint32_t
563  default: 70
564  description: Maximum percentage of free space in heap. Must be 0 <= min-heap-free-percentage <= max-heap-free-percentage <= 100
565
566- name: code-cache-size-limit
567  type: uint64_t
568  default: 33554432
569  description: The limit for compiled code size.
570
571- name: compiler-memory-size-limit
572  type: uint64_t
573  default: 268435456
574  description: Max memory used by the compiler
575
576- name: print-memory-statistics
577  type: bool
578  default: false
579  description: Enable/disable printing memory statistics in the end of the program
580
581- name: print-gc-statistics
582  type: bool
583  default: false
584  description: Enable/disable printing gc statistics in the end of the program
585
586- name: no-async-jit
587  type: bool
588  default: false
589  description: Perform compilation in the main thread or in parallel worker
590
591- name: compiler-queue-type
592  type: std::string
593  default: counter-priority
594  possible_values:
595    - simple
596    - counter-priority
597    - aged-counter-priority
598  description: Type of compiler queue
599
600- name: compiler-task-life-span
601  type: uint32_t
602  default: 500
603  description: A time in milliseconds of task life span in compiler counter priority queue
604
605- name: compiler-queue-max-length
606  type: uint32_t
607  default: 100
608  description: Max length of compiler queue
609
610- name: compiler-epoch-duration
611  type: uint32_t
612  default: 500
613  description: Duration in milliseconds of an epoch in compiler aged counter priority queue
614
615- name: compiler-death-counter-value
616  type: uint32_t
617  default: 500
618  description: Minimum value of aged counter, which will be still considered
619
620- name: limit-standard-alloc
621  type: bool
622  default: false
623  description: Limit standard allocations usage in runtime
624
625- name: internal-allocator-type
626  type: std::string
627  default: default
628  possible_values:
629    - panda_allocators
630    - malloc
631    - default
632  description: Default means using malloc for Release, and panda allocators for Debug builds. If we use malloc, we will ignore limit-standard-alloc option.
633
634- name: finalizer-timeout-ms
635  type: uint32_t
636  default: 10000
637  description: Set finalizer daemon watchdog time
638
639- name: properties
640  type: arg_list_t
641  default:
642    - user.locale=en-US
643  description: command-line property settings of VM
644
645- name: events-output
646  type: std::string
647  default: none
648  possible_values:
649    - none
650    - csv
651    - memory
652    - log
653  description: Specify events output
654
655- name: events-file
656  type: std::string
657  default: events.csv
658  description: Path to events output file (if needed)
659
660- name: mem-alloc-dump-exec
661  type: bool
662  default: false
663  description: true if need to dump
664
665- name: mem-alloc-dump-file
666  type: std::string
667  default: mem_dump.csv
668  description: Path to mem dump file (if needed)
669
670- name: startup-time
671  type: bool
672  default: false
673  description: Print the start time of command execution
674
675- name: max-free
676  type: uint32_t
677  default: 8388608
678  description: Trigger native memory recycling watermark, default 8 M
679
680- name: native-gc-trigger-type
681  type: std::string
682  default: simple-strategy
683  possible_values:
684    - no-native-gc-trigger
685    - simple-strategy
686  description: Type of native gc trigger
687
688- name: profilesaver-sleeping-time-ms
689  type: uint32_t
690  default: 2000
691  description: Set wake up period time of daemon thread for profile saver
692
693- name: profilesaver-delta-number-threshold
694  type: uint64_t
695  default: 0
696  description: delta number threshold of newly added method or class for profile saver
697
698- name: profilesaver-enabled
699  type: bool
700  default: false
701  description: whether open the profilesaver functions
702
703- name: start-as-zygote
704  type: bool
705  default: false
706  description: whether current vm is zygote
707
708- name: verification-enabled
709  type: bool
710  default: false
711  description: Whether to enable verification
712
713- name: verification-mode
714  type: std::string
715  default: disabled
716  possible_values:
717    - disabled
718    - on-the-fly
719    - ahead-of-time
720  description: Verification mode. If verification-enabled option is turned on, the default value is ahead-of-time.
721
722- name: verification-update-cache
723  type: bool
724  default: true
725  description: Whether to update verification result cache
726
727- name: verification-threads
728  type: uint32_t
729  default: 1
730  description: number of verification threads
731
732- name: verification-config-file
733  type: std::string
734  default: "default"
735  description: filename with debug config for verifier
736
737- name: verification-cache-file
738  type: std::string
739  default: ""
740  description: verifier cache filename
741
742- name: enable-fast-heap-verifier
743  type: bool
744  default: true
745  description: Enable fast heap verifier, which is faster than ordinary heap verifier but uses more internal memory
746
747- name: heap-verifier
748  type: arg_list_t
749  default: []
750  possible_values:
751    - pre
752    - into
753    - post
754    - before_g1_concurrent
755    - fail_on_verification
756  description: parameters for heap verification
757  delimiter: ":"
758
759- name: max-global-ref-size
760  type: uint32_t
761  default: 65535
762  description: max size of global reference storage
763
764- name: global-reference-size-check-enabled
765  type: bool
766  default: false
767  description: whether open the global reference size check
768
769- name: concurrent-gc-enabled
770  type: bool
771  default: true
772  description: whether concurrent GC is enabled
773
774- name: snapshot-serialize-enabled
775  type: bool
776  default: false
777  description: whether snapshot serialize is enabled
778
779- name: snapshot-deserialize-enabled
780  type: bool
781  default: true
782  description: whether snapshot deserialize is enabled
783
784- name: snapshot-file
785  type: std::string
786  default: "/system/etc/snapshot"
787  description: snapshot file
788
789- name: framework-abc-file
790  type: std::string
791  default: "strip.native.min.abc"
792  description: snapshot file
793
794- name: enable-an
795  description: Try to load ARK .an file base on abc file location
796  sub_options:
797  - name: force
798    type: bool
799    default: false
800    description: Crash if there is no .an file for location based on .abc file
801
802- name: verify-call-stack
803  type: bool
804  default: false
805  description: Verify call stack before using of the StackWalker
806
807- name: safepoint-backtrace
808  type: bool
809  default: false
810  description: Print backtrace each time a thread gets suspended
811
812- name: aot-string-gc-roots-limit
813  type: uint64_t
814  default: 1000
815  description: Maximum amount of AOT string PLT-slots registered as GC roots
816
817- name: resolve-string-aot-threshold
818  type: uint32_t
819  default: 1
820  description: Minimum amount of ResolveStringAot calls before storing string pointer into PLT-slot
821
822- name: icu-data-path
823  type: std::string
824  default: "default"
825  description: Path to generated icu data file
826
827- name: ark-aot
828  type: bool
829  default: false
830  description: check if runtime start by ark_aot
831
832- name: intrinsics-blacklist
833  type: arg_list_t
834  default: []
835  description: List of methods for which intrinsics should not be linked
836  delimiter: ","
837
838- name: verify-entrypoints
839  type: bool
840  default: false
841  description: Verify compiler entrypoints
842
843- name: ignore-daemon-memory-leaks-threshold
844  type: uint32_t
845  default: 0
846  description: Ignore daemon memory leaks during runtime destruction with the specified threshold
847
848- name: interpreter-type
849  type: std::string
850  default: llvm
851  possible_values: [cpp, irtoc, llvm]
852  description: Interpreter implementation type
853
854- name: abc-layout-profile-location
855  type: std::string
856  default: "/data/profile/"
857  description: Specify the location of abc layout profile
858
859- name: intrusive-test
860  type: uint32_t
861  default: 0
862  description: Numerical identifier of an intrusive test
863
864- name: profile-output
865  type: std::string
866  default: "profile.bin"
867  description: Specify the location the collected profile information
868
869- name: call-profiling-table-size
870  type: uint32_t
871  default: 1000
872  description: Size of call profiling table size
873
874- name: coroutine-stack-size-pages
875  type: uint32_t
876  default: 64
877  description: defines stack size for stackful coroutines (in number of pages)
878
879- name: coroutines-stack-mem-limit
880  type: uint64_t
881  default: 134217728
882  description: defines the total amount of memory that can be used for stackful coroutine stacks allocation (in bytes)
883
884- name: use-coroutine-pool
885  type: bool
886  default: false
887  description: caches coroutine and coroutine context instances in a pool to speedup creation/destruction
888
889- name: workers-type
890  type: std::string
891  default: taskmanager
892  possible_values:
893  - threadpool
894  - taskmanager
895  description: Set type of additional VM workers. VM uses these workers to speed up internal algorithms (JIT, GC, etc.)
896
897- name: taskmanager-workers-count
898  type: uint32_t
899  default: 4
900  description: Number of worker threads for the taskmanager. Option is used only for --worker-type=taskmanager
901
902- name: task-stats-type
903  type: std::string
904  default: no-task-stats
905  possible_values:
906  - no-task-stats
907  - light-task-stats
908  description: Set type of task stats that will collect task manager metrics, if use set `no-task-stats` there will be no stats collection
909