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.
|
||||
(defconstant gencgc-alloc-granularity 0)
|
||||
;;; 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
|
||||
;;; the same as 'lispword', except in the assembler and disassembler,
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ then
|
|||
stdout=$TEST_DIRECTORY/$TEST_FILESTEM.out
|
||||
stderr=$TEST_DIRECTORY/$TEST_FILESTEM.err
|
||||
run_sbcl >$stdout 2>$stderr <<EOF
|
||||
;; Immobile pages have physical protection, so it's unlikely that it would be wrong.
|
||||
;; However, the verifier was never actually checking.
|
||||
;; Mark a page as logically protected when it should not be, and confirm that
|
||||
;; 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+))
|
||||
(define-alien-type nil
|
||||
|
|
@ -29,7 +29,7 @@ then
|
|||
(setf (extern-alien "pre_verify_gen_0" char) 1)
|
||||
(let ((i (floor (- (sb-kernel:get-lisp-obj-address '*posix-argv*)
|
||||
sb-vm:fixedobj-space-start)
|
||||
4096)))
|
||||
sb-vm:immobile-card-bytes)))
|
||||
;; Mark it as-if write-protected (though without using mprotect)
|
||||
;; This constant is defined in immobile-space.c: #define WRITE_PROTECT 0x80
|
||||
(setf (slot (deref fixedobj-pages i) 'flags) 128)
|
||||
|
|
|
|||
Loading…
Reference in a new issue