Re: Inotify problem [was Re: 2.6.13-rc6-mm1]

From: George Anzinger
Date: Thu Aug 25 2005 - 18:11:46 EST


John McCutchan wrote:
On Thu, 2005-08-25 at 11:54 -0700, George Anzinger wrote:

Robert Love wrote:

On Thu, 2005-08-25 at 09:33 -0400, John McCutchan wrote:


On Thu, 2005-08-25 at 22:07 +1200, Reuben Farrelly wrote:
~
I think the best thing is to take idr into user space and emulate the problem usage. To this end, from the log it appears that you _might_ be moving between 0, 1 and 2 entries increasing the number each time. It also appears that the failure happens here:
add 1023
add 1024
find 1024 or is it the remove that fails? It also looks like 1024 got allocated twice. Am I reading the log correctly?


You are reading the log correctly. There are two bugs. One is that if we
pass X to idr_get_new_above, it can return X again (doesn't ever seem to
return < X). The other problem is that the find fails on 1024 (and 2048
if we skip 1024).

That IS strange. 1024 is on a "level" boundry, but then next level is 2**15, not 2**11. I will take a look.



So, is it correct to assume that the tree is empty save these two at this time? I am just trying to figure out what the test program needs to do.


Yes that is the exact scenario. Only 2 id's are used at any given time,
and once we hit 1024 things break. This doesn't happen when the tree is
not empty.

Thanks for looking at this!

--
George Anzinger george@xxxxxxxxxx
HRT (High-res-timers): http://sourceforge.net/projects/high-res-timers/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/