Re: [systemd-devel] Illegal CPUID instruction causes systemd core dump

2017-12-28 Thread Christopher Cox

On 12/28/2017 01:26 PM, Reindl Harald wrote:




...snippity

>> Am 28.12.2017 um 20:07 schrieb tedheadster:


The Linux kernel still supports the 486 so we have to code around this
case, even if it is ancient hardware


don't get me wrong - i am for 15 years now in the IT and my first PC in 
1999 was a i686


i don't see how a brand new systemd and a mordern userland is supposed 
to run on 20 years or older hardware where nearly eveyr distribution 
these days is i586 or i686 only or starts to drop 32bit at all


if you have that old hardware normally you don't use leading edge 
software on it and as a user (not systemd developer) i would love to see 
erevry single line of code for 20 years old hardware is removed to make 
it cleaner and in doubt faster on recent systems


While 386 was dropped in kernel 3.8, I have no idea of the plans to drop 
486 support.  But the assertion about distros and 32bit is certainly true.


Could be quite frustrating trying to obtain "old stuff" for testing...
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Illegal CPUID instruction causes systemd core dump

2017-12-28 Thread tedheadster
On Thu, Dec 28, 2017 at 4:29 PM, Mike Gilbert  wrote:
> On Thu, Dec 28, 2017 at 3:18 PM, Lennart Poettering
>  wrote:
>>
>> Please send a patch for this. We lack the relevant hardware and
>> can't test this. In fact, for most such portability support for
>> less-than-mainsrtream systems we rely on external patches.
>
> I created a PR for this. I have not tested it on a VM, or on an i486.
> Hopefully one of the CI systems can cover the former case. ;-)
>
> https://github.com/systemd/systemd/pull/7758

This patch worked nicely. I think Lennart wants you to clean up the
formatting, but I can confirm the first draft is functional.

Thank you for the speedy response.

- Matthew
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Illegal CPUID instruction causes systemd core dump

2017-12-28 Thread vcaputo
On Thu, Dec 28, 2017 at 10:08:59PM +0100, Lennart Poettering wrote:
> On Do, 28.12.17 20:26, Reindl Harald (h.rei...@thelounge.net) wrote:
> 
> > 
> > 
> > Am 28.12.2017 um 20:07 schrieb tedheadster:
> > > I am doing regression testing on old hardware. systemd-233 just
> > > generated the following error on startup:
> > > 
> > > I believe it is getting an illegal instruction trap on this first
> > > generation 486 because it is calling "cpuid" in detect_vm_cpuid()
> > > without first checking if the hardware supports it; it doesn't in this
> > > case.
> > > 
> > > The gcc compiler provides a workaround in the cpuid.h header file. You
> > > can call __get_cpuid_max() first and check the return value > 0.
> > > 
> > > https://stackoverflow.com/questions/14266772/how-do-i-call-cpuid-in-linux#14266932
> > > 
> > > The Linux kernel still supports the 486 so we have to code around this
> > > case, even if it is ancient hardware
> > 
> > don't get me wrong - i am for 15 years now in the IT and my first PC in 1999
> > was a i686
> > 
> > i don't see how a brand new systemd and a mordern userland is supposed to
> > run on 20 years or older hardware where nearly eveyr distribution these days
> > is i586 or i686 only or starts to drop 32bit at all
> 
> Well, we carry compat code for m68k, hence I figure i486 support
> should be OK to have, too. I figure m68k processors are even more
> legacy than i486 is, and certainly require more porting work than i486
> does, hence i486 support should be fine to have by a long shot.
> 

Additionally Intel was still manufacturing 386 and 486 chips as recently
as 2007 [1].  Why not maintain support for such systems?  It shouldn't
be a substantial burden with a codebase that already supports 32-bit in
general.

Regards,
Vito Caputo

[1] https://www.theregister.co.uk/2006/05/18/intel_cans_386_486_960_cpus/
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Illegal CPUID instruction causes systemd core dump

2017-12-28 Thread Mike Gilbert
On Thu, Dec 28, 2017 at 3:18 PM, Lennart Poettering
 wrote:
> On Do, 28.12.17 14:07, tedheadster (tedheads...@gmail.com) wrote:
>
>> I am doing regression testing on old hardware. systemd-233 just
>> generated the following error on startup:
>>
>> traps:systemd[1] trap invalid opcode ip:b7d97361 sp:bfa2f6bc error:0
>> in libsystemd-shared-233.so[b7d3e000+1cc000]
>> systemd[1]: Caught , dumped core as pid 78.
>> systemd[1]: Freezing execution
>>
>> I believe it is getting an illegal instruction trap on this first
>> generation 486 because it is calling "cpuid" in detect_vm_cpuid()
>> without first checking if the hardware supports it; it doesn't in this
>> case.
>>
>> The gcc compiler provides a workaround in the cpuid.h header file. You
>> can call __get_cpuid_max() first and check the return value > 0.
>>
>> https://stackoverflow.com/questions/14266772/how-do-i-call-cpuid-in-linux#14266932
>>
>> The Linux kernel still supports the 486 so we have to code around this
>> case, even if it is ancient hardware.
>
> Please send a patch for this. We lack the relevant hardware and
> can't test this. In fact, for most such portability support for
> less-than-mainsrtream systems we rely on external patches.

I created a PR for this. I have not tested it on a VM, or on an i486.
Hopefully one of the CI systems can cover the former case. ;-)

https://github.com/systemd/systemd/pull/7758
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Illegal CPUID instruction causes systemd core dump

2017-12-28 Thread Lennart Poettering
On Do, 28.12.17 20:26, Reindl Harald (h.rei...@thelounge.net) wrote:

> 
> 
> Am 28.12.2017 um 20:07 schrieb tedheadster:
> > I am doing regression testing on old hardware. systemd-233 just
> > generated the following error on startup:
> > 
> > I believe it is getting an illegal instruction trap on this first
> > generation 486 because it is calling "cpuid" in detect_vm_cpuid()
> > without first checking if the hardware supports it; it doesn't in this
> > case.
> > 
> > The gcc compiler provides a workaround in the cpuid.h header file. You
> > can call __get_cpuid_max() first and check the return value > 0.
> > 
> > https://stackoverflow.com/questions/14266772/how-do-i-call-cpuid-in-linux#14266932
> > 
> > The Linux kernel still supports the 486 so we have to code around this
> > case, even if it is ancient hardware
> 
> don't get me wrong - i am for 15 years now in the IT and my first PC in 1999
> was a i686
> 
> i don't see how a brand new systemd and a mordern userland is supposed to
> run on 20 years or older hardware where nearly eveyr distribution these days
> is i586 or i686 only or starts to drop 32bit at all

Well, we carry compat code for m68k, hence I figure i486 support
should be OK to have, too. I figure m68k processors are even more
legacy than i486 is, and certainly require more porting work than i486
does, hence i486 support should be fine to have by a long shot.

Lennart

-- 
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Illegal CPUID instruction causes systemd core dump

2017-12-28 Thread Lennart Poettering
On Do, 28.12.17 14:07, tedheadster (tedheads...@gmail.com) wrote:

> I am doing regression testing on old hardware. systemd-233 just
> generated the following error on startup:
> 
> traps:systemd[1] trap invalid opcode ip:b7d97361 sp:bfa2f6bc error:0
> in libsystemd-shared-233.so[b7d3e000+1cc000]
> systemd[1]: Caught , dumped core as pid 78.
> systemd[1]: Freezing execution
> 
> I believe it is getting an illegal instruction trap on this first
> generation 486 because it is calling "cpuid" in detect_vm_cpuid()
> without first checking if the hardware supports it; it doesn't in this
> case.
> 
> The gcc compiler provides a workaround in the cpuid.h header file. You
> can call __get_cpuid_max() first and check the return value > 0.
> 
> https://stackoverflow.com/questions/14266772/how-do-i-call-cpuid-in-linux#14266932
> 
> The Linux kernel still supports the 486 so we have to code around this
> case, even if it is ancient hardware.

Please send a patch for this. We lack the relevant hardware and
can't test this. In fact, for most such portability support for
less-than-mainsrtream systems we rely on external patches.

Lennart

-- 
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Illegal CPUID instruction causes systemd core dump

2017-12-28 Thread Reindl Harald



Am 28.12.2017 um 20:07 schrieb tedheadster:

I am doing regression testing on old hardware. systemd-233 just
generated the following error on startup:

I believe it is getting an illegal instruction trap on this first
generation 486 because it is calling "cpuid" in detect_vm_cpuid()
without first checking if the hardware supports it; it doesn't in this
case.

The gcc compiler provides a workaround in the cpuid.h header file. You
can call __get_cpuid_max() first and check the return value > 0.

https://stackoverflow.com/questions/14266772/how-do-i-call-cpuid-in-linux#14266932

The Linux kernel still supports the 486 so we have to code around this
case, even if it is ancient hardware


don't get me wrong - i am for 15 years now in the IT and my first PC in 
1999 was a i686


i don't see how a brand new systemd and a mordern userland is supposed 
to run on 20 years or older hardware where nearly eveyr distribution 
these days is i586 or i686 only or starts to drop 32bit at all


if you have that old hardware normally you don't use leading edge 
software on it and as a user (not systemd developer) i would love to see 
erevry single line of code for 20 years old hardware is removed to make 
it cleaner and in doubt faster on recent systems

___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


[systemd-devel] Illegal CPUID instruction causes systemd core dump

2017-12-28 Thread tedheadster
I am doing regression testing on old hardware. systemd-233 just
generated the following error on startup:

traps:systemd[1] trap invalid opcode ip:b7d97361 sp:bfa2f6bc error:0
in libsystemd-shared-233.so[b7d3e000+1cc000]
systemd[1]: Caught , dumped core as pid 78.
systemd[1]: Freezing execution

I believe it is getting an illegal instruction trap on this first
generation 486 because it is calling "cpuid" in detect_vm_cpuid()
without first checking if the hardware supports it; it doesn't in this
case.

The gcc compiler provides a workaround in the cpuid.h header file. You
can call __get_cpuid_max() first and check the return value > 0.

https://stackoverflow.com/questions/14266772/how-do-i-call-cpuid-in-linux#14266932

The Linux kernel still supports the 486 so we have to code around this
case, even if it is ancient hardware.

- Matthew
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel