The hardware will do some verification, but not completely. If people think the OS should also do this, then it should be another patchset, I think. Thanks Zhenhua > ? 2015?4?3??17:21?Dave Young <dyoung at redhat.com> ??? > >> On 04/03/15 at 05:01pm, Li, ZhenHua wrote: >> Hi Dave, >> >> There may be some possibilities that the old iommu data is corrupted by >> some other modules. Currently we do not have a better solution for the >> dmar faults. >> >> But I think when this happens, we need to fix the module that corrupted >> the old iommu data. I once met a similar problem in normal kernel, the >> queue used by the qi_* functions was written again by another module. >> The fix was in that module, not in iommu module. > > It is too late, there will be no chance to save vmcore then. > > Also if it is possible to continue corrupt other area of oldmem because > of using old iommu tables then it will cause more problems. > > So I think the tables at least need some verifycation before being used. > >> >> >> Thanks >> Zhenhua >> >> On 04/03/2015 04:40 PM, Dave Young wrote: >>>> To fix this problem, we modifies the behaviors of the intel vt-d in the >>>> crashdump kernel: >>>> >>>> For DMA Remapping: >>>> 1. To accept the vt-d hardware in an active state, >>>> 2. Do not disable and re-enable the translation, keep it enabled. >>>> 3. Use the old root entry table, do not rewrite the RTA register. >>>> 4. Malloc and use new context entry table, copy data from the old ones that >>>> used by the old kernel. >>> >>> Have not read all the patches, but I have a question, not sure this has been >>> answered before. Old memory is not reliable, what if the old memory get corrupted >>> before panic? Is it safe to continue using it in 2nd kernel, I worry that it will >>> cause problems. >>> >>> Hope I'm wrong though. >>> >>> Thanks >>> Dave >>