Port-sparc archive

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

re: partially working SMP again



   > so, this leaves the original cpuinfo page cached.  you need to
   > modify the loop towards the end of pmap_bootstrap4m() so make
   > it skip SRMMU_PG_C for the CPUINFO_VA page.
   
   Okay, I've put another ugly code which makes CPUINFO_VA uncached,
   but it still fails on cpu3 as the previous post.
   
   It fails in CPU_INFO_FOREACH() in cpu.c:xcall().
   CPU_INFO_FOREACH() macro in sparc/cpuvar.h is defined as:
   > #define CPU_INFO_FOREACH(cii, cp)  \
   > cii = 0; (cp = cpus[cii]) && cp->eintstack && cii < sparc_ncpus; cii++
   so maybe we should allocate cpus[_MAXNCPU + 1] in cpu.c
   to make sure cpus[4] == NULL.

hmmm.. or just move the cii < sparc_ncpus test first again?
   
   Now it goes a bit further, but still fails:

OK, now i think you're having issues with the cache congruency
issue.  i've got some ideas for a fix for this, but it might
require some help from /boot.  i have some code in my tree
that booted further than it ever has, but it wastes 32KB for
each cpuinfo and /boot doesn't give enough bootstrap ram for
this...


.mrg.


Home | Main Index | Thread Index | Old Index