Project

General

Profile

Actions

Bug #4808

closed

thread_wait_for() eats 100% of CPU power

Added by nagai (Hidetoshi Nagai) over 13 years ago. Updated over 13 years ago.

Status:
Closed
Target version:
ruby -v:
-
Backport:
[ruby-dev:43606]

Description

いつからかは把握できていませんが (少なくとも 1.9.2p0 では発生しません),
thread_wait_for() が CPU パワーを大量に消費するようになっています.

これが原因で,Ruby/Tk も CPU を 100 % 消費してしまいます.

このままリリースになってしまうとかなりまずいと思いますので,
優先度 High で急ぎ報告だけあげておきます.

以下はテスト用のコードです.
make 後に ruby -r ./th_wait_for.so -e '' でお試しください.
----<th_wait_for.c>-----------------------------------------
#include "ruby.h"

void
Init_th_wait_for()
{
struct timeval t;

t.tv_sec = 0;
t.tv_usec = 10000; /* 10ms */

while(1) {
fprintf(stderr, "*");fflush(stderr);
rb_thread_wait_for(t);
}
}

----<extconf.rb>--------------------------------------------
require 'mkmf'
create_makefile('th_wait_for');

--
永井 秀利 ()
九州工業大学大学院情報工学研究院知能情報工学研究系知能情報メディア部門助教

Updated by kosaki (Motohiro KOSAKI) over 13 years ago

  • Status changed from Open to Assigned
  • Assignee set to kosaki (Motohiro KOSAKI)
Actions #2

Updated by kosaki (Motohiro KOSAKI) over 13 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r31893.
Hidetoshi, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


  • thread_pthread.c (native_sleep): fix 1000times calculation error.
    this is a regression since r31457. [Bug #4808] [ruby-dev:43606]

Updated by kosaki (Motohiro KOSAKI) over 13 years ago

  • ruby -v changed from ruby 1.9.3dev (2011-06-01 trunk 31874) [x86_64-linux] to -

いつからかは把握できていませんが (少なくとも 1.9.2p0 では発生しません),
thread_wait_for() が CPU パワーを大量に消費するようになっています.

これが原因で,Ruby/Tk も CPU を 100 % 消費してしまいます.

このままリリースになってしまうとかなりまずいと思いますので,
優先度 High で急ぎ報告だけあげておきます.

亀レスですいません。最近 Ruby/tk にCPU使用率を下げるコミットがいくつか
入っているようですが、r31893 では不十分だったということなんでしょうか?
それとも、全然別件の改善なのでしょうか?

ご迷惑をおかけしているのではないかと心配しているので教えていただければ
幸いです

Updated by kosaki (Motohiro KOSAKI) over 13 years ago

いつからかは把握できていませんが (少なくとも 1.9.2p0 では発生しません),
thread_wait_for() が CPU パワーを大量に消費するようになっています.

これが原因で,Ruby/Tk も CPU を 100 % 消費してしまいます.

このままリリースになってしまうとかなりまずいと思いますので,
優先度 High で急ぎ報告だけあげておきます.

亀レスですいません。最近 Ruby/tk にCPU使用率を下げるコミットがいくつか
入っているようですが、r31893 では不十分だったということなんでしょうか?
それとも、全然別件の改善なのでしょうか?

ご迷惑をおかけしているのではないかと心配しているので教えていただければ
幸いです

Updated by nagai (Hidetoshi Nagai) over 13 years ago

永井@知能.九工大です.

From: KOSAKI Motohiro
Subject: [ruby-dev:43611] Re: [Ruby 1.9 - Bug #4808][Open] thread_wait_for() eats 100% of CPU power
Date: Thu, 2 Jun 2011 22:37:45 +0900
Message-ID:

いつからかは把握できていませんが (少なくとも 1.9.2p0 では発生しません),
thread_wait_for() が CPU パワーを大量に消費するようになっています.

これが原因で,Ruby/Tk も CPU を 100 % 消費してしまいます.

このままリリースになってしまうとかなりまずいと思いますので,
優先度 High で急ぎ報告だけあげておきます.

亀レスですいません。最近 Ruby/tk にCPU使用率を下げるコミットがいくつか
入っているようですが、r31893 では不十分だったということなんでしょうか?
それとも、全然別件の改善なのでしょうか?

ごめんなさい.紛らわしかったですね.
当初報告した問題は r31893 で解消しました.ありがとうございます.

ですが,それでもなお CPU 利用率が高かったので,
以前と異なる方法で thread 切替えタイミングを決めるようにしたのが
その後の patch です.
手元の環境では,CPU 利用率が patch 適用前の 1/10 くらいになります.

昔に比べてマシンが速くなっていることもあり,

以前のやり方では通用しなくなっていたようです.

効果が大きいので 1.9.2 にも backport した方がいいとは思うのですが,
テスト期間が十分ではないことが心配点です.
多分,大丈夫だろうとは考えているのですが...

永井 秀利 ()
九州工業大学大学院情報工学研究院知能情報工学研究系知能情報メディア部門助教

Updated by nagai (Hidetoshi Nagai) over 13 years ago

永井@知能.九工大です.

From: KOSAKI Motohiro
Subject: [ruby-dev:43611] Re: [Ruby 1.9 - Bug #4808][Open] thread_wait_for() eats 100% of CPU power
Date: Thu, 2 Jun 2011 22:37:45 +0900
Message-ID:

いつからかは把握できていませんが (少なくとも 1.9.2p0 では発生しません),
thread_wait_for() が CPU パワーを大量に消費するようになっています.

これが原因で,Ruby/Tk も CPU を 100 % 消費してしまいます.

このままリリースになってしまうとかなりまずいと思いますので,
優先度 High で急ぎ報告だけあげておきます.

亀レスですいません。最近 Ruby/tk にCPU使用率を下げるコミットがいくつか
入っているようですが、r31893 では不十分だったということなんでしょうか?
それとも、全然別件の改善なのでしょうか?

ごめんなさい.紛らわしかったですね.
当初報告した問題は r31893 で解消しました.ありがとうございます.

ですが,それでもなお CPU 利用率が高かったので,
以前と異なる方法で thread 切替えタイミングを決めるようにしたのが
その後の patch です.
手元の環境では,CPU 利用率が patch 適用前の 1/10 くらいになります.

昔に比べてマシンが速くなっていることもあり,

以前のやり方では通用しなくなっていたようです.

効果が大きいので 1.9.2 にも backport した方がいいとは思うのですが,
テスト期間が十分ではないことが心配点です.
多分,大丈夫だろうとは考えているのですが...

永井 秀利 ()
九州工業大学大学院情報工学研究院知能情報工学研究系知能情報メディア部門助教

Updated by kosaki (Motohiro KOSAKI) over 13 years ago

亀レスですいません。最近 Ruby/tk にCPU使用率を下げるコミットがいくつか
入っているようですが、r31893 では不十分だったということなんでしょうか?
それとも、全然別件の改善なのでしょうか?

ごめんなさい.紛らわしかったですね.
当初報告した問題は r31893 で解消しました.ありがとうございます.

ですが,それでもなお CPU 利用率が高かったので,
以前と異なる方法で thread 切替えタイミングを決めるようにしたのが
その後の patch です.
手元の環境では,CPU 利用率が patch 適用前の 1/10 くらいになります.

なるほど。理解できました。丁寧にありがとうございます。1/10とは素晴らしいですね

Updated by kosaki (Motohiro KOSAKI) over 13 years ago

亀レスですいません。最近 Ruby/tk にCPU使用率を下げるコミットがいくつか
入っているようですが、r31893 では不十分だったということなんでしょうか?
それとも、全然別件の改善なのでしょうか?

ごめんなさい.紛らわしかったですね.
当初報告した問題は r31893 で解消しました.ありがとうございます.

ですが,それでもなお CPU 利用率が高かったので,
以前と異なる方法で thread 切替えタイミングを決めるようにしたのが
その後の patch です.
手元の環境では,CPU 利用率が patch 適用前の 1/10 くらいになります.

なるほど。理解できました。丁寧にありがとうございます。1/10とは素晴らしいですね

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0