Port-amd64 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