[systemd-devel] rdrand generated with march=winchip-c6 in systemd-241
floppym at gentoo.org
Mon May 13 20:49:00 UTC 2019
On Sat, May 11, 2019 at 1:19 PM tedheadster <tedheadster at gmail.com> wrote:
> On Sat, May 11, 2019 at 12:30 PM Florian Weimer <fw at deneb.enyo.de> wrote:
> > Can you capture register contents at the point of the crash?
> > Does this reproduce in a chroot? Maybe you can trace the whole thing
> > with a debugger. Does the crash reproduce if you single-step through
> > the whole function?
> I figured out the problem, I just haven't written code to fix it.
> The documentation I can find is silent about what is returned in %ecx
> and %ebx when calling cpuid function 0x00000001 on IDT Winchip-C6 and
> I think %ecx should properly contain 0x00000000, but it instead puts
> the 'auls' characters from cpuid function 0x00000000 (vendor string
> 'CentaurHauls') in %ecx:
Just a guess: I wonder if that 'auls' value is left over from the
previous CPUID result. If that's the case, a simple solution might be
to zero-out ebx, ecx, and edx in __cpuid().
More information about the systemd-devel