On Tue, Jan 07, 2014 at 11:59:18AM +0800, Miao Xie wrote: > But I read a discuss about the use of boolean type, some developers suggested > us to use bitfields instead of bool, because the bitfields can work better, > and they are more flexible, less misuse than bool. > https://lkml.org/lkml/2013/9/1/154
I was searching for pros/cons of the bools but haven't found this one nor anything useful, though not all of the advantages of bitfields apply in our case. I've compared the generated assembly with just this patch, and the difference is effectively only the lock prefix for set/clear, the read side has no significant penalty: old: mov 0x128(%rbx),%esi new: mov 0x120(%rbx),%rax test $0x1,%al old set: movb $0x1,0x120(%rbx) new: lock orb $0x1,0x120(%rbx) The delayed_node structure is relatively short lived, is reused frequently and I haven't seen any contention points where the lock prefix would hurt. So, ok to merge it. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html