On 10/11/06, Hervé Fache <email address hidden> wrote:
>
> gst: as you are running a vanilla kernel (or almost), and assuming it
> is not tainted, maybe you could report the problem on the lkml?
>
> They will be a pain because Skype is proprietory, but the bug is
> clearly a kernel bug, and other applications could potentially trigger
> it.
>
> As you said, it's a DoS vulnerability.
I've got some more information. I just restarted skype an hour ago and
managed to get a small slow down. Not long enough to trigger the soft lockup
but long enough to block my machine several seconds.
On 10/11/06, Hervé Fache <email address hidden> wrote:
>
> gst: as you are running a vanilla kernel (or almost), and assuming it
> is not tainted, maybe you could report the problem on the lkml?
>
> They will be a pain because Skype is proprietory, but the bug is
> clearly a kernel bug, and other applications could potentially trigger
> it.
>
> As you said, it's a DoS vulnerability.
I've got some more information. I just restarted skype an hour ago and
managed to get a small slow down. Not long enough to trigger the soft lockup
but long enough to block my machine several seconds.
I had started skype using strace -tt -T
Problem happend at 15h4x local time, so
jerome@dolcevita:~$ grep "^15:4" /tmp/skype. log.failure | grep -v "\<0\." ler(21260, SCHED_FIFO, { 99 }) = 0 <3.200750> ler(21263, SCHED_FIFO, { 99 }) = 0 <7.981930>
15:44:43.941237 sched_setschedu
15:44:47.164665 sched_setschedu
15:45:34.548964 select(40, [3 4 5 7 39], [], [], {0, 496177}
so sched_setscheduler appears to be the handing call. It's not something
that is called often.
> grep sched_setscheduler /tmp/skype. log.failure ler(7353, SCHED_FIFO, { 99 }) = 0 <0.000040> ler(7354, SCHED_FIFO, { 99 }) = 0 <0.000022> ler(7355, SCHED_FIFO, { 99 }) = 0 <0.000022> ler(7356, SCHED_FIFO, { 99 }) = 0 <0.000021> ler(7357, SCHED_FIFO, { 2 }) = 0 <0.000022> ler(10419, SCHED_FIFO, { 99 }) = 0 <0.000036> ler(10420, SCHED_FIFO, { 99 }) = 0 <1.003012> ler(10421, SCHED_FIFO, { 99 }) = 0 <0.000028> ler(10422, SCHED_FIFO, { 99 }) = 0 <2.511436> ler(10423, SCHED_FIFO, { 2 }) = 0 <0.000027> ler(21259, SCHED_FIFO, { 99 }) = 0 <0.000038> ler(21260, SCHED_FIFO, { 99 }) = 0 <3.200750> ler(21262, SCHED_FIFO, { 99 }) = 0 <0.000030> ler(21263, SCHED_FIFO, { 99 }) = 0 <7.981930> ler(21264, SCHED_FIFO, { 2 }) = 0 <0.000027>
14:15:47.636727 sched_setschedu
14:15:47.637092 sched_setschedu
14:15:47.637453 sched_setschedu
14:15:47.637805 sched_setschedu
14:15:47.638156 sched_setschedu
14:37:06.699271 sched_setschedu
14:37:06.699499 sched_setschedu
14:37:07.702810 sched_setschedu
14:37:07.703027 sched_setschedu
14:37:10.215049 sched_setschedu
15:44:43.941004 sched_setschedu
15:44:43.941237 sched_setschedu
15:44:47.164437 sched_setschedu
15:44:47.164665 sched_setschedu
15:44:55.147148 sched_setschedu
Here's the problematic strace log extract:
15:44:43.940671 ioctl(40, USBDEVFS_IOCTL, 0xbf9d95c0) = 0 <0.000011> DISCONNECT, 0xbf9d9d04) = 0 <0.000010> stack=0xb62df4c 4, VM|CLONE_ FS|CLONE_ FILES|CLONE_ SIGHAND| CLONE_THREAD| CLONE_SYSVSEM| CLONE_SETTLS| CLONE_PARENT_ SETTID| CLONE_CHILD_ CLEARTID| CLONE_DETACHED, tidptr= 0xb62dfbf8, {entry_number:6, base_addr: 0xb62dfbb0, 0xb62dfbf8) = 21259 <0.000022> priority_ max(SCHED_ FIFO) = 99 <0.000010> ler(21259, SCHED_FIFO, { 99 }) = 0 <0.000038> stack=0xb52dd4c 4, VM|CLONE_ FS|CLONE_ FILES|CLONE_ SIGHAND| CLONE_THREAD| CLONE_SYSVSEM| CLONE_SETTLS| CLONE_PARENT_ SETTID| CLONE_CHILD_ CLEARTID| CLONE_DETACHED, tidptr= 0xb52ddbf8, {entry_number:6, base_addr: 0xb52ddbb0, 0xb52ddbf8) = 21260 <0.000016> priority_ max(SCHED_ FIFO) = 99 <0.000009> ler(21260, SCHED_FIFO, { 99 }) = 0 <3.200750> stack=0xb6ae04c 4, VM|CLONE_ FS|CLONE_ FILES|CLONE_ SIGHAND| CLONE_THREAD| CLONE_SYSVSEM| CLONE_SETTLS| CLONE_PARENT_ SETTID| CLONE_CHILD_ CLEARTID| CLONE_DETACHED, tidptr= 0xb6ae0bf8, {entry_number:6, base_addr: 0xb6ae0bb0, 0xb6ae0bf8) = 21262 <0.000036> priority_ max(SCHED_ FIFO) = 99 <0.000009> ler(21262, SCHED_FIFO, { 99 }) = 0 <0.000030> stack=0xb4adc4c 4, VM|CLONE_ FS|CLONE_ FILES|CLONE_ SIGHAND| CLONE_THREAD| CLONE_SYSVSEM| CLONE_SETTLS| CLONE_PARENT_ SETTID| CLONE_CHILD_ CLEARTID| CLONE_DETACHED, tidptr= 0xb4adcbf8, {entry_number:6, base_addr: 0xb4adcbb0, 0xb4adcbf8) = 21263 <0.000016> priority_ max(SCHED_ FIFO) = 99 <0.000008> ler(21263, SCHED_FIFO, { 99 }) = 0 <7.981930> PROT_WRITE, MAP_ANONYMOUS, -1, 0) = 0xb3adb000 <0.000022> 0xb3adb000, 4096, PROT_NONE) = 0 <0.000012> stack=0xb42db4c 4, VM|CLONE_ FS|CLONE_ FILES|CLONE_ SIGHAND| CLONE_THREAD| CLONE_SYSVSEM| CLONE_SETTLS| CLONE_PARENT_ SETTID| CLONE_CHILD_ CLEARTID| CLONE_DETACHED, tidptr= 0xb42dbbf8, {entry_number:6, base_addr: 0xb42dbbb0, 0xb42dbbf8) = 21264 <0.000062> priority_ min(SCHED_ FIFO) = 1 <0.000008> ler(21264, SCHED_FIFO, { 2 }) = 0 <0.000027>
15:44:43.940733 ioctl(40, USBDEVFS_
15:44:43.940825 clone(child_
flags=CLONE_
parent_
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1,
seg_not_present:0, useable:1}, child_tidptr=
15:44:43.940944 sched_get_
15:44:43.941004 sched_setschedu
15:44:43.941101 clone(child_
flags=CLONE_
parent_
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1,
seg_not_present:0, useable:1}, child_tidptr=
15:44:43.941179 sched_get_
15:44:43.941237 sched_setschedu
15:44:47.164163 clone(child_
flags=CLONE_
parent_
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1,
seg_not_present:0, useable:1}, child_tidptr=
15:44:47.164377 sched_get_
15:44:47.164437 sched_setschedu
15:44:47.164533 clone(child_
flags=CLONE_
parent_
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1,
seg_not_present:0, useable:1}, child_tidptr=
15:44:47.164609 sched_get_
15:44:47.164665 sched_setschedu
15:44:55.146712 mmap2(NULL, 8392704, PROT_READ|
MAP_PRIVATE|
15:44:55.146892 mprotect(
15:44:55.146961 clone(child_
flags=CLONE_
parent_
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1,
seg_not_present:0, useable:1}, child_tidptr=
15:44:55.147090 sched_get_
15:44:55.147148 sched_setschedu
I keep the 180 M strace log in case anyone wants it... This should be fed to
skype developpers and lkml.
Jerome