Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Jul 2015 23:13:09 -0700
From:      Garrett Cooper <yaneurabeya@gmail.com>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org>
Subject:   Re: CFT/CFR: NUMA policy branch
Message-ID:  <D60A4F17-D573-4C0D-AD8B-2C3710A67DA6@gmail.com>
In-Reply-To: <CAJ-Vmo=ON9bEngDoMFK-kJR=qVvcX%2BEeQXx%2BUoEsh1npMHjESQ@mail.gmail.com>
References:  <CAJ-Vmo=SnqXTF5m65haKqrVf699zinyXs%2BQdvR6V88CW7vooCw@mail.gmail.com> <CAJ-VmonyTfSxj%2BD=FN3TUCO33w4vGqh1REQqx-8rd-JcArfqSA@mail.gmail.com> <CAJ-Vmo=ON9bEngDoMFK-kJR=qVvcX%2BEeQXx%2BUoEsh1npMHjESQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_4C725582-4821-4CB1-93CB-7BA046F0986F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

On Jul 5, 2015, at 19:06, Adrian Chadd <adrian@freebsd.org> wrote:

> Hi,
>=20
> I've done another update. kib@ has been beating me with the clue stick =
a bit.
>=20
> =
https://github.com/freebsd/freebsd/compare/master...erikarn:local/adrian_n=
uma_policy
>=20
> * (kib) (numactl.c) fix up sorting of include files
> * (kib) (numactl.c) consistent use of values when calling err()
> * (kib) (numactl.c) consistently wrap lines at 78 characters, don't
> prematurely wrap lines
> * (kib) don't use the old-style BSD licence mentioning "regents", use
> the updated one
> * (kib) (vm_domain.c) don't break out after iterating a few times and
> have the API be unpredictable - so now the API will always succeed in
> reading a vm_policy
>=20
> I've tested the policies (first-touch, fixed-domain, round-robin) and
> they all still work as advertised, both on threads and processes.
>=20
> I'd appreciate more reviews and some further testing.

Please create a dummy pull request or post the code up on Phabricator.

- Please put some of the items like policy_to_str and str_to_policy in a =
library.
- Please use that code in the kernel as well for =
sysctl_vm_default_policy to reduce duplication.
- Please note reasoning for why `options MAXMEMDOM=3D16` in numa(4).
- Why are checking for `if (p)` before calling PROC_UNLOCK(p) in =
sys_numa_getaffinity, but not sys_numa_setaffinity?
- sys_numa_setaffinity and sys_numa_getaffinity look similar. Could =
something be implemented like sysctl(3) for handling getting/setting of =
affinities all in one shot?
- `if (p)` should be `if (p !=3D NULL)`, etc per style(9).
- Is there a way that the affinity could be inherited/not inherited =
across threads, similar to what ktrace -i does? If so, how does one do =
that?
- In vm_domain_rr_selectdomain, should this use atomic(9), i.e. can =
multiple threads access/mangle the value of td_dom_rr_idx in parallel?
- In vm_domain_policy_validate, couldn=92t you remove all of the =
intermediary `return (-1)`=92s as long as you put `break;`s in the =
switch/case statements?
- Should vm_domain_policy_cleanup/vm_domain_policy_init be implemented? =
If so, what should they have in there?
- Would it make sense for `struct vm_domain_iterator` to be a =
queue(9)-like type (just based on the name alone)? If not, what data =
structure do you anticipate it having, e.g. tree, queue, directed graph, =
etc?
- In vm_domain_iterator_run, vi->n is always decremented after the vi->n =
<=3D 0 run is done =97 why not move that outside the switch-case =
statement?
- Why did you hand roll `vm_domain_iterator_isdone` in =
`vm_domain_iterator_run` up at the top?
- The parameter names for functions/syscalls can be omitted in the =
declarations.
- The change to vm_page.c seems like it could be committed separate from =
the NUMA changes.
- `However without it'll kernel panic below - the code didn=92t` -> =
`However without the following check, the kernel will panic below; the =
code didn=92t`
- vm_domain_iterator_run seems like it could use one of the queue(9) =
data structures.
- Why is OPT_TID 1001?
- `int error;` should come after `cpuset_t set;` per alignment and =
style(9).
- `atoi` parsing is better handled via strtoll, etc.

Thanks!
-NGie

--Apple-Mail=_4C725582-4821-4CB1-93CB-7BA046F0986F
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQEcBAEBCgAGBQJVnL91AAoJEMZr5QU6S73eao8H/idxsdPeoqIHaHR7TaYtM/7o
FiwKrWYusUuUDXQfEdM8EgMk1deCM2LIfBQl4gMx+QiSnZSOMmGWCUUr1csRx8GR
mfYVJ9t6M+YMhX7nG7wNQA1RDRQIT3hxC8/VA7iRMfcHGXoglPljruxpFi+q17bH
TLcW7uLTi00D/FDoCjdNPfjycFMpG6JpPnxa/QY1x6RdGJKLP5lkOWE5NfJ5st87
GIqipOJWyKq+LZNf75hI4KTmO6LwRWUKAV2/UG3IscdZoO037jyb5MNKgreDAwtq
lP8tMk9WN02+90wchgZo2iw7WcOewr3Yc1uN3LP+ITqhUJY3a7xrpeXDfK7hVaY=
=2v/h
-----END PGP SIGNATURE-----

--Apple-Mail=_4C725582-4821-4CB1-93CB-7BA046F0986F--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D60A4F17-D573-4C0D-AD8B-2C3710A67DA6>