[lkml]   [2000]   [Sep]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: Large File support and blocks.
    On Fri, Sep 01, 2000 at 02:44:04PM +0200, Andi Kleen wrote:
    > > To my knowlege it's only been speed related issues, not
    > > correctness issues, that have been the cause for the
    > > fear and loathing of long long.
    > There are several parts of XFS which do not compile correctly with gcc
    > 2.95.2, but do with egcs 1.1
    > For example consider the appended test case. It breaks with 2.95-stable
    > (from CVS March or so) because the bh->b_blocknr >>= block_bits;
    > shift is miscompiled. The problem seems to be that it forgets to reload
    > the %cl register used for the variable shift after the long long shift
    > before, leading to a bogus shift.

    And mind you, that shift operates on 'unsigned long' !
    ( Not 'unsigned long long' )

    So far there has been only talk of doing the change. Brr...

    > Another problem is that linus' do_div in asm-i386/div64.h seems to cause
    > miscompiled code when used in anything more complicated than printk (no
    > extracted test case yet sorry)

    It really isn't intended for anything else.
    It is rather terrible side-effect monster..

    > Assembly from gcc 2.95 for the
    > bh->b_blocknr = (long)mp->pbm_bn +
    > (mp->pbm_offset >> inode->i_sb->s_blocksize_bits);
    > bh->b_blocknr >>= block_bits;
    > bh->b_state |= (1UL << 4 );

    /Matti Aarnio
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 12:38    [W:0.021 / U:10.828 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site