On 07/06/2012 11:37 PM, Chris Mason wrote: > On Wed, Jun 13, 2012 at 07:50:52PM -0600, Liu Bo wrote: >> On 06/14/2012 12:07 AM, Zach Brown wrote: >> >>>> int set_state_private(struct extent_io_tree *tree, u64 start, u64 >>>> private) >>>> { >>> [...] >>>> + ret = radix_tree_insert(&tree->csum, (unsigned long)start, >>>> + (void *)((unsigned long)private<< 1)); >>> Will this fail for 64bit files on 32bit hosts? >> >> In theory it will fail, but crc32c return u32, so private will be originally >> u32, >> and it'd be ok on 32bit hosts. > > The (unsigned long)start part looks wrong though. This is the byte offset > from 0, so on a 32 bit machine you won't be able to have large files. > > The page cache also has this limitation, but it gains extra bits > counting page indexes instead of byte indexes. >
I see. > I've made that change here and I'm benchmarking it on my big flash ;) > Thanks a lot. :) I must note that this patchset is still very initial, and this week I've fixed a deadlock bug hidden in the 4th patch (it can be triggered by xfstests 208). I'm planning to set up a worker thread or just use 'endio_meta' thread for merge_state and do more tuning work to lessen writer lock. thanks, liubo > -chris > -- > 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 > -- 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