On Mon, 21 Dec 1998, Linus Torvalds wrote:

> Basically, the low 8 bits of the destination is the "destination
> mask" to the APIC. The other bits are the destination shorthands
> (ie stuff like "everybody but me") and the destination mode bits
> (ie "fixed" or "NMI"  etc).
> 
> But basically you should be able to try:
>  - set the low eight bits to the CPU number
>  - make send_IPI() clear the low eight bits after it has used them for the
>    target chip field.
> 
> Looking at the code that should work, but I'd test it a bit first
> if I were you ;)

Currently my kernel looks like this now:

smp.c::send_IPI():

        cfg = apic_read(APIC_ICR);
        cfg &= ~0xFDFFF;
        cfg |= APIC_DEST_FIELD|APIC_DEST_DM_FIXED|vector;
        cfg |= (dest & 0xFFFFFF00);
        
        /*
         * Send the IPI. The write to APIC_ICR fires this off.
---
  Here I changed the last cfg line from 'cfg |= dest' because we
  now pass actual values to send_IPI()...

and smp.c::smp_message_pass():

        else
        {
                dest=target;
                target_map=(1<<target);
                cpu_callin_map[0]=0;
        }
---
  Just the way you told me, but still it doesn't seem to work :(

There are several other things/possibilities I worry about:
- the message is sent and arrives but isn't processed until
  the next trip to kernel-land (???)
- the IPI: count in /proc/interrupts is 0, but that doesn't
  really worry me since nothing seems to update the stats...
- performance under X is acceptable, sometimes even good,
  on the console things tend to suck eggs however
- I could be doing something wrong so the IPI never gets
  sent -- this is the least worrying option :)

cheers,

Rik -- the flu hits, the flu hits, the flu hits -- MORE
+-------------------------------------------------------------------+
| Linux memory management tour guide.        [EMAIL PROTECTED] |
| Scouting Vries cubscout leader.      http://www.phys.uu.nl/~riel/ |
+-------------------------------------------------------------------+

-
Linux SMP list: FIRST see FAQ at http://www.irisa.fr/prive/mentre/smp-faq/
To Unsubscribe: send "unsubscribe linux-smp" to [EMAIL PROTECTED]

Reply via email to