[Ocfs2-devel] [RFC] ocfs2: Idea to make ocfs2_search_chain high efficiency

Norton.Zhu norton.zhu at huawei.com
Mon Aug 24 05:30:35 PDT 2015


In ocfs2_search_chain, I found it has low efficiency  while searching an available gd in some circumstances:
1) The lun has a great many gd(it reads lots of unavailable gd(free bits is zero));
2) Not too many gd, but the available gd is scattered in the unavailable gd(fragmentation);

So I have an idea to optimize the search method:
1) Use the reserved member in the ocfs2_group_desc to make an available chain list(gds in the list are all available, free bits more than zero);
2) At the beginning, the chain list is the same with origin chain list;
3) While do allocation, it searches gd in the available chain list;
4) After each allocation, if some gd's free bits is zero, Remove it from the available chain list;
5) After each reclaim, if some gd's free bits change from zero to positive, Append it to the head of the available chain list;

Once started with the basics outlined above, no unavailable gd will be read.

Anyone has better ideas or advices?




More information about the Ocfs2-devel mailing list