[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ext2fs question (Pokel)

From: Thomas Bushnell, BSG
Subject: Re: ext2fs question (Pokel)
Date: 02 Nov 2002 17:33:13 -0800
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 writes:

> I was reading the ext2fs sourcecode and have a question about it. Ext2fs
> uses pokel_* functions. Can someone please explain me what a pokel is and
> what it is used for in ext2fs?

A pokel is a list of poked locations, that is, memory locations that
have been modified.

This is so that when we do a sync of the disk, we don't tell the
kernel to update every page, but only those which we know we changed.

This is all because of a Mach deficiency; it is not very efficient at
handling seek operations on large objects.  It goes one by one through
each page, sees if it is modified, and then writes it if it has been.

A better algorithm, for large objects, would be to invert the
algorithm and go through the pages in core and see if they are
modified and belong to the synced object/region, and then write them.
Even better would be a data structure specifically designed to deal
with this particular operation.

If we didn't use the pokel strategy, then a sync operation would cause
a notable several second pause in the system while the kernel checked
each page of your disk to see if that page had been modified.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]