[OSy] Nedeterministicke chovanie - preco?

Petr Tůma petr.tuma at d3s.mff.cuni.cz
Fri Nov 9 09:28:55 CET 2012


Dobry den,

z vaseho popisu tezko rict, ale pokud je to opravdu kod brzy na zacatku 
kernelu, tak bych si treba spustil msim v trace mode a koukal do vypisu 
instrukci.

Nemate nahodou v msim.conf stale dva procesory ?

Petr Tuma


On 09/11/12 02:04, Peter Júnoš wrote:
> Dobry den,
>
> kernel sa zacal chovat divne - mate aspon nejaky napad, ci by to mohlo
> byt?
>
> Predtym padal nahodne - to by som este chapal (nieco s pointerami), ale
> teraz uz pada v docela malom kusku programu hned na zaciatku
> bsp_start(). Je pomerne divne, ze v tom malom kusku nerobim takmer
> ziadne nebezpecne operacie - akurat volam inicializaciu printeru a ten
> si inicializuje spinlock ("globalny", staticky alokovany - akurat preda
> jeho adresu dalej - na tu sa nieco malo zapise).
> Ked sa inicializacia pointeru vrati, tak to zvladne este par instrukcii
> a potom to uz spadne. Ziaden z prikazov pritom vobec nemusi manipulovat
> s globalnym stavom ani so zamkami.
> Teda postupnost prikazov
>
> puts("aaa"); puts("bbb");
>
> dopadne tak, ze prvy prebehne v pohode a v druhom dostane puts ako
> parameter adresu v mapovanej casti pamati, co vyvola vynimku. Puts inak
> beha dobre a kedze je to 4 riadkovy kod bez zamkov a dalsich
> serepeticiek, tak je vidiet, ze by tam chyba nemala byt.
>
> Jan Mares, co to robi so mnou mi posielal este absurdnejsi kus kodu
> size_t* addr  = &lock->is_opened;
> size_t* addr2 = &lock->is_opened;
>
> addr = 0x20
> addr2 = 0x80095a2...
>
> U toho bohuzial neviem, ako presne sa k tomu dostal - na moj kod a
> najdenie priciny mi stacil debugger.
>
> Kedze su interrupty zakazane, tak by sa nemal objavit nikto mimo hlavne
> vlakno, kto by to zeditoval.
>
> Ako teda toto co najjednoduchsie riesit? Mate aspon nejaky napad, co tu
> moze byt zle?
>
> Dakujem za pripadne napady / rady.
>




More information about the NSWI004 mailing list