Re: [RFC PATCH] iommu/vt-d: Fix IOMMU field not populated on device hot re-plug

From: Janusz Krzysztofik
Date: Tue Sep 03 2019 - 03:41:49 EST


Hi Baolu,

On Tuesday, September 3, 2019 3:29:40 AM CEST Lu Baolu wrote:
> Hi Janusz,
>
> On 9/2/19 4:37 PM, Janusz Krzysztofik wrote:
> >> I am not saying that keeping data is not acceptable. I just want to
> >> check whether there are any other solutions.
> > Then reverting 458b7c8e0dde and applying this patch still resolves the
issue
> > for me. No errors appear when mappings are unmapped on device close after
the
> > device has been removed, and domain info preserved on device removal is
> > successfully reused on device re-plug.
>
> This patch doesn't look good to me although I agree that keeping data is
> acceptable. It updates dev->archdata.iommu, but leaves the hardware
> context/pasid table unchanged. This might cause problems somewhere.
>
> >
> > Is there anything else I can do to help?
>
> Can you please tell me how to reproduce the problem?

The most simple way to reproduce the issue, assuming there are no non-Intel
graphics adapters installed, is to run the following shell commands:

#!/bin/sh
# load i915 module
modprobe i915
# open an i915 device and keep it open in background
cat /dev/dri/card0 >/dev/null &
sleep 2
# simulate device unplug
echo 1 >/sys/class/drm/card0/device/remove
# make the background process close the device on exit
kill $!

Thanks,
Janusz


> Keeping the per
> device domain info while device is unplugged is a bit dangerous because
> info->dev might be a wild pointer. We need to work out a clean fix.
>
> >
> > Thanks,
> > Janusz
> >
>
> Best regards,
> Baolu
>