Thread (75 messages) 75 messages, 7 authors, 2007-08-27

Re: Distributed storage.

From: Evgeniy Polyakov <hidden>
Date: 2007-08-13 09:19:12
Also in: linux-fsdevel, lkml

On Mon, Aug 13, 2007 at 02:08:57AM -0700, Daniel Phillips (phillips@phunq.net) wrote:
quoted
But that idea fails as well, since reference counts and IO completion
are two completely seperate entities. So unless end IO just happens
to be the last user holding a reference to the bio, you cannot free
it.
That is not a problem.  When bio_put hits zero it calls ->endio instead 
of the destructor.  The ->endio sees that the count is zero and 
destroys the bio.
This is not a very good solution, since it requires all users of the
bios to know how to free it. Right now it is hidden.
And adds additional atomic check (although reading is quite fast) in the
end_io. And for what purpose? To eat 8 bytes on 64bit platform? This
will not reduce its size noticebly, so the same number of bios will be
in the cache's page, so what is a gain? All this cleanups and logic
complicatins should be performed only if after size shring increased
number of bios can fit into cache's page, will it be done after such
cleanups?

-- 
	Evgeniy Polyakov
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help