Don't change verify_gens in tests.

This commit is contained in:
Stas Boukarev 2025-10-22 05:32:34 +03:00
parent 406561e0b0
commit 7bc62d6494
3 changed files with 29 additions and 23 deletions

View file

@ -8,10 +8,11 @@
(with-test (:name :adjacent-barrier-elimination-sticky-marks
:skipped-on (or :gc-stress
(:not :soft-card-marks)))
(setf (extern-alien "pre_verify_gen_0" int) 1)
(loop repeat 1000000
do (adjacent-barriers))
(setf (extern-alien "pre_verify_gen_0" int) 0))
(let ((pre_verify_gen_0 (extern-alien "pre_verify_gen_0" int)))
(setf (extern-alien "pre_verify_gen_0" int) 1)
(loop repeat 1000000
do (adjacent-barriers))
(setf (extern-alien "pre_verify_gen_0" int) pre_verify_gen_0)))
;;; The layout of FOO must not get promoted from gen0 to gen1.

View file

@ -55,22 +55,23 @@
#+sb-thread
(with-test (:name :concurrently-alloc-code)
;; this debug setting may or may not find a problem, but it can't hurt to try
(setf (extern-alien "pre_verify_gen_0" int) 1)
(let ((worker-th
(sb-thread:make-thread
(let ((stop (+ (get-internal-real-time)
(* 1.5 internal-time-units-per-second))))
(lambda (&aux (n 0))
(loop while (<= (get-internal-real-time) stop)
do (compile nil `(lambda () (print 20)))
(incf n))
n)))))
(let ((gcs 0))
(loop (gc) (incf gcs)
(unless (sb-thread:thread-alive-p worker-th)
(return))
(sb-unix:nanosleep 0 (+ 1000000 (random 100000))))
(let ((compiles (sb-thread:join-thread worker-th)))
(format t "~&Compiled ~D times, GC'ed ~D times~%"
compiles gcs))))
(setf (extern-alien "pre_verify_gen_0" int) 0))
(let ((pre_verify_gen_0 (extern-alien "pre_verify_gen_0" int)))
(setf (extern-alien "pre_verify_gen_0" int) 1)
(let ((worker-th
(sb-thread:make-thread
(let ((stop (+ (get-internal-real-time)
(* 1.5 internal-time-units-per-second))))
(lambda (&aux (n 0))
(loop while (<= (get-internal-real-time) stop)
do (compile nil `(lambda () (print 20)))
(incf n))
n)))))
(let ((gcs 0))
(loop (gc) (incf gcs)
(unless (sb-thread:thread-alive-p worker-th)
(return))
(sb-unix:nanosleep 0 (+ 1000000 (random 100000))))
(let ((compiles (sb-thread:join-thread worker-th)))
(format t "~&Compiled ~D times, GC'ed ~D times~%"
compiles gcs))))
(setf (extern-alien "pre_verify_gen_0" int) pre_verify_gen_0)))

View file

@ -116,6 +116,7 @@
(gc)
(when show (show (list-head *lfl*) #'get-next "del "))))
(defvar *old-verify-gens* (sb-alien:extern-alien "verify_gens" char))
;; Enable heap validity tester
#+(and generational (not gc-stress)) (setf (sb-alien:extern-alien "verify_gens" char) 0)
@ -526,3 +527,6 @@
(if (< i (1- nthreads)) (+ chunk-start chunk-size))))
(incf chunk-start chunk-size))
(tester lflist worklists))))
#+(and generational (not gc-stress))
(setf (sb-alien:extern-alien "verify_gens" char) *old-verify-gens*)