loadavg na SMP
Ladislav Michl
ladis na psi.cz
Čtvrtek Květen 23 15:44:19 CEST 2002
On Thu, May 23, 2002 at 09:24:15AM +0200, Martin Zidek wrote:
> Prakticky TASK_UNINTERRUPTIBLE je podobny TASK_INTERRUPTIBLE.
> S rozdilem ze
> TASK_INTERRUPTIBLE - stav ve kterem je proces supended (sleeping), ceka
> na uvolneni HW, podminky, systemovy zdroj nebo signal... Klasicke cekani.
>
> TASK_INTERRUPTIBLE se vyskytuje VELMI zridka, je to stav pri kterem
------------------ to je doufám překlep.
> proces spi, ale nereaguje na signaly. Treba kdyz otevira soubor, ale
> device driver neni pripraveny a potrebuje napr. detekovat hw. V takovem
aha, takže když je potom za určitý čas probuzen a device driver stále
není připravený tak zase usne, ne? není snad právě toto případ pro
TASK_INTERRUPTIBLE?
> pripdade by bylo nebezpecne takovy to proces v kernelu prerusit (
> nemoznost ukoncit detekce hardware, chybna detekce ), proto se hodi
> tento stav.
ano tento stav se někdy hodí, ale zrovna tyhle příklady bych tam
netahal. nelze-li ukončit detekci zařízení je beztak něco shnilého a
poznámka o chybné detekci nedává smysl. pokud mě přeruší, vrátím hw do
rozumného stavu (pokud jsem mu něco provedl) a končím s -ENODEV.
> Takze mily pane Cejko, tato struktura
hmm, občas mám pocit, že se na Čejku útočí jen proto, že je bsdčkař :(
a obsah jeho postů se velkoryse ignoruje. tady bych se asi měl omluvit
já za tenhle post, ale obhajoba špatné implementace se mi vůbec nelíbí.
>
> for_each_task(p) {
> if ((p->state == TASK_RUNNING ||
> (p->state & TASK_UNINTERRUPTIBLE)))
> nr += FIXED_1;
> }
>
>
> je prakticky
>
>
> for_each_task(p) {
> if (p->state == TASK_RUNNING)
> nr += FIXED_1;
> }
>
>
> Ovsem jiste BSD to resi lip, urcite tim, ze pri inicializaci driveru
> maskuje pro jistotu vsechna presuseni, coz je sice jistota, ale urcite
och... jakpak se v linuxu maskuje jedno přerušení? nevládne snad právě
BSD zvráceností kolem spl?
> to odporuje dobre skalovatelnosti. Co jsem se na BSD dival, tak podpora
> SMP je VICE nez spatna.
dívejte se lépe!
ladis
Další informace o konferenci Linux