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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b2360db7-66f5-421d-8fe0-150f08aa2f39@gonehiking.org>
Date:   Wed, 15 Jan 2020 10:30:56 -0700
From:   Khalid Aziz <khalid@...ehiking.org>
To:     Kairui Song <kasong@...hat.com>,
        Deepa Dinamani <deepa.kernel@...il.com>
Cc:     Baoquan He <bhe@...hat.com>, linux-pci@...r.kernel.org,
        kexec@...ts.infradead.org, Jerry Hoemann <Jerry.Hoemann@....com>,
        Randy Wright <rwright@....com>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Bjorn Helgaas <helgaas@...nel.org>
Subject: Re: [RFC PATCH] PCI, kdump: Clear bus master bit upon shutdown in
 kdump kernel

On 1/13/20 10:07 AM, Kairui Song wrote:
> On Sun, Jan 12, 2020 at 2:33 AM Deepa Dinamani <deepa.kernel@...il.com> wrote:
>>
>>> Hi, there are some previous works about this issue, reset PCI devices
>>> in kdump kernel to stop ongoing DMA:
>>>
>>> [v7,0/5] Reset PCIe devices to address DMA problem on kdump with iommu
>>> https://lore.kernel.org/patchwork/cover/343767/
>>>
>>> [v2] PCI: Reset PCIe devices to stop ongoing DMA
>>> https://lore.kernel.org/patchwork/patch/379191/
>>>
>>> And didn't get merged, that patch are trying to fix some DMAR error
>>> problem, but resetting devices is a bit too destructive, and the
>>> problem is later fixed in IOMMU side. And in most case the DMA seems
>>> harmless, as they targets first kernel's memory and kdump kernel only
>>> live in crash memory.
>>
>> I was going to ask the same. If the kdump kernel had IOMMU on, would
>> that still be a problem?
> 
> It will still fail, doing DMA is not a problem, it only go wrong when
> a device's upstream bridge is mistakenly shutdown before the device
> shutdown.
> 
>>
>>> Also, by the time kdump kernel is able to scan and reset devices,
>>> there are already a very large time window where things could go
>>> wrong.
>>>
>>> The currently problem observed only happens upon kdump kernel
>>> shutdown, as the upper bridge is disabled before the device is
>>> disabledm so DMA will raise error. It's more like a problem of wrong
>>> device shutting down order.
>>
>> The way it was described earlier "During this time, the SUT sometimes
>> gets a PCI error that raises an NMI." suggests that it isn't really
>> restricted to kexec/kdump.
>> Any attached device without an active driver might attempt spurious or
>> malicious DMA and trigger the same during normal operation.
>> Do you have available some more reporting of what happens during the
>> PCIe error handling?
> 
> Let me add more info about this:
> 
> On the machine where I can reproduce this issue, the first kernel
> always runs fine, and kdump kernel works fine during dumping the
> vmcore, even if I keep the kdump kernel running for hours, nothing
> goes wrong. If there are DMA during normal operation that will cause
> problem, this should have exposed it.
> 

This is the part that is puzzling me. Error shows up only when kdump
kernel is being shut down. kdump kernel can run for hours without this
issue. What is the operation from downstream device that is resulting in
uncorrectable error - is it indeed a DMA request? Why does that
operation from downstream device not happen until shutdown?

I just want to make sure we fix the right problem in the right way.

--
Khalid

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ