kern/163585: cpuset by twice kill SMP functionality

Ivan Klymenko fidaj at ukr.net
Sat Dec 24 15:10:12 UTC 2011


The following reply was made to PR kern/163585; it has been noted by GNATS.

From: Ivan Klymenko <fidaj at ukr.net>
To: Oleg Ginzburg <olevole at olevole.ru>
Cc: freebsd-gnats-submit at FreeBSD.org
Subject: Re: kern/163585: cpuset by twice kill SMP functionality
Date: Sat, 24 Dec 2011 16:25:41 +0200

 =D0=92 Sat, 24 Dec 2011 14:17:39 GMT
 Oleg Ginzburg <olevole at olevole.ru> =D0=BF=D0=B8=D1=88=D0=B5=D1=82:
 
 >=20
 > >Number:         163585
 > >Category:       kern
 > >Synopsis:       cpuset by twice kill SMP functionality
 > >Confidential:   no
 > >Severity:       critical
 > >Priority:       high
 > >Responsible:    freebsd-bugs
 > >State:          open
 > >Quarter:       =20
 > >Keywords:      =20
 > >Date-Required:
 > >Class:          sw-bug
 > >Submitter-Id:   current-users
 > >Arrival-Date:   Sat Dec 24 14:20:09 UTC 2011
 > >Closed-Date:
 > >Last-Modified:
 > >Originator:     Oleg Ginzburg
 > >Release:        9.0-RC3, 10-CURRENT, 9-STABLE
 > >Organization:
 > >Environment:
 > FreeBSD gizmo.my.domain 9.0-PRERELEASE FreeBSD 9.0-PRERELEASE #12:
 > Sun Dec 11 00:00:04 MSK 2011
 > root at gizmo.my.domain:/usr/obj/usr/src/sys/GENERIC  amd64
 > >Description:
 > The problem is observed at attempt to specify cpu-list for any
 > process by a quantity of times. For example:
 >=20
 > Before problem:
 > / head of top /
 > 146 processes: 1 running, 145 sleeping
 > CPU 0:  4.7% user,  0.0% nice,  0.4% system,  0.4% interrupt, 94.5%
 > idle CPU 1:  2.8% user,  0.0% nice,  0.4% system,  0.0% interrupt,
 > 96.9% idle CPU 2:  0.8% user,  0.0% nice,  0.0% system,  0.0%
 > interrupt, 99.2% idle CPU 3:  1.2% user,  0.0% nice,  0.0% system,
 > 0.0% interrupt, 98.8% idle CPU 4:  0.0% user,  0.0% nice,  0.0%
 > system,  0.0% interrupt,  100% idle CPU 5:  0.0% user,  0.0% nice,
 > 0.0% system,  0.0% interrupt,  100% idle Mem: 4195M Active, 287M
 > Inact, 2699M Wired, 13M Cache, 8642M Free Swap: 4096M Total, 4096M
 > Free
 >=20
 >   PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU
 > COMMAND 3629 oleg          4  20    0   321M 54816K select  0   0:47
 > 1.46% psi 3122 oleg          1  20    0   928M 51348K select  1
 > 1:26  1.07% Xorg
 >=20
 > After occurrence resource deadlock avoided system come with unusable
 > SMP: All new process spawn by one core (make -j6 -C /usr/src
 > buildworld):
 >=20
 > 177 processes: 8 running, 169 sleeping
 > CPU 0:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100%
 > idle CPU 1:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,
 > 100% idle CPU 2:  0.0% user,  0.0% nice,  0.0% system,  0.0%
 > interrupt,  100% idle CPU 3:  0.0% user,  0.0% nice,  0.0% system,
 > 0.0% interrupt,  100% idle CPU 4:  0.0% user,  0.0% nice,  0.0%
 > system,  0.0% interrupt,  100% idle CPU 5: 74.4% user,  0.0% nice,
 > 22.4% system,  0.4% interrupt,  2.8% idle Mem: 4393M Active, 300M
 > Inact, 2759M Wired, 13M Cache, 8371M Free Swap: 4096M Total, 4096M
 > Free
 >=20
 >   PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU
 > COMMAND 30442 root          1  72    0 63204K 48324K RUN     5
 > 0:00  2.59% cc1plus 30448 root          1  72    0 61156K 47264K
 > RUN     5   0:00  2.29% cc1plus 3629 oleg          4  20    0   321M
 > 54880K select  5   0:55  2.20% psi 30452 root          1  72    0
 > 60132K 44768K RUN     5   0:00  2.10% cc1plus 30454 root          1
 > 72    0 49868K 38392K RUN     5   0:00  2.10% cc1plus
 > >How-To-Repeat:
 > A little bit to play with cpuset:
 > cpuset -l N -p <PID>
 >=20
 >=20
 > >Fix:
 >=20
 >=20
 > >Release-Note:
 > >Audit-Trail:
 > >Unformatted:
 >  >> 3122 oleg          1  21    0   928M 51320K select  5   1:37
 >  >> 0.88% Xorg <<
 >  30455 root          1  52    0  6280K  3992K piperd  5   0:00  0.29%
 > as=20
 >  (after cpuset for Xorg to 5 core)
 > =20
 >  It leads to a situation when one core is 100 % occupied, the others
 > core - 100% idle. There is no possibility to correct a situation
 > without reboot
 
 In particular this also applies to FreeBSD 10.0-CURRENT and on both
 schedulers (ULE and 4BSD).


More information about the freebsd-bugs mailing list