On Mon, 2006-04-10 at 11:11 +0200, Laurent Vivier wrote: > Le jeu 30/03/2006 à 03:54, Andrew Morton a écrit : > > Mingming Cao <cmm@xxxxxxxxxx> wrote: > > > > > > The things need to be done to complete this work is the issue with > > > current percpu counter, which could not handle u32 type count well. > > > > I'm surprised there's much of a problem here. It is a 32-bit value, so it > > should mainly be a matter of treating the return value from > > percpu_counter_read() as unsigned long. > > > > However a stickier problem is when dealing with a filesystem which has, > > say, 0xffff_ff00 blocks. Because percpu counters are approximate, and a > > counter which really has a value of 0xffff_feee might return 0x00000123. > > What do we do then? > > > > Of course the simple option is to nuke the percpu counters in ext3 and use > > atomic_long_t (which is signed, so appropriate treat-it-as-unsigned code > > would be needed). I doubt if the percpu counters in ext3 are gaining us > > much. > > I tried to make something in this way. > Does the attached patch look like the thing you though about ? > I tried the other way -- I am trying to keep the percpu counter in use in ext2/3 as much as possible. I proposed a fix for percpu counter to deal with the possible "overflow" (i.e, a counter really has a value of 0xfff_feee and after updating one local counter it truens 0x00000123). Will send the proposed patch out for review and comments soon. Mingming - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html