mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-10 07:26:40 -04:00
Halve the size of immobile cards
This commit is contained in:
parent
1da3c086e7
commit
e972a1a2b8
|
|
@ -42,7 +42,7 @@
|
||||||
;;; the start of objects.
|
;;; the start of objects.
|
||||||
(defconstant gencgc-alloc-granularity 0)
|
(defconstant gencgc-alloc-granularity 0)
|
||||||
;;; The card size for immobile/low space
|
;;; The card size for immobile/low space
|
||||||
(defconstant immobile-card-bytes 4096)
|
(defconstant immobile-card-bytes 2048)
|
||||||
|
|
||||||
;;; ### Note: 'lispword' always means 8 bytes, and 'word' usually means
|
;;; ### Note: 'lispword' always means 8 bytes, and 'word' usually means
|
||||||
;;; the same as 'lispword', except in the assembler and disassembler,
|
;;; the same as 'lispword', except in the assembler and disassembler,
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ then
|
||||||
stdout=$TEST_DIRECTORY/$TEST_FILESTEM.out
|
stdout=$TEST_DIRECTORY/$TEST_FILESTEM.out
|
||||||
stderr=$TEST_DIRECTORY/$TEST_FILESTEM.err
|
stderr=$TEST_DIRECTORY/$TEST_FILESTEM.err
|
||||||
run_sbcl >$stdout 2>$stderr <<EOF
|
run_sbcl >$stdout 2>$stderr <<EOF
|
||||||
;; Immobile pages have physical protection, so it's unlikely that it would be wrong.
|
;; Mark a page as logically protected when it should not be, and confirm that
|
||||||
;; However, the verifier was never actually checking.
|
;; the heap invariant checker finds an error.
|
||||||
(assert (= (sb-kernel:generation-of '*posix-argv*) sb-vm:+pseudo-static-generation+))
|
(assert (= (sb-kernel:generation-of '*posix-argv*) sb-vm:+pseudo-static-generation+))
|
||||||
(assert (< (sb-kernel:generation-of *posix-argv*) sb-vm:+pseudo-static-generation+))
|
(assert (< (sb-kernel:generation-of *posix-argv*) sb-vm:+pseudo-static-generation+))
|
||||||
(define-alien-type nil
|
(define-alien-type nil
|
||||||
|
|
@ -29,7 +29,7 @@ then
|
||||||
(setf (extern-alien "pre_verify_gen_0" char) 1)
|
(setf (extern-alien "pre_verify_gen_0" char) 1)
|
||||||
(let ((i (floor (- (sb-kernel:get-lisp-obj-address '*posix-argv*)
|
(let ((i (floor (- (sb-kernel:get-lisp-obj-address '*posix-argv*)
|
||||||
sb-vm:fixedobj-space-start)
|
sb-vm:fixedobj-space-start)
|
||||||
4096)))
|
sb-vm:immobile-card-bytes)))
|
||||||
;; Mark it as-if write-protected (though without using mprotect)
|
;; Mark it as-if write-protected (though without using mprotect)
|
||||||
;; This constant is defined in immobile-space.c: #define WRITE_PROTECT 0x80
|
;; This constant is defined in immobile-space.c: #define WRITE_PROTECT 0x80
|
||||||
(setf (slot (deref fixedobj-pages i) 'flags) 128)
|
(setf (slot (deref fixedobj-pages i) 'flags) 128)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue