Port-powerpc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: semi-random crashes on some macppc hardware



Michael wrote:

> I've seen semi-random crashes ( often, but nowhere near always things
> like sshd or makemandb would segfault during boot ) [...]
> To me that looks like insufficient instruction cache syncing when
> writing the PLT entries in ld.elf_so, in order to test this I sprinkled
> __syncicache() calls in a few suspicious-looking places in ppc_reloc.c.
> I haven't seen any PLT-related crashes since.

Thanks for that!

I also saw some stability problems since 7.0 on my sandpoint servers
(probably locking problems), but nothing like this so far.


> The diff is attached, I'm sure it does more __syncicache()ing than
> needed but so far I didn't have time to investigate further.

I don't think that the __syncicache() at line 344 would have any effect, as
all these entries will be invalidated at line 148 in _rtld_setup_pltgod()
anyway.

Also your __syncicache(w, 12) seems irrelevant. The only difference is that
it might invalidate one unmodified word behind the entry, while the
previous version invalidated one unmodified word before the entry.

Probably the __syncicache() for line 399 (obj->gotptr != NULL) was the
important one, although I doubt if this is actually executed as code.

Otherwise there is also a __syncicache() for PPC64 missing at line 389?

-- 
Frank Wille



Home | Main Index | Thread Index | Old Index