+linux-um On Wed, 2025-05-07 at 18:40 +0000, tip-bot2 for Ingo Molnar wrote: > > To resolve these kinds of problems and to allow <asm/tsc.h> to be included on > UML, > add a simplified version of <asm/tsc.h>, which only adds the rdtsc() > definition.
OK, weird, why would that be needed - UM isn't really X86. > arch/um/include/asm/tsc.h | 25 +++++++++++++++++++++++++ Feels that should be in arch/x86/um/asm/ instead, which I believe is also included but then at least pretends to keep the notion that UML could be ported to other architectures ;-) > +static __always_inline u64 rdtsc(void) > +{ > + EAX_EDX_DECLARE_ARGS(val, low, high); > + > + asm volatile("rdtsc" : EAX_EDX_RET(val, low, high)); > + > + return EAX_EDX_VAL(val, low, high); > +} Though I also wonder where this is called at all that would be relevant for UML? If it's not then perhaps we should just make using it unbuildable, a la u64 __um_has_no_rdtsc(void); #define rdtsc() __um_has_no_rdtsc() or something like that... (and then of course keep it in the current location). But looking at the 0-day report that'd probably break building the driver on UML; while the driver doesn't seem important we wouldn't really want that... Actually, that's just because of the stupid quirk in UML/X86: config DRM_ACCEL_HABANALABS tristate "HabanaLabs AI accelerators" depends on DRM_ACCEL depends on X86_64 that last line should almost certainly be "depends on X86 && X86_64" because ARCH=um will set UM and X86_64, but not X86 since the arch Kconfig symbols are X86 and UM respectively, but the UML subarch still selects X86_64 ... I dunno. I guess we can put rdtsc() into UML on x86 as I suggested about the file placement, or we can also just fix the Kconfig there. johannes