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

Reply via email to