Hi Andy, On Fri, 15 Jan 2016 12:00:02 -0800, Andy Lutomirski wrote: > UC means uncached. ioremap, on x86, asks for an uncached mapping, so > every memory access (load or store) hits main memory individually. > Assuming that the spec says that whatever physical memory the DMI > tables live in is permitted to be used with cached accesses, asking > for the CPU cache to be permitted on those accesses will make them a > whole lot faster. > > If that isn't safe, you could also just copy each table out of the > ioremap space into normal RAM as needed using MOVNTDQA. I forget what > the helper for that is called, but it basically does a fast streaming > IO read and then writes to normal RAM, memcpy style. Most modern CPUs > support it. I have no idea what is allowed and what isn't, sorry. You would have to check the SMBIOS specification but also the UEFI specification. I have to admit I never understood why dmi_alloc is arch-specific nor why dmi_remap is needed in the first place (and even less why dmi_early_remap is different.) So I'm not going to mess up with that code. I have no idea how costly dmi_remap() is, but certainly it is being called more and more as we can see dmi_walk() gaining in popularity. So if anyone is worried about the performance, I'll be happy to review and test patches. -- Jean Delvare SUSE L3 Support -- To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html