Re: "cpuset -n prefer:?" --what values for "?" are supposed to be allowed? (only 1 is, despite two numa domains)

2019-09-12 Thread Mark Johnston
On Wed, Sep 11, 2019 at 11:14:42AM -0700, Mark Millard wrote:
> 
> 
> On 2019-Sep-11, at 10:11, Mark Millard  wrote:
> 
> 
> 
> > On 2019-Sep-11, at 08:15, Mark Johnston  wrote:
> > 
> >> On Wed, Sep 11, 2019 at 07:57:26AM -0700, Mark Millard wrote:
> >>> 
> >>> 
> >>> On 2019-Sep-11, at 07:31, Mark Johnston  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.)

Ok, that helps.  I believe you are hitting a bug that will be fixed by
r351672 and a couple of preceding commits to the same area.

> 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?

Good catch.  I believe cpusets are not allowed to have a NULL domain
set, so dset should never be NULL either.
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: "cpuset -n prefer:?" --what values for "?" are supposed to be allowed? (only 1 is, despite two numa domains)

2019-09-11 Thread Mark Millard



On 2019-Sep-11, at 10:11, Mark Millard  wrote:



> On 2019-Sep-11, at 08:15, Mark Johnston  wrote:
> 
>> On Wed, Sep 11, 2019 at 07:57:26AM -0700, Mark Millard wrote:
>>> 
>>> 
>>> On 2019-Sep-11, at 07:31, Mark Johnston  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(_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)

___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: "cpuset -n prefer:?" --what values for "?" are supposed to be allowed? (only 1 is, despite two numa domains)

2019-09-11 Thread Mark Millard



On 2019-Sep-11, at 08:15, Mark Johnston  wrote:

> On Wed, Sep 11, 2019 at 07:57:26AM -0700, Mark Millard wrote:
>> 
>> 
>> On 2019-Sep-11, at 07:31, Mark Johnston  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.)

===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)

___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: "cpuset -n prefer:?" --what values for "?" are supposed to be allowed? (only 1 is, despite two numa domains)

2019-09-11 Thread Mark Johnston
On Wed, Sep 11, 2019 at 07:57:26AM -0700, Mark Millard wrote:
> 
> 
> On 2019-Sep-11, at 07:31, Mark Johnston  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?
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: "cpuset -n prefer:?" --what values for "?" are supposed to be allowed? (only 1 is, despite two numa domains)

2019-09-11 Thread Mark Millard



On 2019-Sep-11, at 07:31, Mark Johnston  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:

# sysctl vm.phys_segs
vm.phys_segs: 
SEGMENT 0:

start: 0x1000
end:   0x9f000
domain:0
free list: 0x8281daa0

SEGMENT 1:

start: 0x103000
end:   0x100
domain:0
free list: 0x8281daa0

SEGMENT 2:

start: 0x100
end:   0x2ee1000
domain:0
free list: 0x8281d830

SEGMENT 3:

start: 0x2eea000
end:   0x2f23000
domain:0
free list: 0x8281d830

SEGMENT 4:

start: 0x300
end:   0xf7ff
domain:0
free list: 0x8281d830

SEGMENT 5:

start: 0x12000
end:   0x9c5562000
domain:0
free list: 0x8281d5c0

SEGMENT 6:

start: 0xa07c0
end:   0xa07d5
domain:0
free list: 0x8281d5c0

SEGMENT 7:

start: 0xa08001000
end:   0xf9ee0
domain:1
free list: 0x8281dd10

SEGMENT 8:

start: 0x10
end:   0x1427fe6000
domain:1
free list: 0x8281dd10


And confirming the oddity is still the case
(I'd rebooted since the report):

# 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

# cpuset -l0 -n prefer:0 COMMAND
cpuset: setdomain: Invalid argument

# cpuset -l0 -n prefer:2 COMMAND
cpuset: setdomain: Invalid argument

# cpuset -l0 -n prefer:1 COMMAND
cpuset: COMMAND: No such file or directory


===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)

___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: "cpuset -n prefer:?" --what values for "?" are supposed to be allowed? (only 1 is, despite two numa domains)

2019-09-11 Thread Mark Johnston
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?
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


Re: "cpuset -n prefer:?" --what values for "?" are supposed to be allowed? (only 1 is, despite two numa domains)

2019-09-11 Thread Clay Daniels Jr.
Mark, this is what I get on my machine:

root@new:~ # cpuset -g
pid -1 mask: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
pid -1 domain policy: first-touch mask: 0
root@new:~ #  cpuset -l0 -n prefer:0 COMMAND
cpuset: COMMAND: No such file or directory
root@new:~ # cpuset -l0 -n prefer:2 COMMAND
cpuset: setdomain: Invalid argument
root@new:~ # cpuset -l0 -n prefer:1 COMMAND
cpuset: setdomain: Invalid argument

>From dmesg:
FreeBSD 13.0-CURRENT r351901 GENERIC amd64
CPU: AMD Ryzen 7 3700X 8-Core Processor(3600.08-MHz K8-class CPU)

Similar,
Clay

On Wed, Sep 11, 2019 at 12:58 AM 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.)
>
>
> ===
> Mark Millard
> marklmi at yahoo.com
> ( dsl-only.net went
> away in early 2018-Mar)
>
> ___
> freebsd-current@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
>
___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


"cpuset -n prefer:?" --what values for "?" are supposed to be allowed? (only 1 is, despite two numa domains)

2019-09-10 Thread Mark Millard
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.)


===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)

___
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"