[Bug 1573] New: Per CPU Patch -- SMP Step #1

bugzilla-daemon at rtems.org bugzilla-daemon at rtems.org
Mon Jun 21 13:27:26 CDT 2010


           Summary: Per CPU Patch -- SMP Step #1
           Product: RTEMS
           Version: HEAD
          Platform: All
        OS/Version: RTEMS
            Status: NEW
          Severity: enhancement
          Priority: P3
         Component: cpukit
        AssignedTo: joel.sherrill at oarcorp.com
        ReportedBy: joel.sherrill at oarcorp.com
                CC: giddyup44 at yahoo.com

Gedare <giddyup44 at yahoo.com> changed:

           What    |Removed                     |Added
                 CC|                            |giddyup44 at yahoo.com

Created an attachment (id=804)
 --> (https://www.rtems.org/bugzilla/attachment.cgi?id=804)
Per CPU Patch V1

I have been working on SMP support for RTEMS as a background task.
Now that 4.10 has branched, I wanted to get some of the code merged.
This patch is the first chunk.  I have an SMP Exploration test which can
boot multi-core systems.  I am testing on the SPARC/LEON3 (quad-core)
and x86/pc386 (qemu with up to 32 cores). I have tried to trim this
patch down to just the Per CPU data structure portion of the work.
This patch ...

+ Adds percpu data structure which contains
    - thread idle, executing, heir
    - isr nest level
    - context switch needed
+ It eliminates two variables about signal sent requiring a dispatch.
    - _ISR_Signals_to_thread_executing
    - _Thread_Do_post_task_switch_extension

That part is good.  The bad part is that it touches EVERY IRQ vectoring
implementation.  I have fully tested this on SPARC and i386.  I have 
compiled it for most, if not all, architectures along the way.  I
also have modified the sparc64 .S code that is impacted.

Thanks to Ralf's autoconf suggestion, the sizeof(void *) issues is
dealt with.  I checked that the number was 2 on the avr.  

I also had a number of style changes along the way and have tried to
filter them out and went ahead and committed them.  If you see those still
in here, we can commit those separately.

The next steps are to merge the --enable-smp autoconf logic, current
SMP data structure initialization code, and BSP support required
for SMP.  I will try to keep the pieces as small as possible.

Please review and comment.  I really would like to make more progress
on RTEMS SMP and have the work be public.

--- Comment #1 from Gedare <giddyup44 at yahoo.com> 2010-06-21 13:27:20 CDT ---
The changes look good.

Configure bugmail: https://www.rtems.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.

More information about the rtems-bugs mailing list