[OSy] Nedeterministicke chovanie - preco?
Peter Júnoš
petoju at gmail.com
Sat Nov 10 03:10:38 CET 2012
Dobry den,
dakujem za rady - o tom stasti v nestasti to asi ani nie je, lebo chybu
hladame od zaciatku tyzdna - az teraz niekto skusil pridat zamky k
vypisu a zacalo vyskytovat na zaciatku, co sa potom dalo dobre ladit.
Chybu som nasiel, ale bohuzial nie v mojom kode alebo v kode, ktory by
som vedel ovplyvnit (ak je moje podozrenie spravne).
V instrukciach / dissasembly je nieco taketo:
jal 8008f54c <puts>
lui v0, 0x8009
addiu a0,v0,13944
jal 8008f54c <puts>
Akurat sa mi zda, ako keby kompilator nepocital s BD slotom - v0 sa v
puts prepise bez ukladania (co moze) a potom logicky druhe puts dostane
nejaky nezmysel a spadne. Keby bol po JAL obycajny NOP, tak by tato cast
kodu fungovala podla ocakavani.
Parameter -fno-branch-delay alebo aj -fbranch-delay nic nemeni. Problem
s JALmi bez ocakavaneho BD slotu sa vyskytuje len v subore
adt/spinlock.c (ostatne volania mimo tuto jednotku vyzeraju dobre - s
NOPom). Na konkretne "atomicke instrukcie" ll/sc sa vykonavanie kodu
nedostalo.
Ako teda prosim, vyriesit este toto? (Pricinu takejto kompilacie sa mi
nepodarilo dnes (/vcera) odhalit, aj ked sa tam nepouziva nejaka
"kompilerova magia").
Dakujem
-- Peter Júnoš
On Pi, 2012-11-09 at 11:19 +0100, Martin Decky wrote:
> Hezky den,
>
> > Ako teda toto co najjednoduchsie riesit?
>
> V teto situaci se asi skutecne neda poradit nic jineho, nez co psal Petr
> Tuma. Tedy nasadit si dlouhe holinky a ponorit se do debuggovani na
> urovni instrukci, az po kolena :-) Zadna zkratka Vam tady asi nepomuze.
>
> Osobne bych postupoval tak, ze bych si otevrel disassembly kernelu (a
> pripadne firmwaru, i kdyz pokud jste jej nemenili, tak to jsou porad
> jenom tri instrukce), postupne bych krokoval kod instrukci po instrukci
> a porovnaval to, co vidim pri provadeni kodu, s tim, co vidim v
> disassembly (zda napriklad kod najendou neskoci nekam jinam nez by mel
> apod.). Pricina toho problemu zkratka nutne musi byt nekde v tom kodu.
> Muzete hovorit o stesti v nestesti, ze se ten problem projevuje tak brzo
> po bootu, pravdepodobne budete muset prokovat jen par desitek instrukci,
> coz se rozhodne da zvladnout v rozumnem case.
>
>
> M.D.
>
> _______________________________________________
> OSy mailing list
> OSy at d3s.mff.cuni.cz
> https://d3s.mff.cuni.cz/mailman/listinfo/osy
More information about the NSWI004
mailing list