5 hours of compilig later (old Athlon64 dual core), I was able to copy 9+GB
without a glitch (under same conditions that were guaranteed to freeze in under
2GB).
I'll run some more tests tomorrow, but this seems to have helped, thanks a lot!
Srdačan pozdrav / Best regards,
Siniša Bandin
On 12/17/18 10:31 AM, Sinisa wrote:
> Thanks, I'll try to compile that ass soon as I get test machine back to
openSUSE, during the day...
>
> Srdačan pozdrav / Best regards,
> Siniša Bandin
>
> On 12/17/18 2:49 AM, Guoqing Jiang wrote:
>> Hi,
>>
>> On 12/12/18 10:30 PM, Brian Foster wrote:
>>>> [ 1463.760721] Call Trace:
>>>> [ 1463.760731] ? __schedule+0x29a/0x880
>>>> [ 1463.760741] ? wait_barrier+0xdd/0x170 [raid10]
>>>> [ 1463.760746] schedule+0x78/0x110
>>>> [ 1463.760753] wait_barrier+0xdd/0x170 [raid10]
>>>> [ 1463.760761] ? wait_woken+0x80/0x80
>>>> [ 1463.760768] raid10_write_request+0xf2/0x900 [raid10]
>>>> [ 1463.760774] ? wait_woken+0x80/0x80
>>>> [ 1463.760778] ? mempool_alloc+0x55/0x160
>>>> [ 1463.760795] ? md_write_start+0xa9/0x270 [md_mod]
>>>> [ 1463.760801] ? try_to_wake_up+0x44/0x470
>>>> [ 1463.760810] raid10_make_request+0xc1/0x120 [raid10]
>>>> [ 1463.760816] ? wait_woken+0x80/0x80
>>>> [ 1463.760831] md_handle_request+0x121/0x190 [md_mod]
>>>> [ 1463.760851] md_make_request+0x78/0x190 [md_mod]
>>>> [ 1463.760860] generic_make_request+0x1c6/0x470
>>>> [ 1463.760870] raid10_write_request+0x77a/0x900 [raid10]
>>
>> Seems bio is splitted, can you try about the change? Seems I didn't send it
to mail list
>> successfully.
>>
>> diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
>> index b98e746e7fc4..12cf8a04e839 100644
>> --- a/drivers/md/raid10.c
>> +++ b/drivers/md/raid10.c
>> @@ -1209,7 +1209,9 @@ static void raid10_read_request(struct mddev *mddev,
struct bio *bio,
>> struct bio *split = bio_split(bio, max_sectors,
>> gfp, &conf->bio_split);
>> bio_chain(split, bio);
>> + allow_barrier(conf);
>> generic_make_request(bio);
>> + wait_barrier(conf);
>> bio = split;
>> r10_bio->master_bio = bio;
>> r10_bio->sectors = max_sectors;
>> @@ -1514,7 +1516,9 @@ static void raid10_write_request(struct mddev *mddev,
struct bio *bio,
>> struct bio *split = bio_split(bio, r10_bio->sectors,
>> GFP_NOIO, &conf->bio_split);
>> bio_chain(split, bio);
>> + allow_barrier(conf);
>> generic_make_request(bio);
>> + wait_barrier(conf);
>> bio = split;
>> r10_bio->master_bio = bio;
>> }
>>
>> And I updated opensuse bugzilla as well.
>>
>> Thanks,
>> Guoqing
>>
>>>> [ 1463.760875] ? wait_woken+0x80/0x80
>>>> [ 1463.760879] ? mempool_alloc+0x55/0x160
>>>> [ 1463.760895] ? md_write_start+0xa9/0x270 [md_mod]
>>>> [ 1463.760904] raid10_make_request+0xc1/0x120 [raid10]
>>>> [ 1463.760910] ? wait_woken+0x80/0x80
>>>> [ 1463.760926] md_handle_request+0x121/0x190 [md_mod]
>>>> [ 1463.760931] ? _raw_spin_unlock_irq+0x22/0x40
>>>> [ 1463.760936] ? finish_task_switch+0x74/0x260
>>>> [ 1463.760954] submit_flushes+0x21/0x40 [md_mod]
>>>> [ 1463.760962] process_one_work+0x1fd/0x420
>>>> [ 1463.760970] worker_thread+0x2d/0x3d0
>>>> [ 1463.760976] ? rescuer_thread+0x340/0x340
>>>> [ 1463.760981] kthread+0x112/0x130
>>>> [ 1463.760986] ? kthread_create_worker_on_cpu+0x40/0x40
>>>> [ 1463.760992] ret_from_fork+0x3a/0x50
>>
>