Closed GoogleCodeExporter closed 8 years ago
Hi Bjoern,
Thanks for the report. Could I ask you to generate a log file and attach it to
this bug for the command that fails on your hardware. It's easy to do, just
add the "--log file.txt" option to the main cset command. For example:
# cset --log file.txt set --cpu_exclusive -c 0-6,11,13 -m 0-1 -s /set1
This looks like a conversion bug, and I don't have hardware with enough cpus to
duplicate atm.
Thanks.
Original comment by tsariou...@gmail.com
on 29 Jul 2010 at 6:06
I had to slightly change the command, because I currently don't have access to
the machine. However here's the log:
100730-11:50:56 root DEBUG ---------- STARTING ----------
100730-11:50:56 root DEBUG Cpuset (cset) 1.5.4
100730-11:50:56 root DEBUG cmdline: /usr/bin/cset set --cpu_exclusive -c
0-1,3,5 -m 0-1 -s /set1
100730-11:50:56 root DEBUG creating cpuset model
100730-11:50:56 set DEBUG entering func, options={'cpu_exclusive': True,
'set': '/set1', 'force': None, 'verbose': None, 'mem': '0-1', 'recurse': None,
'list': None, 'newname': None, 'usehex': None, 'mem_exclusive': None,
'destroy': None, 'cpu': '0-1,3,5'}, args=[]
100730-11:50:56 cset DEBUG entering rescan
100730-11:50:56 cset DEBUG initializing CpuSet
100730-11:50:56 cset DEBUG finding all cpusets
100730-11:50:56 cset DEBUG locating cpuset filesystem...
100730-11:50:56 cset DEBUG cpusets mounted at: /cpusets
100730-11:50:56 cset DEBUG creating root node at /cpusets
100730-11:50:56 cset DEBUG starting bottom-up discovery walk...
100730-11:50:56 cset DEBUG *** walking /cpusets
100730-11:50:56 cset DEBUG /cpusets has 0 subsets: []
100730-11:50:56 cset DEBUG staring top-down parenting walk...
100730-11:50:56 cset DEBUG ~~~ walking /
100730-11:50:56 cset DEBUG parent is self (root cpuset), skipping
100730-11:50:56 cset DEBUG found 1 cpusets
100730-11:50:56 root CRITICAL **> invalid literal for int(): 1,3,5,7
100730-11:50:56 root CRITICAL option not understood
And I ran this (with sudo) to reproduce:
#!/bin/bash
for setol in 2 4 6; do
echo 0 > /sys/devices/system/cpu/cpu${setol}/online
done
cset --log file.txt set --cpu_exclusive -c 0-1,3,5 -m 0-1 -s /set1
Original comment by bjoern.h...@gmail.com
on 30 Jul 2010 at 2:56
Hi Bjoern,
I think I fixed the problem. Can you do me a favor and check that it works on
your system. You can get staged packages here:
http://download.opensuse.org/repositories/home:/tsariounov:/cpuset:/stage/
Also, setting the --cpu_exclusive and --mem_exclusive will only work when a
cpuset is created, not modified. The only thing these flags do is to mark the
cpus and memory nodes in that set as exclusive to that set, so that they cannot
be used by any other cpuset.
Thanks,
Alex
Original comment by tsariou...@gmail.com
on 2 Aug 2010 at 3:34
Hi Alex,
I gave it a try and it seems to work fine.
Just for the records here are the logs (I used the same script as before).
> sudo ~/reproducebug.sh
cset: --> created cpuset "/set1"
> sudo cset set -l -r
cset:
Name CPUs-X MEMs-X Tasks Subs Path
------------ ---------- - ------- - ----- ---- ----------
root 0-1,3,5,7 y 0-1 y 164 1 /
set1 0-1,3,5 y 0-1 n 0 0 /set1
> cat file.txt
100803-08:26:12 root DEBUG ---------- STARTING ----------
100803-08:26:12 root DEBUG Cpuset (cset) 1.5.4.2
100803-08:26:12 root DEBUG cmdline: /usr/bin/cset set --cpu_exclusive -c
0-1,3,5 -m 0-1 -s /set1
100803-08:26:12 root DEBUG creating cpuset model
100803-08:26:12 set DEBUG entering func, options={'cpu_exclusive': True,
'set': '/set1', 'force': None, 'verbose': None, 'mem': '0-1', 'recurse': None,
'list': None, 'newname': None, 'usehex': None, 'mem_exclusive': None,
'destroy': None, 'cpu': '0-1,3,5'}, args=[]
100803-08:26:12 cset DEBUG entering rescan
100803-08:26:12 cset DEBUG initializing CpuSet
100803-08:26:12 cset DEBUG finding all cpusets
100803-08:26:12 cset DEBUG locating cpuset filesystem...
100803-08:26:12 cset DEBUG cpusets mounted at: /cpusets
100803-08:26:12 cset DEBUG creating root node at /cpusets
100803-08:26:12 cset DEBUG starting bottom-up discovery walk...
100803-08:26:12 cset DEBUG *** walking /cpusets
100803-08:26:12 cset DEBUG /cpusets has 0 subsets: []
100803-08:26:12 cset DEBUG staring top-down parenting walk...
100803-08:26:12 cset DEBUG ~~~ walking /
100803-08:26:12 cset DEBUG parent is self (root cpuset), skipping
100803-08:26:12 cset DEBUG found 1 cpusets
100803-08:26:12 cset DEBUG rescan: all cpus = 0-1,3,5,7
100803-08:26:12 cset DEBUG max cpu = 7
100803-08:26:12 cset DEBUG allcpumask = ff
100803-08:26:12 set DEBUG entering create_from_options,
options={'cpu_exclusive': True, 'set': '/set1', 'force': None, 'verbose': None,
'mem': '0-1', 'recurse': None, 'list': None, 'newname': None, 'usehex': None,
'mem_exclusive': None, 'destroy': None, 'cpu': '0-1,3,5'} args=[]
100803-08:26:12 cset DEBUG cpuspec_check(0-1,3,5)
100803-08:26:12 cset DEBUG memspec_check(0-1)
100803-08:26:12 set DEBUG entering create, name=/set1 cpuspec=0-1,3,5
memspec=0-1 cx=True mx=None
100803-08:26:12 cset DEBUG entering unique_set, name=/set1
100803-08:26:12 cset.find_sets DEBUG finding "/set1" in cpusets
100803-08:26:12 cset.find_sets DEBUG find by path
100803-08:26:12 cset DEBUG entering rescan
100803-08:26:12 cset DEBUG initializing CpuSet
100803-08:26:12 cset DEBUG finding all cpusets
100803-08:26:12 cset DEBUG locating cpuset filesystem...
100803-08:26:12 cset DEBUG cpusets mounted at: /cpusets
100803-08:26:12 cset DEBUG creating root node at /cpusets
100803-08:26:12 cset DEBUG starting bottom-up discovery walk...
100803-08:26:12 cset DEBUG *** walking /cpusets/set1
100803-08:26:12 cset DEBUG initializing CpuSet
100803-08:26:12 cset DEBUG new cpuset node absolute: /cpusets/set1
100803-08:26:12 cset DEBUG relative: /set1
100803-08:26:12 cset DEBUG reading cpuset passed relpath: /set1
100803-08:26:12 cset DEBUG ...path=/set1
100803-08:26:12 cset DEBUG ...name=set1
100803-08:26:12 cset DEBUG /cpusets/set1 has 0 subsets: []
100803-08:26:12 cset DEBUG *** walking /cpusets
100803-08:26:12 cset DEBUG /cpusets has 1 subsets: [set1]
100803-08:26:12 cset DEBUG staring top-down parenting walk...
100803-08:26:12 cset DEBUG ~~~ walking /
100803-08:26:12 cset DEBUG parent is self (root cpuset), skipping
100803-08:26:12 cset DEBUG ~~~ walking /set1
100803-08:26:12 cset DEBUG parpath decodes to: from dir of: /set1
100803-08:26:12 cset DEBUG parent is root cpuset
100803-08:26:12 cset DEBUG found 2 cpusets
100803-08:26:12 cset DEBUG rescan: all cpus = 0-1,3,5,7
100803-08:26:12 cset DEBUG max cpu = 7
100803-08:26:12 cset DEBUG allcpumask = ff
100803-08:26:12 set DEBUG created new cpuset "/set1"
100803-08:26:12 set DEBUG entering modify, name=/set1 cpuspec=0-1,3,5
memspec=0-1 cx=True mx=None
100803-08:26:12 cset DEBUG entering unique_set, name=/set1
100803-08:26:12 cset.find_sets DEBUG finding "/set1" in cpusets
100803-08:26:12 cset.find_sets DEBUG find by path
100803-08:26:12 cset.find_sets DEBUG ... found node "set1"
100803-08:26:12 set DEBUG modifying cpuset "set1"
100803-08:26:12 cset DEBUG cpuspec_check(0-1,3,5)
100803-08:26:12 cset DEBUG -> prop_set /set1.cpus = 0-1,3,5
100803-08:26:12 cset DEBUG -> prop_set /set1.mems = 0-1
100803-08:26:12 cset DEBUG -> prop_set /set1.cpu_exclusive = True
100803-08:26:12 set INFO --> created cpuset "/set1"
100803-08:26:12 set DEBUG entering active, name=/set1
100803-08:26:12 cset DEBUG entering unique_set, name=/set1
100803-08:26:12 cset.find_sets DEBUG finding "/set1" in cpusets
100803-08:26:12 cset.find_sets DEBUG find by path
100803-08:26:12 cset.find_sets DEBUG ... found node "set1"
Original comment by bjoern.h...@gmail.com
on 2 Aug 2010 at 11:41
Ok, looks good. I've formalized the release to 1.5.5 and you should be able to
upgrade the package in about 30 minutes from my regular OBS release area here:
http://download.opensuse.org/repositories/home:/tsariounov:/cpuset/
Thanks again Bjoern.
Original comment by tsariou...@gmail.com
on 3 Aug 2010 at 10:38
Original issue reported on code.google.com by
bjoern.h...@gmail.com
on 28 Jul 2010 at 4:05