From: Josh E. <jo...@el...> - 2011-08-24 17:19:53
|
On Wed, Aug 24, 2011 at 06:26:49PM +0300, Nikodemus Siivola wrote: > On 24 August 2011 17:25, Josh Elsasser <jo...@el...> wrote: > > > I just recently fixed the mail system on my OpenBSD/x86 machine and > > realized that the same problem has existed there since ~Aug 1. An > > automated bisection shows the problematic commit as: > > > ?? ??more robust backtraces for syscalls on x86 > > > If I update to the current HEAD and unconditionally set > > sb!c:alien-funcall-saves-fp-and-pc to 0 in make-host-2.lisp then the > > room test is able to finish normally, with normal-looking output: > > I'm guessing it's the call to find_page_index that is the problem. > > Does adding (declare (optimize (sb!c:alien-funcall-saves-fp-and-pc > 0))) to MAP-ALLOCATED-OBJECTS have the same effect for you? Seems to, yes: diff --git a/src/code/room.lisp b/src/code/room.lisp index 3877c29..6e4ef7e 100644 --- a/src/code/room.lisp +++ b/src/code/room.lisp @@ -236,6 +236,7 @@ #!-sb-fluid (declaim (maybe-inline map-allocated-objects)) (defun map-allocated-objects (fun space &optional careful) (declare (type function fun) (type spaces space)) + (declare (optimize (sb!c:alien-funcall-saves-fp-and-pc 0))) (flet ((make-obj (tagged-address) (if careful (make-lisp-obj tagged-address nil) Dynamic space usage is: 39,650,016 bytes. Read-only space usage is: 2,760 bytes. Static space usage is: 1,712 bytes. Control stack usage is: 1,656 bytes. Binding stack usage is: 392 bytes. Garbage collection is currently enabled. Breakdown for dynamic space: 9,528,024 bytes for 1,191,003 sap objects. 9,272,120 bytes for 12,169 code objects. 5,110,032 bytes for 638,754 cons objects. 3,935,512 bytes for 91,866 instance objects. 3,460,304 bytes for 58,473 simple-vector objects. 3,075,192 bytes for 331,963 bignum objects. 5,657,936 bytes for 133,259 other objects. 40,039,120 bytes for 2,457,487 dynamic objects (space total.) test room test ok |