update/bdflush problem

Egon Eckert egon na www.capitol.cz
Úterý Červenec 29 16:00:53 CEST 1997


Alexandr Malusek <malusek na sysel.ujf.cas.cz> wrote:

: 1. na urovni uzivatele, kteremu nejaky program nabidne moznost
: synchronniho, pripadne asynchronniho, zapisu dat, nebo programatora,
: ktery si synchronni zapis dat muze zvolit pomoci volani open pri
: otevirani souboru (pripadne pozdeji pres fcntl).

Tak uz jsem zjistil, ze muj program rozhodne (ani v open, ani pres fcntl)
nespecifikuje, ze ma jit o synchronni zapisy, ani nevola fsync (prislusnou
knihovnu jsem si zkompilovat s debug info a podrobil dukladne pitve v
ddd/gdb).

Problem bude mozna tady :

: Cele je to jeste komplikovanejsi, protoze SVR4 implementuje mapovani
: souboru do pameti, takze o vlastni odkladani dat na disk se stara
: spravce virtualni pameti.

Ona ta knihovna ma inkriminovany soubor namapovan (pomoci mmap) do pameti.
Jdou zapisy takoveho souboru taky pres cache (tzn. realizuji se asynchronne,
se zpozdenim) ? Zda se samozrejme, ze by to tak byt melo, ale ze zdrojaku
kernelu jsem to nejak nebyl schopen vylustit. :)

Napada me jeste neco : podle ceho se cache manager rozhoduje, ze prislusny
buffer ponecha v cache pro pristi cteni ? Jestli to neni tak, ze ta diskova
aktivita je zpusobena intenzivnim ctenim, ktere rejdi po celem souboru (par
MB) dokola, ale v cache prislusne buffery nezustavaji. Takovy omezeny
read-ahead jsem pozoroval hlavne na MSDOS-filesystemu, toto bezi na ext2.

Egon Eckert


Další informace o konferenci Linux