Port-i386 archive

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

Re: support for more than 32 CPUs



On Tue, Apr 17, 2012 at 11:08:17PM +0100, Mindaugas Rasiukevicius wrote:
> Manuel Bouyer <bouyer%antioche.eu.org@localhost> wrote:
> > > > Hello,
> > > > the attached patch,
> > > 
> > > Which I forgot to attach, as pointed out by several of you. Here it is.
> > 
> > And it looks like it didn't get to the lists, maybe because it's too
> > large. You can find it at: http://www.netbsd.org/~bouyer/x8664cpu.diff
> 
> Cool!  The patch seems the same as original, but my silly bugs fixed. :)
> Did you try it on multiple SMP machines?

I booted the 64-core AMD system (of course) and also a 4-core hyperthread
Intel Xeon system. I'll also test a dual-core hyperthread i5 intel desktop.

> Concern is the early boot, when
> due to our messy MD initialisation code bugs like missing TLB flush can
> happen.  While on some machines it fails immediately, on other machines
> it might be pretty lucky (and once booted, it is handled correctly).
> 
> >From pmap_tlb_intr():
> 
> +     if (!kcpuset_isset(tm->tm_pending, cid)) {
> +             return;
> +     }
> 
> I kept this pending mask to have the code more defensive i.e. it would
> handle spurious IPIs.  However, AFAIK, that should not happen, unless
> the hardware fails.  If so, tm_pendcount and tm_gen is enough and that
> pending mask can be removed.  Do you see/know any corner case here?

I think you're right, this should not happen. Maybe turn it into a KASSERT() ?

> 
> Thanks a lot for working on this!  Do you want me to commit the patch,
> or would like to do it yourself?

I won't mind if you do it, but maybe I should test the change above before ?

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index