On Fri, Nov 22, 2019 at 09:20:39AM -0800, Dan Williams wrote: > For those cases the thought would be to have memset512() for case1 and > __iowrite512_copy() for case3. Where memset512() writes a > non-incrementing source to an incrementing destination, and > __iowrite512_copy() copies an incrementing source to an incrementing > destination. Those 2 helpers *would* have fallbacks, but with the > option to use something like cpu_has_write512() to check in advance > whether those routines will fallback, or not. > > That can be a discussion for a future patchset when those users arrive. Oh, sure, of course. My only angle is very simple: if the MOVDIR* et al is only supported on upcoming Intel platforms and looking at the use cases: 1. clear poison/MKTME 3. copy iomem in big chunks I'm going to venture a guess that those two cases are going to be happening only on Intel platforms which already support MODVIR*. So wouldn't really need to do any generic helpers because those use cases are very specific already. Which would make your feature detection a one-time, driver-init time thing anyway... Unless I misunderstand those cases and there really is a use case where the thing would fallback and the fallback would really be for an "unenlightened" platform without that MOVDIR* hw support...? Hmmm. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette