lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Sat, 5 Feb 2022 13:04:13 +1300
From:   Michael Schmitz <schmitzmic@...il.com>
To:     Geert Uytterhoeven <geert@...ux-m68k.org>,
        linux-m68k@...ts.linux-m68k.org, Jens Axboe <axboe@...nel.dk>,
        Laibin Qiu <qiulaibin@...wei.com>
Cc:     Andrew Morton <akpm@...ux-foundation.org>,
        linux-kernel@...r.kernel.org, linux-block@...r.kernel.org
Subject: Regression in 5.17-rc1 on pata-falcon (was: Re: [PATCH] m68k: mm:
 Remove check for VM_IO to fix deferred I/O)

Hi Jens,

commit 180dccb0dba4f5e84a4a70c1be1d34cbb6528b32 (blk-mq: fix tag_get 
wait task can't be awakened) does cause a regression on my m68k hardware 
test rig (m68k Falcon030, IDE disk attached through pata-falcon driver 
which does use polled IO instead of interrupts, so may be a little on 
the slow side).

While it usually takes 8 minutes for my system to boot to a point where 
the network driver is loaded, and another 10 minutes before I can  ssh 
into the box, all the while with IO activity on the disk as seem from 
the disk activity LED, the boot takes a few hours to complete since 
v15-rc1, with IO activity only very rarely seen.

In the one case where I could log in remotely, I had to abort the 
attempted reboot after another few hours.

This problem occurs only on real hardware, and isn't seen on e.g. ARAnyM 
which is frequently used to test changes.

Bisection between v5.16 and v5.17-rc1 points to 
180dccb0dba4f5e84a4a70c1be1d34cbb6528b32 as the culprit, which is 
corroborated by reverting that commit in v5.17-rc1 and booting as 
rapidly as before.

I don't pretend to understand the purpose of the problematic commit, and 
cannot spot anything glaringly obvious with the change in logic in e.g. 
__blk_mq_tag_idle(). If there's anything you'd like me to test that 
could make that commit work for my unusual set-up, I'd be happy to help.

Cheers,

	Michael


Am 30.01.2022 um 19:57 schrieb Michael Schmitz:
> Hi Geert,
>
> Am 30.01.2022 um 13:32 schrieb Michael Schmitz:
>> Hi Geert,
>>
>> testing this patch on my Falcon 030, I'm seeing a weird error checking
>> and mounting the root filesystem (pata-falcon). The system appears to
>> sit idle, never completing the journal recovery and mount. Still
>> investigating that.
>
> Belay that - not related to your patch, must be some other regression
> since v5.16 that I'm seeing there.
>
> Just ignore the noise ...
>
> Cheers,
>
>     Michael
>
>
>> Can't see how that would be caused by your patch, just saying I could
>> not yet test it.
>>
>> Cheers,
>>
>>     Michael
>>
>>
>> Am 29.01.2022 um 06:30 schrieb Geert Uytterhoeven:
>>> When an application accesses a mapped frame buffer backed by deferred
>>> I/O, it receives a segmentation fault.  Fix this by removing the check
>>> for VM_IO in do_page_fault().
>>>
>>> Signed-off-by: Geert Uytterhoeven <geert@...ux-m68k.org>
>>> ---
>>> This check was never present in a fault handler on any other
>>> architecture than m68k.
>>> Some digging revealed that it was added in v2.1.106, but I couldn't find
>>> an email with a patch adding it.  That same kernel version extended the
>>> use of the hwreg_present() helper to HP9000/300, so the check might have
>>> been needed there, perhaps only during development?
>>> The Atari kernel relies heavily on hwreg_present() (both the success and
>>> failure cases), and these still work, at least on ARAnyM.
>>> ---
>>>  arch/m68k/mm/fault.c | 2 --
>>>  1 file changed, 2 deletions(-)
>>>
>>> diff --git a/arch/m68k/mm/fault.c b/arch/m68k/mm/fault.c
>>> index 1493cf5eac1e7a39..71aa9f6315dc8028 100644
>>> --- a/arch/m68k/mm/fault.c
>>> +++ b/arch/m68k/mm/fault.c
>>> @@ -93,8 +93,6 @@ int do_page_fault(struct pt_regs *regs, unsigned
>>> long address,
>>>      vma = find_vma(mm, address);
>>>      if (!vma)
>>>          goto map_err;
>>> -    if (vma->vm_flags & VM_IO)
>>> -        goto acc_err;
>>>      if (vma->vm_start <= address)
>>>          goto good_area;
>>>      if (!(vma->vm_flags & VM_GROWSDOWN))
>>>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ