Re: status of NetBSD SMP support

"Rocky Hotas" <[email protected]> Wed, 10 Aug 2016 20:30:28 +0200
Newsgroups gmane.os.netbsd.devel.smp
Message-ID <trinity-9cb52366-12e2-472c-ab3c-1a5e265440d0-1470853828376@3capp-mailcom-lxa03>
Hello!
Like Bartosz, I would like to add another question: about scalability and =
multi-core hardware, what is the state of NetBSD with respect to - for exam=
ple - Solaris?
Being specifically designed to run also with the SPARC architecture, maybe=
 Oracle Solaris fits very well in a multi-core environment and it is able t=
o efficiently divide its workload between the cores=2E Is NetBSD able to do=
 the same? If not, would NetBSD need to do the same?
Cheers :)

Rocky


> Sent: Wednesday, August 10, 2016 at 10:35 AM
> From: "Bartosz Marcinkiewicz" <bartoszmarc@gmail=2Ecom>
> To: "Erik Fair" <fair@netbsd=2Eorg>, "David Holland" <dholland-tech@netb=
sd=2Eorg>
> Cc: "Thor Lancelot Simon" <tls@panix=2Ecom>, "Cherry G=2E Mathew" <cherr=
y=2Eg=2Emathew@gmail=2Ecom>, "NetBSD Symmetric Multi-Processing" <tech-smp@=
netbsd=2Eorg>
> Subject: Re: status of NetBSD SMP support
>
> Hi,
>=20
> Pardon me for jumping in, but I have similar question, from a little=20
> different angle: what areas of the NetBSD kernel can be improved so they=
=20
> scale better on SMP machines, what can be implemented / researched?
>=20
> BR, bm=2E
>=20
>=20
> On 10/08/16 05:16, Erik Fair wrote:
> > To be clear: I know the kernel isn=E2=80=99t fully parallel ((S)MP) - =
otherwise the recent work on the networking stack (e=2Eg=2E making ARP cach=
es per interface) wouldn=E2=80=99t be necessary=2E
> >
> > What I was looking for was a general status report of the NetBSD kerne=
l (and userland) on SMP systems (more commonly known as =E2=80=9Cmulticore=
=E2=80=9D in au courant parlance): how multithreaded is it? How much lock c=
ontention? Is Big Lock gone - devolved into lots of small locks?
> >
> > What=E2=80=99s the deal?
> >
> > It=E2=80=99s one thing to boot and throw processes at cores (processor=
s) - it=E2=80=99s another to have the kernel properly parallel so that when=
 those processes make system calls, they don=E2=80=99t contend with each ot=
her (much)=2E
> >
> > All this in full cognizance of Amdahl=E2=80=99s Law and the non-parall=
el bits we can do nothing about (e=2Eg=2E single I/O paths to sole devices)=
=2E I just want to have some idea how much more parallelism we can pull out=
 of the currently non-parallel code to reduce that serial time term in Amda=
hl=E2=80=99s Law to minimum, because the hardware guys are going to continu=
e throw ever more cores at us for lack of any better idea of what to do wit=
h the chip area that Moore=E2=80=99s Law has given them (and us), and just =
as Amdahl predicted, that serial term will dominate as the core counts go u=
p=2E
> >
> > I bet the SIMD engines are going to get fancier, too=2E Just look at G=
PUs=2E
> >
> > 	Erik <fair@netbsd=2Eorg>
> >
> >
> >> On Aug 9, 2016, at 11:17, David Holland <dholland-tech@netbsd=2Eorg> =
wrote:
> >>
> >> On Mon, Aug 08, 2016 at 07:36:05PM -0400, Thor Lancelot Simon wrote:
> >>>> Last I remember anyone reporting hard results, the scaling worked t=
o
> >>>> ~16 but not to ~32 and the uvm page queue lock was the chief culpri=
t=2E
> >>>> Dunno what if anything's been done about that=2E=2E=2E
> >>> There's a fragmentary discussion of it from around 2010 in the maili=
ng list
> >>> archives, but something must have been done as that particular limit=
ation
> >>> seems to have gone away=2E  Our build cluster nodes run happily with=
 12
> >>> cores, 24 threads, and I do not see the scaling issues we observed b=
etween
> >>> 16 and 20 cores in my tests years ago=2E
> >> In that case we definitely need someone to collect some hard numbers =
:-)
> >>
> >> --=20
> >> David A=2E Holland
> >> dholland@netbsd=2Eorg
>=20
>