Opened 9 years ago

Closed 8 years ago

#767 closed defect (fixed)

Spurious wrong-number-of-args errors on ARM

Reported by: gb Owned by:
Priority: normal Milestone:
Component: Compiler Version: trunk
Keywords: Cc:


Very occasionally, one sees something like (from memory) :

Error: wrong number of args to FOO:
       2 arguments provided, 2 accepted

(however exactly that's presented/worded.)

A working theory is that that's icache-related and that the comparison of nargs with a constant and the conditional UUO that follows are in different cache lines and some instruction other than the comparison is actually executed instead. (That's a working theory only because this error was a symptom of failure to flush the icache on an iOS system.)

If it happens again, we should try to determine the address of the code vector and see if it's plausible that the first and second instructions are in different cache lines.

(The lisp kernel -may- try to determine the cache line size from information in the ELF aux vector or via sysctl or something like that; I'm not sure if it does, and it's unlikely that the value is used.)

Change History (1)

comment:1 Changed 8 years ago by rme

  • Resolution set to fixed
  • Status changed from new to closed

r14764 seems to have been the fix for this.

Note: See TracTickets for help on using tickets.