Multi CPU a vzájomné rozsynchronizovanie

sofokles

Multi CPU a vzájomné rozsynchronizovanie
« kdy: 10. 01. 2012, 10:53:56 »
zdravim,
stretli ste sa uz niekto s problemom ze jedno (viac) cpu je rozsynchronizovane oproti ostatnym?
prejavuje sa to napriklad tak, ze obcas trva prikaz "sleep 5" ovela dlhsie ako 5 sekund.
rozdiel v synchronizacii casom stale narasta.
clocksource je jiffies, inu moznost system (rhel) neponuka.

v logu je asi len tato zaujimava hlaska:
MP-BIOS bug: 8254 timer not connected to IO-APIC Using local APIC timer interrupts.

nemate niekde odkazy ako vlastne funguje casovanie v pripade multi cpu?

« Poslední změna: 10. 01. 2012, 11:22:23 od Petr Krčmář »


Sten

Re:Multi CPU a vzájomné rozsynchronizovanie
« Odpověď #1 kdy: 10. 01. 2012, 11:51:23 »
Časování funguje stejně jako u jednoho procesoru, jen plánovač plánuje několik úloh místo jedné. sleep 5 znamená uspat minimálně na pět sekund, pokud plánovač se v tu chvíli nezapne nebo dostane přednost jiný proces, tak se váš proces nespustí. Pro udržení těch pěti sekund se používá usleep nebo select, gettimeofday a počítání, kolik vlastně mám spát.

sofokles

Re:Multi CPU a vzájomné rozsynchronizovanie
« Odpověď #2 kdy: 10. 01. 2012, 12:04:21 »
ten sleep bol len priklad ze na serveri nie je nieco v poriadku. aplikacia co na nom bezi nedokaze korektne fungovat.
skor ma to zaujimalo z HW hladiska. ak sa nemylim, kazde CPU dostava periodicky nejake prerusenia od externeho zdroja (nejaky oscilator?), na zaklade ktorych si urcuje cas.
mam dojem, ze tie prerusenia nie su rovnake pre vsetky CPU a jedno CPU ma mensi pocet tickov ako ostatne.