On 2019-Sep-11, at 10:11, Mark Millard <marklmi at yahoo.com> wrote: > On 2019-Sep-11, at 08:15, Mark Johnston <markj at freebsd.org> wrote: > >> On Wed, Sep 11, 2019 at 07:57:26AM -0700, Mark Millard wrote: >>> >>> >>> On 2019-Sep-11, at 07:31, Mark Johnston <markj at freebsd.org> wrote: >>> >>>> On Tue, Sep 10, 2019 at 10:58:05PM -0700, Mark Millard wrote: >>>>> In a context with: >>>>> >>>>> # cpuset -g >>>>> pid -1 mask: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 >>>>> pid -1 domain policy: first-touch mask: 0, 1 >>>>> >>>>> I get: >>>>> >>>>> # cpuset -l0 -n prefer:0 COMMAND >>>>> cpuset: setdomain: Invalid argument >>>>> >>>>> # cpuset -l0 -n prefer:2 COMMAND >>>>> cpuset: setdomain: Invalid argument >>>>> >>>>> But one prefer:? value does allow the COMMAND >>>>> to run: >>>>> >>>>> # cpuset -l0 -n prefer:1 COMMAND >>>>> >>>>> This seem odd to me. Am I missing something? >>>>> >>>>> For reference: I'm using a ThreadRipper 1950X >>>>> with a head -r351227 based context for this >>>>> activity. The above happens to have been run >>>>> in a Windows 10 Pro HyperV session, instead >>>>> of in a native-boot of the same media. (A >>>>> native-boot would have had 32 CPUs.) >>>> >>>> Can you please show the output of "sysctl vm.phys_segs" from this >>>> setup? >>> >>> Sure: >> >> I was wondering if you had only one domain populated, but it seems not >> to be the case. Could you try updating to r351672 or later and see if >> the behaviour persists? > > It may be a bit before I do that. > > FYI: I had set MAXMEMDOM to match the number of > actual domains for the context: > > /usr/src/sys/amd64/conf/GENERIC-DBG:options MAXMEMDOM=2 > /usr/src/sys/amd64/conf/GENERIC-NODBG:options MAXMEMDOM=2 > > (These kernel configuration files include GENERIC.) Not that the below is the problem that I reported, but cpuset_modify_domain has an oddity. In the below, note the "root->" use followed by the "root &&" test: the root-> use would have failed first. Should the && be "dset &&" instead? Should "root &&" just be removed for being redundant? 793 root = cpuset_getroot(set); 794 mtx_lock_spin(&cpuset_lock); 795 dset = root->cs_domain; 796 /* 797 * Verify that we have access to this set of domains. 798 */ 799 if (root && !domainset_valid(dset, domain)) { 800 error = EINVAL; 801 goto out; 802 } === Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)Received on Wed Sep 11 2019 - 16:14:51 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:21 UTC