Re: Commit 7eaceaccab5f40 causing boot hang.

From: Jens Axboe
Date: Wed Apr 13 2011 - 06:36:59 EST


On 2011-04-13 12:25, Richard Kennedy wrote:
> On Mon, 2011-04-04 at 14:47 +0100, Richard Kennedy wrote:
>> On Thu, 2011-03-31 at 15:49 +0100, Richard Kennedy wrote:
>>> On Thu, 2011-03-31 at 15:33 +0200, Jens Axboe wrote:
>>> [...]
>>>>>>> Hi Jens,
>>>>>>>
>>>>>>> I'm seeing a problem with fio never completing when writing to 2 disks
>>>>>>> simultaneously. In my test case I'm writing 2Gb to both a LVM volume & a
>>>>>>> pata drive on x86_64 on a AMD X2. Could this be a related issue?
>>>>>>>
>>>>>>> I'm not getting anything reported in the log, lockup detection doesn't
>>>>>>> report anything either. The write seems to have finished (the disk light
>>>>>>> activity has stopped) and the cpu cores are both below 10% usage, but
>>>>>>> fio never returns. The test does complete some times, but it seems to be
>>>>>>> one 1 in 4.
>>>>>>
>>>>>> So when you say PATA, it's /dev/hdaX something as well?
>>>>>>
>>>>>>> I'm going to try tracing it and see if I can spot where it's stuck.
>>>>>>
>>>>>> Thanks, that would be nice.
>>>>>>
>>>>> The second drive is /dev/sdb1 mounted on /opt, both file systems are
>>>>> ext4.
>>>>
>>>> So probably not related. What does the fio job look like?
>>>>
>>> fio job file --
>>> [global]
>>> pre_read=1
>>> ioengine=mmap
>>>
>>> [f1]
>>> size=2g
>>> rw=write
>>> directory=/home/tests
>>>
>>> [f2]
>>> size=2g
>>> rw=write
>>> directory=/opt/tests
>>>
>>> Fio gets run from a script that also collects stats but it's been
>>> running without any problems up until 2.6.39-rc1.
>>>
>> Hi Jens
>> I've upgrade to the latest fio version in the git repo 1.51 and I'm
>> still seeing this problem.
>>
>> Fio gets stuck after it writes the 100% complete message and strace on
>> the processes shows this.
>>
>> the controlling fio process :-
>> ...
>> [pid 8439] wait4(8442, 0x7fff848203ac, WNOHANG, NULL) = 0
>> [pid 8439] nanosleep({0, 10000000}, NULL) = 0
>> [pid 8439] wait4(8441, 0x7fff848203ac, WNOHANG, NULL) = 0
>> [pid 8439] wait4(8442, 0x7fff848203ac, WNOHANG, NULL) = 0
>> [pid 8439] nanosleep({0, 10000000}
>>
>> & the 2 workers are both stopped here, strace shows only the one line
>> for each process.
>>
>> Process 8441 attached - interrupt to quit
>> futex(0x7f9db76a802c, FUTEX_WAIT_PRIVATE, 2, NULL
>>
>>
>> Process 8442 attached - interrupt to quit
>> futex(0x7f9db76a802c, FUTEX_WAIT_PRIVATE, 2, NULL
>>
>> How do I find out which futex it's waiting for?
>> Any ideas where I should look next ?
>>
>> I can run the same test successfully on 2.6.38 so is it worth trying to
>> bisect this ?
>>
>> thanks
>> Richard
>>
> My problem has gone away in v2.6.39-rc3.
> I've just finished bisecting it down to 6de9843dab3f, & that got
> reverted in rc3, so no problem ;)
>
> (The data corruption caused by that faulty commit was zeroing out the
> shared mutexs in fio & the worker threads were getting stuck on the
> writeout_mutex.)

Great, that's one less regression to worry about :-)


--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/