[SRU][B/C/D] iommu/amd: Reserve and correctly set exclusion range in iova-domain

Jeffrey Lane jeffrey.lane at canonical.com
Mon Jun 17 13:52:32 UTC 2019


Could I get a second ack on these (connork acked it earlier)?
I was hoping this could make this cycle, if at all possible.


On Fri, Jun 7, 2019 at 1:34 PM Jeff Lane <jeffrey.lane at canonical.com> wrote:
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1823037
> [Impact]
> If a device has an exclusion range specified in the IVRS table, this region
> needs to be reserved in the iova-domain of that device. This hasn't happened
> until now and can cause data corruption on data transfered with these devices.
> The exlcusion range limit register needs to contain the base-address of the
> last page that is part of the range, as bits 0-11 of this register are treated
> as 0xfff by the hardware for comparisons.
> So correctly set the exclusion range in the hardware to the last page which is
> _in_ the range.
> [Testing]
> This was tested by Dell for 24+ hours with positive test results. Testing
> involved creating multiple directories with a million files each and then
> another script was used across 3-5 threads copying files from one location
> to another.  Prior to using test kernels with these patches applied, the system
> would fail within 1 - 2 hours consistently.
> [Regression Risk]
> Low,this adds memory protection to the driver and has already been applied
> upstream and patched test kernels for all three releases have been tested by
> Dell for 24 hours with no failures noted.
> Patches cleanly apply to Bionic, Cosmic and Disco. Bionic and Cosmic require
> both patches, but Disco only requires the second patch (Set exclusion rage
> correctly) as the first patch was already picked up in a previous SRU
> (LP: #1830934)

Jeff Lane
Technical Partnership and Server Certification Programmes

"Entropy isn't what it used to be."

More information about the kernel-team mailing list