Date: Tue, 28 Apr 2015 21:39:22 +0000 (GMT) From: Rui Paulo <rpaulo@me.com> To: Adrian Chadd <adrian@freebsd.org> Cc: "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org> Subject: Re: RFT: numa policy branch Message-ID: <f035d836-21e6-43e0-a105-6958caab475b@me.com>
next in thread | raw e-mail | index | archive | help
On Apr 26, 2015, at 01:30 PM, Adrian Chadd <adrian@freebsd.org> wrote:=0A=0A= Hi!=0A=0AAnother update:=0A=0A* updated to recent -HEAD;=0A* numactl now c= an set memory policy and cpuset domain information - so=0Ait's easy to say= "this runs in memory domain X and cpu domain Y" in=0Aone pass with it;=0A= =C2=A0=0AThat works, but --mempolicy=3Dfirst-touch should ignore the --mem= domain argument (or print an error) if it's present.=0A=0A* the locality m= atrix is now available. Here's an example from scott's=0A2x haswell v3, wi= th cluster-on-die enabled:=0A=0Avm.phys_locality:=0A0: 10 21 31 31=0A1: 21= 10 31 31=0A2: 31 31 10 21=0A3: 31 31 21 10=0A=0AAnd on the westmere-ex bo= x, with no SLIT table:=0A=0Avm.phys_locality:=0A0: -1 -1 -1 -1=0A1: -1 -1 = -1 -1=0A2: -1 -1 -1 -1=0A3: -1 -1 -1 -1=0A=C2=A0=0AThis worked for us on I= vyBridge a SLIT table.=0A=0A* I've tested in on westmere-ex (4x socket), s= andybridge, ivybridge,=0Ahaswell v3 and haswell v3 cluster on die.=0A* I'v= e discovered that our implementation of libgomp (from gcc-4.2) is=0Avery o= ld and doesn't include some of the thread control environment=0Avariables,= grr.=0A* .. and that the gcc libgomp code doesn't at all have freebsd thr= ead=0Aaffinity routines, so I added them to gcc-4.8.=0A=C2=A0=0AI used gcc= 4.9=0A=0AI'd appreciate any reviews / testing people are able to provide.= I'm=0Aabout at the functionality point where I'd like to submit it for=0A= formal review and try to land it in -HEAD.=0A=C2=A0=0AThere's a bug in the= default sysctl policy. =C2=A0You're calling strcat on an uninitialised st= ring, so it produces garbage output. =C2=A0We also hit the a panic when ou= r application starts allocation many GBs of memory. =C2=A0In this case, th= e memory is split between two sockets and I think it's crashing like you d= escribed on IRC.=0A=0A=0A=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f035d836-21e6-43e0-a105-6958caab475b>