Hi Lianbo, On 09/26/18 at 05:34pm, lijiang wrote: > When SME is enabled on AMD machine, the memory is encrypted in the first > kernel. In this case, SME also needs to be enabled in kdump kernel, and > we have to remap the old memory with the memory encryption mask. > > Here we only talk about the case that SME is active in the first kernel, > and only care it's active too in kdump kernel. there are four cases we > need considered. > > a. dump vmcore > It is encrypted in the first kernel, and needs be read out in kdump > kernel. > > b. crash notes > When dumping vmcore, the people usually need to read the useful > information from notes, and the notes is also encrypted. > > c. iommu device table > It is allocated by kernel, need fill its pointer into mmio of amd iommu. > It's encrypted in the first kernel, need read the old content to analyze > and get useful information. > > d. mmio of amd iommu > Register reported by amd firmware, it's not RAM, we don't encrypt in > both the first kernel and kdump kernel. > > To achieve the goal, the solution is: > 1. add a new bool parameter "encrypted" to __ioremap_caller() > It is a low level function, and check the newly added parameter, if it's > true and in kdump kernel, will remap the memory with sme mask. > > 2. add a new function ioremap_encrypted() to explicitly passed in a "true" > value for "encrypted". > For above a, b, c, we will call ioremap_encrypted(); > > 3. adjust all existed ioremap wrapper functions, passed in "false" for > encrypted to make them an before. > > ioremap_encrypted()\ > ioremap_cache() | > ioremap_prot() | > ioremap_wt() |->__ioremap_caller() > ioremap_wc() | > ioremap_uc() | > ioremap_nocache() / Thanks, I think it's better. Since no code change, just patch log improvement, maybe you can repost a series and carry both Tom and Joerg's ACK. _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec