bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Enable SMP support


From: Richard Braun
Subject: Re: Enable SMP support
Date: Fri, 15 Jun 2018 19:25:06 +0200
User-agent: Mutt/1.5.23 (2014-03-12)

On Fri, Jun 15, 2018 at 07:18:55PM +0200, Richard Braun wrote:
> On Fri, Jun 15, 2018 at 06:27:21PM +0200, Almudena Garcia wrote:
> > I'm trying to define the cpu_number() in multiprocessor.
> > 
> > To do this, I tried to use CPUID assembly x86 instruction, to get the CPU
> > SMP number.
> > The function, in C, is this:
> > 
> > static inline char smp_processor_id(void) {
> >   char apic_id = 0;
> >   asm("mov $1, %%eax\n\t"
> >   "cpuid\n\t"
> >   "mov %%bh, %0\n\t" : "=g" (apic_id));
> >   return apic_id;
> > }
> > 
> > In Linux, after executing this in a test source, It returns '8'
> > 
> > But, when I try to execute It in Hurd, It shows a segmentation fault.
> > 
> > I attach the test source file
> > 
> > 
> > Can you help me?

Also note here that you're confusing the APIC ID, a device identifier at
the hardware level, with the CPU ID, a processor identifier at the kernel
level. On some machines, the APIC ID may be higher than or equal to the
maximum number of processor installed.

-- 
Richard Braun



reply via email to

[Prev in Thread] Current Thread [Next in Thread]