Hi Qu,

Thanks for some explanation.
Personally, I prefer binary to compare bit-level changes.
Actually, I also miscounted. I count 3 bit flips. Isn't that extremely
unlikely, assuming that each bit flip is independent?
Nonetheless, I'm running another RAM test with memtester and 6GB RAM
blocks.... still no errors.
Will post an update later today.

-- 
Cheers,

Chillin

On Mon, Mar 8, 2021 at 10:33 AM Qu Wenruo <quwenruo.bt...@gmx.com> wrote:
>
>
>
> On 2021/3/8 下午5:23, Qu Wenruo wrote:
> >
> >
> > On 2021/3/8 下午4:56, chil L1n wrote:
> >> Hi Johannes,
> >>
> >> Thanks for the advice. I'm running memtester now. This will take some
> >> time as the machine has 32GB RAM.
> >> Regarding your explanation, I count two bit position differences, not
> >> 1. Can you explain your reasoning?
> >
> > It looks like Johannes missed one 0, and caused some confusion.
> >
> > With 0 padded correctly, the result is:
> >
> > 3276800 = 0b1100100000000000000000
> > 1310720 = 0b0101000000000000000000
>
> Oh, no, the value is correct.... It's my hex diff incorrect...
> >
> > That's why I prefer to use hex:
> > 3276800 = 0x320000
> > 1310720 = 0x140000
> > diff    = 0x200000
>
> The diff is 0x260000 (xor).
>
> But that can still be an indication of bitflip, on that 0x200000 part.
>
> As the current key should be larger than previous key, one bit flip at
> 0x200000 can cause the problem and trigger the tree-checker.
>
> Thanks,
> Qu
> >
> > Definitely one bit flipped.
> >
> > Thanks,
> > Qu
> >
> >>
> >> Thanks,
> >>
> >> chill
> >>
> >>
> >> On Mon, Mar 8, 2021 at 9:41 AM Johannes Thumshirn
> >> <johannes.thumsh...@wdc.com> wrote:
> >>>
> >>> On 06/03/2021 10:11, chil L1n wrote:
> >>>> [2555511.868642] BTRFS critical (device sda4): corrupt leaf: root=258
> >>>> block=250975895552 slot=78, bad key order, prev (256703 108 3276800)
> >>>> current (256703 108 1310720)
> >>>> [2555511.868650] BTRFS error (device sda4): block=250975895552 write
> >>>> time tree block corruption detected
> >>>
> >>> This /might/ be a memory bitflip:
> >>>
> >>> 3276800 = 0b1100100000000000000000
> >>> 1310720 = 0b101000000000000000000
> >>>
> >>> I guess the highest bit did flip so it should have been:
> >>> 3407872 = 0b1101000000000000000000
> >>>
> >>> (3407872 - 3276800) / 4096.0
> >>> 32.0
> >>>
> >>> Can you run a memtest on the machine to check if the RAM is ok?
> >>>
> >>> Byte,
> >>>          Johannes

Reply via email to