Re: Re: fr1-2.16 patch for 2.6.10 kernel

denis bonnenfant <[email protected]>
Newsgroups gmane.linux.enbd.general
Message-ID <[email protected]>
Peter T. Breuer a écrit :
> "Also sprach denis bonnenfant:"
> 
>>>Can you replace:
>>>
>>>#ifdef MD_BITMAP_SUPPORT
>>>        /* get the component's superblock */
>>>+       read_disk_sb(rdev);
>>>        sb = (mdp_super_t *)page_address(rdev->sb_page);
>>>
>>>
>>>(untested - you are guinea pig).
>>>
>>>It looks as though one can skip that if rdev->sb_page is non-null and
>>>if rdev->sb_loaded is nonzero. But try that first.
>>
>>It's better. fast resync 5-6 times successivly, but now,
> 
> 
> There' a call to import_device about 20 lines higher up that might do
> instead. It has a -1 in the args that means "don't retest the
> superblock". If it is changed to 0, it might also work the trick.

Ok, it does the job too.

about events :

first fail/add :
sda1 (read) [events: 00000164]
.......
md0: repairing old mirror component 800001 (disk 356 >= bitmap 232)

fail / mount / add :

sda1 (read) [events: 00000168]
....
md0: new disk 800001 too old for repair (disk 360 < bitmap 362)

raid1: synced dirty sectors 0-979711
raid1: synced dirty sectors 0-979839


mount has changed the bitmap count ?

fail /add :

sda1 (read) [events: 00000172]
....
md0: repairing old mirror component 800001 (disk 370 >= bitmap 362)

raid1: skipped clean sectors 0-490239
raid1: synced dirty sectors 490240-491007
raid1: skipped clean sectors 491008-979711


fail / write /sync / add

sda1 (read) [events: 00000176]

md0: repairing old mirror component 800001 (disk 374 >= bitmap 362)

raid1: synced dirty sectors 0-511
raid1: skipped clean sectors 512-122495
raid1: synced dirty sectors 122496-122751
raid1: skipped clean sectors 122752-490239
raid1: synced dirty sectors 490240-491007
raid1: skipped clean sectors 491008-979711


fail / umount / add

sda1 (read) [events: 00000188]

md0: repairing old mirror component 800001 (disk 392 >= bitmap 362)

raid1: synced dirty sectors 0-511
raid1: skipped clean sectors 512-122495
raid1: synced dirty sectors 122496-122751
raid1: skipped clean sectors 122752-490239
raid1: synced dirty sectors 490240-491007
raid1: skipped clean sectors 491008-979711

same as above : bitmap not cleared ?

fail / add

sda1 (read) [events: 00000190]

md0: repairing old mirror component 800001 (disk 400 >= bitmap 362)

raid1: synced dirty sectors 0-511
raid1: skipped clean sectors 512-122495
raid1: synced dirty sectors 122496-122751
raid1: skipped clean sectors 122752-490239
raid1: synced dirty sectors 490240-491007
raid1: skipped clean sectors 491008-979711

... and so on, no changes.

The latter are interesting, because raid is not mounted, so it seems 
that it reuse the bitmap from previous cycle and doesn't detect that 
nothing has changed on disks and reinitialize bitmap. It is not harmful, 
but clearly suboptimal, especially in case of network devices, as large 
chunks of disks may be synced multiple times.

mount / fail /add :

md0: repairing old mirror component 800001 (disk 414 >= bitmap 362)

raid1: synced dirty sectors 0-511
raid1: skipped clean sectors 512-122495
raid1: synced dirty sectors 122496-122751
raid1: skipped clean sectors 122752-490239
raid1: synced dirty sectors 490240-490623  <- changes, ok
raid1: skipped clean sectors 490624-979711

umount...

fail/ mount / add :

md0: repairing old mirror component 800001 (disk 480 >= bitmap 362)

this time nothing has changed : mount doesn't change bitmap count ? only 
the first time ?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.