Re: Implications of PG_locked and reference count in page structures....

Daniel Phillips (phillips@bonn-fries.net)
Wed, 15 Aug 2001 19:04:16 +0200


On August 15, 2001 05:39 pm, Michael Heinz wrote:
> I'm in the process of porting a driver to Linux. The author of the
> driver conveniently broke it into os-dependent and independent sections.
>
> One of the things in the "OS" dependent section is a routine to lock a
> section of memory presumably to be used for DMA.
>
> So, what I want to do is this: given a pointer to a previously
> kmalloc'ed block, and the length of that block, I want to (a) identify
> each page associated with the block and (b) lock each page. It appears
> that I can lock the page either by incrementing it's reference count, or
> by setting the PG_locked flag for the page.
>
> Which method is preferred? Is there another method I should be using
> instead?

See the other replies - you do not need to memlock your pages because you
will be allocating non-pageable kernel memory.

But for future reference, PG_locked is for serializing IO/cache
operations. You use the page reference count to prevent a page from
being freed, i.e., to memlock it. You'll see such object ref-counting
schemes showing up all through the kernel in slight variations.

--
Daniel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/