Athlon64マシンにOpenSUSE10.1Alpha3をインストールしsoftdog.cの動作確認
増田と申します。よろしくお願いします。 件名の通りの実験をして見ましたので御報告いたします。 <インストール概要> ハードウェア CPU : AMD Athlon(tm) 64 Processor 3200+ stepping 00 MainBord : nVidia nForce3 Ultra Video Card :GeForce2 MX/MX 200 CD/DVD Drive:DVR-ABH16W(IO-DATA) HDD : Maxtor 6Y080L0, ATA DISK drive 媒体 SUSE-10.1-CD-OSS-x86_64-Alpha3-CD1.iso SUSE-10.1-CD-OSS-x86_64-Alpha3-CD2.iso SUSE-10.1-CD-OSS-x86_64-Alpha3-CD3.iso SUSE-10.1-CD-OSS-x86_64-Alpha3-CD4.iso SUSE-10.1-CD-OSS-x86_64-Alpha3-CD5.iso インストールパッケージの依存関係を弄りながらを含め 約40分ぐらいで終わったような気がします。 CD2はサイズが722064KBあってCD-Rに焼けなかったのですが、 DVD-Rに焼いてそのまま支障なくインストールに使えました。 Alpha2の時とは違って ネットワークカードもインストール時に自動認識し Videoカードも自動認識しXの設定も自動で行われました。 KDE環境は快適です(^_^)/。 <softdog.cの動作実験結果> # ls -l /dev/watchdog /bin/ls: /dev/watchdog: そのようなファイルやディレクトリはありません # modprobe softdog soft_margin=60 # ls -l /dev/watchdog crw-rw---- 1 root root 10, 130 2005-11-12 20:47 /dev/watchdog モジュールがINSされたところでスペシャルキャラクタデバイス が自動で作成されました。 # smod|grep softdog softdog 7452 0 この段階ではまだWatchdogが起動していません。 # echo " " > /dev/watchdog これで段階でWatchdog起動スタート。 # smod|grep softdog softdog 7452 1 ↑これがWDT開始を示します。 知っていると便利なテクニック 『/dev/watchdogに大文字 V を書き込むと、nowayout=1状態のrmmodできない ときでもWatchdog機能を停止出来ます。』 # echo "V" > /dev/watchdog # lsmod|grep softdog softdog 7452 0 ↑これがWDT停止を示します。 softdogを使うポイントは以下です。 1)WatchdogTimerモジュールIn Service # modprobe softdog soft_margin=60 タイムアウト時間(秒) 2)WatchdogTimer起動 # echo " " > /dev/watchdog (↑これで開始) 3)WatchdogTimer停止 # echo "V" > /dev/watchdog (↑大文字 V の書き込み。これで停止) 4)WatchdogTimerモジュールOut Of Servide # rmmod softdog 注意点として、以下のようにOption nowayout=1 を指定すると V を書き込んでも停止しませんし rmmodできませんでしたのでご注意下さい。 そういう仕様だと思います。 # modprobe softdog soft_margin=60 nowayout=1 以上です。 rmmodしてしまうと、以降コントロールできなくなり所定の時間が くるとサーバーが固まってしまいますので 必ず先に V を書き込んでから rmmod して下さい。 softdog動作実験は以上。 Watchdog用スペシャルキャラクタデバイスを増設して 2つのsoftdogを動かすsoftdogのパッチを書いて実験したことが あったのですがソースがどこかに消えてしまいました。(T_T) また、書き直しましたら動作実験とソースをUpさせて頂きます。 HDBENCH Clone を入れてベンチマークしようと思ったら ./configure時に gtk-configが無いというエラーが出て出来ません。 ちょっと調べて出来たら結果報告させて頂きます。
増田と申します。先のメールに間違いがありましたので 自己フォローです。 2箇所の訂正があります。 <1つ目>
知っていると便利なテクニック 『/dev/watchdogに大文字 V を書き込むと、nowayout=1状態のrmmodできない ときでもWatchdog機能を停止出来ます。』
これは間違いです。 先のメールの実験結果にも書きました通り、OpenSUSEで以下のような nowayout=1オプションをつけてsoftdogモジュールをINSした場合は /dev/watchdogに大文字 V を書き込んでもWatchdogTimerを停止する ことは出来ませんでした。 # modprobe softdog soft_margin=60 nowayout=1 <2つ目>
# smod|grep softdog
誤記です。 lsmodが正解です。 # lsmod|grep softdog 以上m(_ _)m hirohiro wrote:
増田と申します。よろしくお願いします。
件名の通りの実験をして見ましたので御報告いたします。 <インストール概要> ハードウェア CPU : AMD Athlon(tm) 64 Processor 3200+ stepping 00 MainBord : nVidia nForce3 Ultra Video Card :GeForce2 MX/MX 200 CD/DVD Drive:DVR-ABH16W(IO-DATA) HDD : Maxtor 6Y080L0, ATA DISK drive
媒体 SUSE-10.1-CD-OSS-x86_64-Alpha3-CD1.iso SUSE-10.1-CD-OSS-x86_64-Alpha3-CD2.iso SUSE-10.1-CD-OSS-x86_64-Alpha3-CD3.iso SUSE-10.1-CD-OSS-x86_64-Alpha3-CD4.iso SUSE-10.1-CD-OSS-x86_64-Alpha3-CD5.iso
インストールパッケージの依存関係を弄りながらを含め 約40分ぐらいで終わったような気がします。
CD2はサイズが722064KBあってCD-Rに焼けなかったのですが、 DVD-Rに焼いてそのまま支障なくインストールに使えました。
Alpha2の時とは違って ネットワークカードもインストール時に自動認識し Videoカードも自動認識しXの設定も自動で行われました。 KDE環境は快適です(^_^)/。
<softdog.cの動作実験結果>
# ls -l /dev/watchdog /bin/ls: /dev/watchdog: そのようなファイルやディレクトリはありません
# modprobe softdog soft_margin=60
# ls -l /dev/watchdog crw-rw---- 1 root root 10, 130 2005-11-12 20:47 /dev/watchdog
モジュールがINSされたところでスペシャルキャラクタデバイス が自動で作成されました。
# smod|grep softdog
softdog 7452 0
この段階ではまだWatchdogが起動していません。
# echo " " > /dev/watchdog
これで段階でWatchdog起動スタート。
# smod|grep softdog
softdog 7452 1 ↑これがWDT開始を示します。
知っていると便利なテクニック 『/dev/watchdogに大文字 V を書き込むと、nowayout=1状態のrmmodできない ときでもWatchdog機能を停止出来ます。』
# echo "V" > /dev/watchdog
# lsmod|grep softdog
softdog 7452 0 ↑これがWDT停止を示します。
softdogを使うポイントは以下です。
1)WatchdogTimerモジュールIn Service # modprobe softdog soft_margin=60 タイムアウト時間(秒)
2)WatchdogTimer起動 # echo " " > /dev/watchdog (↑これで開始)
3)WatchdogTimer停止 # echo "V" > /dev/watchdog (↑大文字 V の書き込み。これで停止)
4)WatchdogTimerモジュールOut Of Servide # rmmod softdog
注意点として、以下のようにOption nowayout=1 を指定すると V を書き込んでも停止しませんし rmmodできませんでしたのでご注意下さい。 そういう仕様だと思います。
# modprobe softdog soft_margin=60 nowayout=1
以上です。 rmmodしてしまうと、以降コントロールできなくなり所定の時間が くるとサーバーが固まってしまいますので 必ず先に V を書き込んでから rmmod して下さい。
softdog動作実験は以上。
Watchdog用スペシャルキャラクタデバイスを増設して 2つのsoftdogを動かすsoftdogのパッチを書いて実験したことが あったのですがソースがどこかに消えてしまいました。(T_T) また、書き直しましたら動作実験とソースをUpさせて頂きます。
HDBENCH Clone を入れてベンチマークしようと思ったら ./configure時に gtk-configが無いというエラーが出て出来ません。 ちょっと調べて出来たら結果報告させて頂きます。
K.Suzukiです。 On Thu, 08 Dec 2005 08:29:40 +0900 hirohiro <hirohiro@eurus.dti.ne.jp> wrote:
HDBENCH Clone を入れてベンチマークしようと思ったら ./configure時に gtk-configが無いというエラーが出て出来ません。 ちょっと調べて出来たら結果報告させて頂きます。
自分も HDBENCH Clone を x86-64 のマシンでテストして見ようと思って コンパイルしようとしたのですが、エラーが出て失敗しました。 で、ソースを色々修正してみてうまくいったみたいなのでそのパッチを以下に 貼っておきます。 パッチは 2.6.x & x86-64 専用になっております。:-) 起動と実行は、SUSE Linux 10.0 上で一通り試して動作確認をしました。 ですが、現在まで gtk をあまり使ったこと無いので変な箇所があるかもしれません。 以下に作成方法を書いておきます。 まず、HDBENCH Clone 本体である"hdbench-0.14.0.tar.gz"をダウンロードしてください。 その次に、このメールからパッチをコピペしてファイルに落とします。 ここでは、パッチファイル名を"hdbench-0.14.0-64.patch"とします。 以下のようにパッチを当てます。 $ ls hdbench-0.14.0-64.patch hdbench-0.14.0-64.patch $ tar xzf hdbench-0.14.0.tar.gz $ cd hdbench-0.14.0 $ patch -p1 < ../hdbench-0.14.0-64.patch 次に、UTF-8の日本語環境で起動するため以下を実行します。 $ cd po $ nkf -w ja.po | sed "s/euc-jp/UTF-8/" > ja2.po $ mv ja2.po ja.po $ msgfmt -o ja.gmo ja.po $ cd .. で、configure, make, make install をします。 (インストール先を変える場合は、PREFIXを適宜指定してください) $ ./configure --with-x $ make $ su # make install 以上です。 diff -ruN hdbench-0.14.0/src/benchcpu.s hdbench-0.14.0-fixup/src/benchcpu.s --- hdbench-0.14.0/src/benchcpu.s 1999-10-06 03:37:02.000000000 +0900 +++ hdbench-0.14.0-fixup/src/benchcpu.s 2005-12-10 01:09:52.338458500 +0900 @@ -27,18 +27,18 @@ .globl bench_integer .type bench_integer,@function bench_integer: - pushl %ebx - pushl %ecx - pushl %edx + pushq %rbx + pushq %rcx + pushq %rdx - xorl %ebx,%ebx + xorq %rbx,%rbx movl $128,%eax movl $128,b xorl %edx,%edx .label1: movl $300,%ecx - pushl %ebx + pushq %rbx .label2: movl a,%ebx imull b,%ebx @@ -70,16 +70,16 @@ jnz .label2 - popl %ebx - incl %ebx + popq %rbx + incq %rbx cmpl $1,done_flag jnz .label1 movl %ebx,%eax - popl %edx - popl %ecx - popl %ebx + popq %rdx + popq %rcx + popq %rbx ret @@ -87,9 +87,9 @@ .globl bench_float .type bench_float,@function bench_float: - pushl %ebx - pushl %ecx - pushl %edx + pushq %rbx + pushq %rcx + pushq %rdx xorl %ebx,%ebx movl $1132462080,a @@ -131,9 +131,9 @@ movl %ebx,%eax - popl %edx - popl %ecx - popl %ebx + popq %rdx + popq %rcx + popq %rbx ret @@ -141,31 +141,33 @@ .globl bench_memory .type bench_memory,@function bench_memory: - pushl %ebp - movl %esp,%ebp + pushq %rbp + movq %rsp,%rbp pushf - pushl %esi - pushl %edi - pushl %ebx - pushl %ecx - pushl %edx + pushq %rsi + pushq %rdi + pushq %rbx + pushq %rcx + pushq %rdx cld # reset direction flag xorl %eax,%eax .label5: - movl 8(%ebp),%esi # esi <- src - movl 12(%ebp),%edi # edi <- dest movl $64,%ecx .label6: - pushl %ecx + pushq %rcx + pushq %rsi + pushq %rdi movl $8192,%ecx # 2MB/4/64 rep movsl # double word(4bytes) incl %eax - popl %ecx + popq %rdi + popq %rsi + popq %rcx cmp $1,done_flag jz .label7 @@ -173,14 +175,14 @@ jmp .label5 .label7: - popl %edx - popl %ecx - popl %ebx - popl %edi - popl %esi + popq %rdx + popq %rcx + popq %rbx + popq %rdi + popq %rsi popf - movl %ebp,%esp - popl %ebp + movq %rbp,%rsp + popq %rbp ret diff -ruN hdbench-0.14.0/src/benchmark.c hdbench-0.14.0-fixup/src/benchmark.c --- hdbench-0.14.0/src/benchmark.c 1999-10-06 21:23:01.000000000 +0900 +++ hdbench-0.14.0-fixup/src/benchmark.c 2005-12-10 02:01:02.670342250 +0900 @@ -533,7 +533,7 @@ gint fd; gchar *err_mes_temp; gint i; - gint32 totalmem,freemem; + gint64 totalmem,freemem; if((fd=open(temp,O_CREAT | O_TRUNC | O_RDWR,S_IRWXU))==-1){ kill(getppid(),SIGTERM); @@ -544,7 +544,7 @@ g_error(_("Cannot get memory infomation.\n")); } - for(i=0;i<totalmem/1024L/1024L;i++){ + for(i=0;i<totalmem/1024L;i++){ if(write(fd,buf,1024L*1024L)<1024L*1024L){ kill(getppid(),SIGTERM); remove(temp); diff -ruN hdbench-0.14.0/src/getinfo.c hdbench-0.14.0-fixup/src/getinfo.c --- hdbench-0.14.0/src/getinfo.c 1999-10-06 20:54:19.000000000 +0900 +++ hdbench-0.14.0-fixup/src/getinfo.c 2005-12-10 12:29:41.149062500 +0900 @@ -35,20 +35,18 @@ #include "variable.h" -gint get_meminfo(gint32 *totalmem,gint32 *freemem) +gint get_meminfo(gint64 *totalmem,gint64 *freemem) { FILE *fp; #ifdef INFO_PROC //proc_ե____륷___ƥ__ˤ_______ - gchar buf[255]; - gint32 buffers,cached; + gint64 buffers,cached; if((fp=fopen("/proc/meminfo","r"))==NULL){ fprintf(stderr,_("Cannot open `/proc/meminfo'.\n")); return(FALSE); } - fgets(buf,255,fp); - fscanf(fp,"%*s %d %*d %d %*d %d %d",totalmem,freemem,&buffers,&cached); + fscanf(fp,"%*s %ld %*s %*s %ld %*s %*s %ld %*s %*s %ld",totalmem,freemem,&buffers,&cached); fclose(fp); *freemem+=(buffers+cached); @@ -76,11 +74,11 @@ } -void get_cpuinfo(gchar *name,gchar *vendor,gchar *family,gchar *model,gchar *stepping) +void get_cpuinfo(gint ncpu, gchar *name,gchar *vendor,gchar *family,gchar *model,gchar *stepping) { FILE *fp; gchar model_name[64],clock[16]; - + gint cpu_count = 0; #ifdef INFO_SYSCTL //sysctl___ޥ__ɤˤ_______ gint processor; gchar clock_temp[16]; @@ -108,10 +106,15 @@ break; } if(buf[0]=='\n'){ + cpu_count++; continue; } + if(ncpu != cpu_count) + continue; ptr=strchr(buf,'\t'); + if(!ptr) + continue; *ptr='\0'; strcpy(item,buf); @@ -147,11 +150,7 @@ strcpy(model,"unknown"); } - if(processor[0]=='0'){ - sprintf(name,"%s [%s MHz]",model_name,clock); - }else{ - sprintf(name,"%s [%s MHz] %d processors",model_name,clock,atoi(processor)+1); - } + sprintf(name,"%s [%s MHz]",model_name,clock); return; #endif @@ -335,7 +334,7 @@ temp=g_strconcat(ret,buf,NULL); g_free(ret); ret=temp; - break; + continue; } } pclose(fp); diff -ruN hdbench-0.14.0/src/hdbench.c hdbench-0.14.0-fixup/src/hdbench.c --- hdbench-0.14.0/src/hdbench.c 1999-10-06 20:58:48.000000000 +0900 +++ hdbench-0.14.0-fixup/src/hdbench.c 2005-12-10 02:03:51.432889250 +0900 @@ -861,22 +861,23 @@ GtkWidget *system_copy_button; GtkWidget *label5; - gint32 total_mem,free_mem; - gchar name[128]; + gint64 total_mem,free_mem; gchar total_mem_str[64],free_mem_str[64]; - gchar vendor[64]; - gchar family[64]; - gchar model[64]; - gchar stepping[64]; gchar buf[255]; + CPUINFO *cpuinfo, *cpu_ptr; gchar os_name[64]; + gint num_of_cpu; + gint i; + num_of_cpu = get_num_of_cpu(); + cpuinfo=g_malloc(sizeof(CPUINFO)*num_of_cpu); get_meminfo(&total_mem,&free_mem); - get_cpuinfo(name,vendor,family,model,stepping); + for(i = 0, cpu_ptr=cpuinfo; i < num_of_cpu; i++, cpu_ptr++) + get_cpuinfo(i,cpu_ptr->name,cpu_ptr->vendor,cpu_ptr->family,cpu_ptr->model,cpu_ptr->stepping); get_osinfo(os_name); - sprintf(total_mem_str,"%d Bytes",total_mem); - sprintf(free_mem_str,"%d Bytes",free_mem); + sprintf(total_mem_str,"%ld kBytes",total_mem); + sprintf(free_mem_str,"%ld kBytes",free_mem); system_dialog = gtk_dialog_new (); gtk_object_set_data (GTK_OBJECT (system_dialog), "system_dialog", system_dialog); @@ -948,125 +949,129 @@ gtk_widget_show (label25); gtk_box_pack_start (GTK_BOX (vbox5), label25, FALSE, FALSE, 0); - hbox8 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (system_dialog), "hbox8", hbox8); - gtk_widget_show (hbox8); - gtk_box_pack_start (GTK_BOX (vbox5), hbox8, FALSE, TRUE, 0); - - label8 = gtk_label_new (_(" CPU")); - gtk_object_set_data (GTK_OBJECT (system_dialog), "label8", label8); - gtk_widget_show (label8); - gtk_box_pack_start (GTK_BOX (hbox8), label8, FALSE, FALSE, 0); - gtk_widget_set_usize (label8, 100, -2); - gtk_misc_set_alignment (GTK_MISC (label8), 0, 0.5); - - label16 = gtk_label_new (":"); - gtk_object_set_data (GTK_OBJECT (system_dialog), "label16", label16); - gtk_widget_show (label16); - gtk_box_pack_start (GTK_BOX (hbox8), label16, FALSE, FALSE, 0); - - entry_cpu = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (system_dialog), "entry_cpu", entry_cpu); - gtk_widget_show (entry_cpu); - gtk_box_pack_start (GTK_BOX (hbox8), entry_cpu, TRUE, TRUE, 5); - gtk_entry_set_editable (GTK_ENTRY (entry_cpu), FALSE); - gtk_entry_set_text (GTK_ENTRY (entry_cpu), name); - - hbox9 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (system_dialog), "hbox9", hbox9); - gtk_widget_show (hbox9); - gtk_box_pack_start (GTK_BOX (vbox5), hbox9, TRUE, TRUE, 0); - - label9 = gtk_label_new (_(" Vendor")); - gtk_object_set_data (GTK_OBJECT (system_dialog), "label9", label9); - gtk_widget_show (label9); - gtk_box_pack_start (GTK_BOX (hbox9), label9, FALSE, FALSE, 0); - gtk_widget_set_usize (label9, 100, -2); - gtk_misc_set_alignment (GTK_MISC (label9), 0, 0.5); - - label18 = gtk_label_new (":"); - gtk_object_set_data (GTK_OBJECT (system_dialog), "label18", label18); - gtk_widget_show (label18); - gtk_box_pack_start (GTK_BOX (hbox9), label18, FALSE, FALSE, 0); - - entry_vendor = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (system_dialog), "entry_vendor", entry_vendor); - gtk_widget_show (entry_vendor); - gtk_box_pack_start (GTK_BOX (hbox9), entry_vendor, TRUE, TRUE, 5); - gtk_entry_set_editable (GTK_ENTRY (entry_vendor), FALSE); - gtk_entry_set_text (GTK_ENTRY (entry_vendor), vendor); - - hbox10 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (system_dialog), "hbox10", hbox10); - gtk_widget_show (hbox10); - gtk_box_pack_start (GTK_BOX (vbox5), hbox10, TRUE, TRUE, 0); - - label10 = gtk_label_new (_(" Family")); - gtk_object_set_data (GTK_OBJECT (system_dialog), "label10", label10); - gtk_widget_show (label10); - gtk_box_pack_start (GTK_BOX (hbox10), label10, FALSE, FALSE, 0); - gtk_widget_set_usize (label10, 100, -2); - gtk_misc_set_alignment (GTK_MISC (label10), 0, 0.5); - - label19 = gtk_label_new (":"); - gtk_object_set_data (GTK_OBJECT (system_dialog), "label19", label19); - gtk_widget_show (label19); - gtk_box_pack_start (GTK_BOX (hbox10), label19, FALSE, FALSE, 0); - - entry_family = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (system_dialog), "entry_family", entry_family); - gtk_widget_show (entry_family); - gtk_box_pack_start (GTK_BOX (hbox10), entry_family, TRUE, TRUE, 5); - gtk_entry_set_editable (GTK_ENTRY (entry_family), FALSE); - gtk_entry_set_text (GTK_ENTRY (entry_family), family); - - hbox11 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (system_dialog), "hbox11", hbox11); - gtk_widget_show (hbox11); - gtk_box_pack_start (GTK_BOX (vbox5), hbox11, TRUE, TRUE, 0); - - label11 = gtk_label_new (_(" Model")); - gtk_object_set_data (GTK_OBJECT (system_dialog), "label11", label11); - gtk_widget_show (label11); - gtk_box_pack_start (GTK_BOX (hbox11), label11, FALSE, FALSE, 0); - gtk_widget_set_usize (label11, 100, -2); - gtk_misc_set_alignment (GTK_MISC (label11), 0, 0.5); - - label20 = gtk_label_new (":"); - gtk_object_set_data (GTK_OBJECT (system_dialog), "label20", label20); - gtk_widget_show (label20); - gtk_box_pack_start (GTK_BOX (hbox11), label20, FALSE, FALSE, 0); - - entry_model = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (system_dialog), "entry_model", entry_model); - gtk_widget_show (entry_model); - gtk_box_pack_start (GTK_BOX (hbox11), entry_model, TRUE, TRUE, 5); - gtk_entry_set_editable (GTK_ENTRY (entry_model), FALSE); - gtk_entry_set_text (GTK_ENTRY (entry_model), model); - - hbox12 = gtk_hbox_new (FALSE, 0); - gtk_object_set_data (GTK_OBJECT (system_dialog), "hbox12", hbox12); - gtk_widget_show (hbox12); - gtk_box_pack_start (GTK_BOX (vbox5), hbox12, TRUE, TRUE, 0); - - label12 = gtk_label_new (_(" Stepping")); - gtk_object_set_data (GTK_OBJECT (system_dialog), "label12", label12); - gtk_widget_show (label12); - gtk_box_pack_start (GTK_BOX (hbox12), label12, FALSE, FALSE, 0); - gtk_widget_set_usize (label12, 100, -2); - gtk_misc_set_alignment (GTK_MISC (label12), 0, 0.5); - - label21 = gtk_label_new (":"); - gtk_object_set_data (GTK_OBJECT (system_dialog), "label21", label21); - gtk_widget_show (label21); - gtk_box_pack_start (GTK_BOX (hbox12), label21, FALSE, FALSE, 0); - - entry_stepping = gtk_entry_new (); - gtk_object_set_data (GTK_OBJECT (system_dialog), "entry_stepping", entry_stepping); - gtk_widget_show (entry_stepping); - gtk_box_pack_start (GTK_BOX (hbox12), entry_stepping, TRUE, TRUE, 5); - gtk_entry_set_editable (GTK_ENTRY (entry_stepping), FALSE); - gtk_entry_set_text (GTK_ENTRY (entry_stepping), stepping); + for (i = 0,cpu_ptr=cpuinfo; i < num_of_cpu; i++,cpu_ptr++) { + char tmpbuf[256]; + hbox8 = gtk_hbox_new (FALSE, 0); + gtk_object_set_data (GTK_OBJECT (system_dialog), "hbox8", hbox8); + gtk_widget_show (hbox8); + gtk_box_pack_start (GTK_BOX (vbox5), hbox8, FALSE, TRUE, 0); + + snprintf(tmpbuf,sizeof(tmpbuf), " CPU %d", i); + label8 = gtk_label_new (_(tmpbuf)); + gtk_object_set_data (GTK_OBJECT (system_dialog), "label8", label8); + gtk_widget_show (label8); + gtk_box_pack_start (GTK_BOX (hbox8), label8, FALSE, FALSE, 0); + gtk_widget_set_usize (label8, 100, -2); + gtk_misc_set_alignment (GTK_MISC (label8), 0, 0.5); + + label16 = gtk_label_new (":"); + gtk_object_set_data (GTK_OBJECT (system_dialog), "label16", label16); + gtk_widget_show (label16); + gtk_box_pack_start (GTK_BOX (hbox8), label16, FALSE, FALSE, 0); + + entry_cpu = gtk_entry_new (); + gtk_object_set_data (GTK_OBJECT (system_dialog), "entry_cpu", entry_cpu); + gtk_widget_show (entry_cpu); + gtk_box_pack_start (GTK_BOX (hbox8), entry_cpu, TRUE, TRUE, 5); + gtk_entry_set_editable (GTK_ENTRY (entry_cpu), FALSE); + gtk_entry_set_text (GTK_ENTRY (entry_cpu), cpu_ptr->name); + + hbox9 = gtk_hbox_new (FALSE, 0); + gtk_object_set_data (GTK_OBJECT (system_dialog), "hbox9", hbox9); + gtk_widget_show (hbox9); + gtk_box_pack_start (GTK_BOX (vbox5), hbox9, TRUE, TRUE, 0); + + label9 = gtk_label_new (_(" Vendor")); + gtk_object_set_data (GTK_OBJECT (system_dialog), "label9", label9); + gtk_widget_show (label9); + gtk_box_pack_start (GTK_BOX (hbox9), label9, FALSE, FALSE, 0); + gtk_widget_set_usize (label9, 100, -2); + gtk_misc_set_alignment (GTK_MISC (label9), 0, 0.5); + + label18 = gtk_label_new (":"); + gtk_object_set_data (GTK_OBJECT (system_dialog), "label18", label18); + gtk_widget_show (label18); + gtk_box_pack_start (GTK_BOX (hbox9), label18, FALSE, FALSE, 0); + + entry_vendor = gtk_entry_new (); + gtk_object_set_data (GTK_OBJECT (system_dialog), "entry_vendor", entry_vendor); + gtk_widget_show (entry_vendor); + gtk_box_pack_start (GTK_BOX (hbox9), entry_vendor, TRUE, TRUE, 5); + gtk_entry_set_editable (GTK_ENTRY (entry_vendor), FALSE); + gtk_entry_set_text (GTK_ENTRY (entry_vendor), cpu_ptr->vendor); + + hbox10 = gtk_hbox_new (FALSE, 0); + gtk_object_set_data (GTK_OBJECT (system_dialog), "hbox10", hbox10); + gtk_widget_show (hbox10); + gtk_box_pack_start (GTK_BOX (vbox5), hbox10, TRUE, TRUE, 0); + + label10 = gtk_label_new (_(" Family")); + gtk_object_set_data (GTK_OBJECT (system_dialog), "label10", label10); + gtk_widget_show (label10); + gtk_box_pack_start (GTK_BOX (hbox10), label10, FALSE, FALSE, 0); + gtk_widget_set_usize (label10, 100, -2); + gtk_misc_set_alignment (GTK_MISC (label10), 0, 0.5); + + label19 = gtk_label_new (":"); + gtk_object_set_data (GTK_OBJECT (system_dialog), "label19", label19); + gtk_widget_show (label19); + gtk_box_pack_start (GTK_BOX (hbox10), label19, FALSE, FALSE, 0); + + entry_family = gtk_entry_new (); + gtk_object_set_data (GTK_OBJECT (system_dialog), "entry_family", entry_family); + gtk_widget_show (entry_family); + gtk_box_pack_start (GTK_BOX (hbox10), entry_family, TRUE, TRUE, 5); + gtk_entry_set_editable (GTK_ENTRY (entry_family), FALSE); + gtk_entry_set_text (GTK_ENTRY (entry_family), cpu_ptr->family); + + hbox11 = gtk_hbox_new (FALSE, 0); + gtk_object_set_data (GTK_OBJECT (system_dialog), "hbox11", hbox11); + gtk_widget_show (hbox11); + gtk_box_pack_start (GTK_BOX (vbox5), hbox11, TRUE, TRUE, 0); + + label11 = gtk_label_new (_(" Model")); + gtk_object_set_data (GTK_OBJECT (system_dialog), "label11", label11); + gtk_widget_show (label11); + gtk_box_pack_start (GTK_BOX (hbox11), label11, FALSE, FALSE, 0); + gtk_widget_set_usize (label11, 100, -2); + gtk_misc_set_alignment (GTK_MISC (label11), 0, 0.5); + + label20 = gtk_label_new (":"); + gtk_object_set_data (GTK_OBJECT (system_dialog), "label20", label20); + gtk_widget_show (label20); + gtk_box_pack_start (GTK_BOX (hbox11), label20, FALSE, FALSE, 0); + + entry_model = gtk_entry_new (); + gtk_object_set_data (GTK_OBJECT (system_dialog), "entry_model", entry_model); + gtk_widget_show (entry_model); + gtk_box_pack_start (GTK_BOX (hbox11), entry_model, TRUE, TRUE, 5); + gtk_entry_set_editable (GTK_ENTRY (entry_model), FALSE); + gtk_entry_set_text (GTK_ENTRY (entry_model), cpu_ptr->model); + + hbox12 = gtk_hbox_new (FALSE, 0); + gtk_object_set_data (GTK_OBJECT (system_dialog), "hbox12", hbox12); + gtk_widget_show (hbox12); + gtk_box_pack_start (GTK_BOX (vbox5), hbox12, TRUE, TRUE, 0); + + label12 = gtk_label_new (_(" Stepping")); + gtk_object_set_data (GTK_OBJECT (system_dialog), "label12", label12); + gtk_widget_show (label12); + gtk_box_pack_start (GTK_BOX (hbox12), label12, FALSE, FALSE, 0); + gtk_widget_set_usize (label12, 100, -2); + gtk_misc_set_alignment (GTK_MISC (label12), 0, 0.5); + + label21 = gtk_label_new (":"); + gtk_object_set_data (GTK_OBJECT (system_dialog), "label21", label21); + gtk_widget_show (label21); + gtk_box_pack_start (GTK_BOX (hbox12), label21, FALSE, FALSE, 0); + + entry_stepping = gtk_entry_new (); + gtk_object_set_data (GTK_OBJECT (system_dialog), "entry_stepping", entry_stepping); + gtk_widget_show (entry_stepping); + gtk_box_pack_start (GTK_BOX (hbox12), entry_stepping, TRUE, TRUE, 5); + gtk_entry_set_editable (GTK_ENTRY (entry_stepping), FALSE); + gtk_entry_set_text (GTK_ENTRY (entry_stepping), cpu_ptr->stepping); + } label26 = gtk_label_new (""); gtk_object_set_data (GTK_OBJECT (system_dialog), "label26", label26); @@ -1176,6 +1181,8 @@ gtk_window_set_modal(GTK_WINDOW(system_dialog), TRUE); + g_free(cpuinfo); + return system_dialog; } diff -ruN hdbench-0.14.0/src/proto.h hdbench-0.14.0-fixup/src/proto.h --- hdbench-0.14.0/src/proto.h 1999-10-06 20:50:43.000000000 +0900 +++ hdbench-0.14.0-fixup/src/proto.h 2005-12-09 22:26:03.905139750 +0900 @@ -25,6 +25,7 @@ #include <X11/Xlib.h> #include <stdio.h> +#include <stdlib.h> #include <gtk/gtk.h> @@ -70,8 +71,8 @@ /* getinfo.c */ -gint get_meminfo(gint32 *totalmem,gint32 *freemem); -void get_cpuinfo(char *name,char *vendor,char *family,char *model,char *stepping); +gint get_meminfo(gint64 *totalmem,gint64 *freemem); +void get_cpuinfo(gint ncpu,char *name,char *vendor,char *family,char *model,char *stepping); void get_osinfo(char *name); guint32 lpow(gint x,gint y); char *get_display_name(void); @@ -193,5 +194,7 @@ const gchar *filename); +gint get_num_of_cpu(void); + #endif /* PROTO_H_INCLUDED */ diff -ruN hdbench-0.14.0/src/sighandler.c hdbench-0.14.0-fixup/src/sighandler.c --- hdbench-0.14.0/src/sighandler.c 1999-10-06 20:54:04.000000000 +0900 +++ hdbench-0.14.0-fixup/src/sighandler.c 2005-12-10 12:12:29.937164750 +0900 @@ -55,56 +55,86 @@ gchar *format_result(void) { - gchar name[128]; - gchar vendor[64]; - gchar family[64]; - gchar model[64]; - gchar stepping[64]; gchar os_name[64]; - gint32 freemem,totalmem; + gint64 freemem,totalmem; struct tm *nowtime; time_t t; gchar *machine_info1,*machine_info2,*bench_result; gchar *display_name; gchar *drive_data; gchar *formated; + CPUINFO *cpuinfo, *cpu_ptr; + gint num_of_cpu; + gint i; + num_of_cpu = get_num_of_cpu(); + cpuinfo=g_malloc(sizeof(CPUINFO)*num_of_cpu); if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(opt_resultonly))){ - formated=g_strdup_printf("%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d %s:%dMB\n" + formated=g_strdup_printf("%6d %6d %6d %6d %6d %6d %6d %6d %6d %6d %6d %s:%dMB\n" ,result_all,result_float,result_integer,result_memory, result_rectangle,result_circle,result_text,result_scroll,result_image, result_read,result_write, disk_drive,disk_capacity); }else{ - get_cpuinfo(name,vendor,family,model,stepping); + for(i = 0, cpu_ptr=cpuinfo; i < num_of_cpu; i++, cpu_ptr++) + get_cpuinfo(i,cpu_ptr->name,cpu_ptr->vendor,cpu_ptr->family,cpu_ptr->model,cpu_ptr->stepping); get_osinfo(os_name); get_meminfo(&totalmem,&freemem); t=time(NULL); nowtime=localtime(&t); + if(num_of_cpu == 1) { machine_info1=g_strdup_printf("\ * * * HDBENCH clone Ver %s * * *\n\ Machine Infomation\n\ Processor %s\n\ Vendor %s Family %s Model %s Stepping %s\n\ Resolution %dx%d %ucolors(%dbit)\n", -VERSION,name,vendor,family,model,stepping, +VERSION,cpuinfo->name,cpuinfo->vendor,cpuinfo->family,cpuinfo->model,cpuinfo->stepping, DisplayWidth(GDK_DISPLAY(),DefaultScreen(GDK_DISPLAY())), DisplayHeight(GDK_DISPLAY(),DefaultScreen(GDK_DISPLAY())), lpow(2,DefaultDepth(GDK_DISPLAY(),DefaultScreen(GDK_DISPLAY()))), DefaultDepth(GDK_DISPLAY(),DefaultScreen(GDK_DISPLAY()))); + }else{ + gchar *tmpstr1,*tmpstr2; + + machine_info1=g_strdup_printf("\ +* * * HDBENCH clone Ver %s * * *\n\ +Machine Infomation\n", VERSION); + for (i=0, cpu_ptr=cpuinfo; i < num_of_cpu; i++, cpu_ptr++) { + tmpstr1=g_strdup_printf( +"Processor %d %s\n\ + Vendor %s Family %s Model %s Stepping %s\n", + i, cpu_ptr->name,cpu_ptr->vendor,cpu_ptr->family,cpu_ptr->model,cpu_ptr->stepping); + tmpstr2=g_strconcat(machine_info1,tmpstr1,NULL); + g_free(machine_info1); + g_free(tmpstr1); + machine_info1=tmpstr2; + } + tmpstr1=g_strdup_printf( +"Resolution %dx%d %ucolors(%dbit)\n", +DisplayWidth(GDK_DISPLAY(),DefaultScreen(GDK_DISPLAY())), +DisplayHeight(GDK_DISPLAY(),DefaultScreen(GDK_DISPLAY())), +lpow(2,DefaultDepth(GDK_DISPLAY(),DefaultScreen(GDK_DISPLAY()))), +DefaultDepth(GDK_DISPLAY(),DefaultScreen(GDK_DISPLAY()))); + tmpstr2=g_strconcat(machine_info1,tmpstr1,NULL); + g_free(machine_info1); + g_free(tmpstr1); + machine_info1=tmpstr2; + } + machine_info2=g_strdup_printf("\ -Memory %dKBytes\n\ +Memory %ldKBytes\n\ OS %s\n\ Date %d/%02d/%02d %02d:%02d\n\n", -totalmem/1024,os_name, +totalmem,os_name, nowtime->tm_year+1900,nowtime->tm_mon+1,nowtime->tm_mday,nowtime->tm_hour,nowtime->tm_min); bench_result=g_strdup_printf("\ TOTAL FLOAT INTGR MEMRY RECT CIRCL TEXT SCRL IMAGE READ WRITE DRIVE\n\ -%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d%6d %s:%dMB\n", +%6d %6d %6d %6d %6d %6d %6d %6d %6d %6d %6d %s:%dMB\n", result_all,result_float,result_integer,result_memory, result_rectangle,result_circle,result_text,result_scroll,result_image, result_read,result_write, @@ -126,6 +156,7 @@ g_free(machine_info2); g_free(bench_result); } + g_free(cpuinfo); return(formated); } @@ -274,29 +305,56 @@ on_system_copy_button_clicked (GtkButton *button, gpointer user_data) { - gchar name[128]; - gchar vendor[64]; - gchar family[64]; - gchar model[64]; - gchar stepping[64]; gchar os_name[64]; - - get_cpuinfo(name,vendor,family,model,stepping); + CPUINFO *cpuinfo, *cpu_ptr; + gint num_of_cpu; + gint i; + char *buftmp1,*buftmp2; + gint64 total_mem,free_mem; + gchar total_mem_str[64],free_mem_str[64]; + + num_of_cpu = get_num_of_cpu(); + cpuinfo=g_malloc(sizeof(CPUINFO)*num_of_cpu); + for(i = 0, cpu_ptr=cpuinfo; i < num_of_cpu; i++, cpu_ptr++) + get_cpuinfo(i,cpu_ptr->name,cpu_ptr->vendor,cpu_ptr->family,cpu_ptr->model,cpu_ptr->stepping); get_osinfo(os_name); + get_meminfo(&total_mem,&free_mem); + sprintf(total_mem_str,"%ld kBytes",total_mem); + sprintf(free_mem_str,"%ld kBytes",free_mem); if(selection_buffer!=NULL){ g_free(selection_buffer); selection_buffer=NULL; } selection_buffer=g_strdup_printf("** HDBENCH clone Ver %s **\n\ -OS %s\n\ +OS %s\n",VERSION,os_name); + for (i = 0, cpu_ptr=cpuinfo; i < num_of_cpu; i++, cpu_ptr++) { + buftmp1=g_strdup_printf("\ +\n\ CPU %s\n\ Vendor %s\n\ Family %s\n\ Model %s\n\ -Stepping %s\n",VERSION,os_name,name,vendor,family,model,stepping); +Stepping %s\n", +cpu_ptr->name,cpu_ptr->vendor,cpu_ptr->family,cpu_ptr->model,cpu_ptr->stepping); + buftmp2=g_strconcat(selection_buffer,buftmp1,NULL); + g_free(selection_buffer); + g_free(buftmp1); + selection_buffer=buftmp2; + } + buftmp1=g_strdup_printf("\ +\n\ +Memory\n\ +Total %s kBytes\n\ +Free %s kBytes\n", +total_mem_str,free_mem_str); + buftmp2=g_strconcat(selection_buffer,buftmp1,NULL); + g_free(selection_buffer); + g_free(buftmp1); + selection_buffer=buftmp2; gtk_selection_owner_set (main_window,GDK_SELECTION_PRIMARY,GDK_CURRENT_TIME); + g_free(cpuinfo); } diff -ruN hdbench-0.14.0/src/support.c hdbench-0.14.0-fixup/src/support.c --- hdbench-0.14.0/src/support.c 1999-10-06 20:52:55.000000000 +0900 +++ hdbench-0.14.0-fixup/src/support.c 2005-12-10 12:24:58.627955000 +0900 @@ -175,3 +175,15 @@ return NULL; } +gint get_num_of_cpu() +{ + FILE *fp; + static char buf[8]; + + fp = popen("cat /proc/cpuinfo|grep ^processor|wc -l", "r"); + if (fp == NULL) + g_error ("Couldn't get number of cpu."); + fread(buf, 1, sizeof(buf), fp); + pclose(fp); + return atoi(buf); +} diff -ruN hdbench-0.14.0/src/variable.h hdbench-0.14.0-fixup/src/variable.h --- hdbench-0.14.0/src/variable.h 1999-10-06 03:36:37.000000000 +0900 +++ hdbench-0.14.0-fixup/src/variable.h 2005-12-10 02:19:10.962356250 +0900 @@ -55,6 +55,14 @@ gint32 write; }; +typedef struct { + gchar name[128]; + gchar vendor[64]; + gchar family[64]; + gchar model[64]; + gchar stepping[64]; +}CPUINFO; + GLOBAL gint done_flag; GLOBAL gint disk_capacity GLOBAL_VAL(10); GLOBAL gchar *font_name GLOBAL_VAL("-adobe-helvetica-medium-r-*--14-*");
K.Suzukiです。 On Sat, 10 Dec 2005 16:57:47 +0900 "K.Suzuki" <knfeat@mbn.nifty.com> wrote:
K.Suzukiです。
On Thu, 08 Dec 2005 08:29:40 +0900 hirohiro <hirohiro@eurus.dti.ne.jp> wrote:
HDBENCH Clone を入れてベンチマークしようと思ったら ./configure時に gtk-configが無いというエラーが出て出来ません。 ちょっと調べて出来たら結果報告させて頂きます。
自分も HDBENCH Clone を x86-64 のマシンでテストして見ようと思って コンパイルしようとしたのですが、エラーが出て失敗しました。 で、ソースを色々修正してみてうまくいったみたいなのでそのパッチを以下に 貼っておきます。 パッチは 2.6.x & x86-64 専用になっております。:-) 起動と実行は、SUSE Linux 10.0 上で一通り試して動作確認をしました。 ですが、現在まで gtk をあまり使ったこと無いので変な箇所があるかもしれません。
以下に作成方法を書いておきます。 まず、HDBENCH Clone 本体である"hdbench-0.14.0.tar.gz"をダウンロードしてください。 その次に、このメールからパッチをコピペしてファイルに落とします。 ここでは、パッチファイル名を"hdbench-0.14.0-64.patch"とします。
以下のようにパッチを当てます。
$ ls hdbench-0.14.0-64.patch hdbench-0.14.0-64.patch $ tar xzf hdbench-0.14.0.tar.gz $ cd hdbench-0.14.0 $ patch -p1 < ../hdbench-0.14.0-64.patch
次に、UTF-8の日本語環境で起動するため以下を実行します。
$ cd po $ nkf -w ja.po | sed "s/euc-jp/UTF-8/" > ja2.po $ mv ja2.po ja.po $ msgfmt -o ja.gmo ja.po $ cd ..
で、configure, make, make install をします。 (インストール先を変える場合は、PREFIXを適宜指定してください)
$ ./configure --with-x $ make $ su # make install
以上です。
すいません。添付したパッチが壊れてました。 以下に添付したデータをファイルに落として、 下記のようにデコードしてください。 (ここでは、hdbench-0.14.0-64.patch.bz2.uuen とします) $ uudecode hdbench-0.14.0-64.patch.bz2.uuen $ bzip2 -d hdbench-0.14.0-64.patch.bz2 ----------------- ここから --------------------------- begin 644 hdbench-0.14.0-64.patch.bz2 M0EIH.3%!629368?S43``''M?G_]P?____W__W^_____^)@`(I$$H`@%`2`@` M8!I?<`2J?1]/3V^X\\]SONXO?.CW<[??:[WV][[[GEVY%#J8^J#J^UYYP#H> MA0`"OA`"^P`!0```]#824$T304_4:39I,GJ)ZGE&FCU/1-'J,C30!FH#0#0& M@``,@E!`FAI&04VB"-,T(`R:```````````2F1(((-3,E-E#TU,@#(VIZF0] M31IH,@#30::,C0`T#0"4_54U29!J>H]0#0-```-`#0`&0```````2))JIL)! MH8":8GHF@]&A&FGJ>@@TT#30&@T,3$`::!@B2$(`F@:!`!,IA-*>R:IHPGE, MGJ/U-!H:33(>U39`C0#-9TAKHD21`&21#O`@%*\^VP20B@^3WIYMT%I20D)) MIB&KA$B)33#WX[CZXJ2A>EU^TOC@38U%C%%S<,%D<M2*5*9+;&VI8VR5#$XE MB'+ERPD2%$2A1(Q2Y(B0"9DB)`)D&V-I)#0B5,PQ$S*?..$7=4)_>Q744I4G M;[?=O*C8N,*<#7>=C4^RE=5\=#+M4=S++X;QVL8L8<]#LS1FY\UV4SR-K6XT M.L$T.X]!DQELFRT.)XD.G"EUH[%_%@U$1<TT/7G%4@N52[/,6SU&0L%&,*\P M9';B:LV7J!Z@ED,U,I$H2S8MHLA2PW5&&7L+2@YQ8U142$2QI*A40=-\-2:R MX`E,B$A:M\*B90237`88I?J.._3W`.'!9-"R3@3"F4HR&2IW:9.?M;&_MNC? M1%Q7(5H5*:CG?14U=24M$&H6@`E-12JX<&:.!"F-FPKFA]J3CVK(G,R49ZF6 MQ(4<A!"OX%.<$*B0B*,15KA2*OQ+((_)[_>?G_C/3C697^71NZS!JLMV,D@I M?0@9=IAD6C3]7HL5+85PA@83=,4DVFTTTY,A$0F*B,!*B`2$(J2$B6HH"0JS M\6[4O1(4R2'W>(*=.@'7ZX/0G0Q$TZK6/Z.VL&0H3`?<"&:=I@R#Z7-DH_K4 MRB)R0RX)))))6==99:LNFI*2D"$"'H_Y#1!A!A!A!AF_44:%%%%%%$4HA111 M1IWB)DIXAU[BCE[OS6-O-_0M$4+%B8QU9@C=8#6.'C0UP.*@V<>L-AM:SL<, M,D+M]-F6?9_J0Y"17K\@+OZI)\D*EITYJ#_`D$XAP+%E/;=N.[\N!,?8!Z0B M:OE?DGPRMX7O>JS:=.K6JJJM<;M:JJJEC+%%;65;FX@Y)DOOI2[3X1-8Z*70 M+UG7+RSW!.)"TFWR`U9D\@7HZ"G`W)5<*5.AUX?<7M@*LR8Q8!"#E4ZLDX5Z M"J=BC,S-7H?+S[F_NQ_,]?LZN0!H_5<U3WE\!($@2!(%34%^&`ONW67$.[51 ME!&YXA04FUEK';',B+A2"15BHYS,)`D"0)`^KKG*!X[8;</Q@`'C6;RSB\%+ ME<_7(M;M%%%%%%&045O]!K>W.BR*9:B.N1-4W&P\=NT%\&"(UG@$Z5.G&5;2 M9V-W2&.]5Q)TP;.+@9D4*$C#J:LY4D&80H"3;S<$CG.U7D5W;=TQ&?3@!29A M*8XIDAI&B99@.29L1$8/G,C(P8+W+FGZMQZW]H@;#BK[R+S03G"3[R0"\1YD M?WB<[7LH:2*%O99/QEBG]_[=`W[<M^F&TVE&129&$9A&6Z#G*`;22;%LIA0M M34D+QLU6J3E1!22IAT+FW8P-80?R%NH*35J/<(>,>)UHSZ,%10+_7`+9**S$ MV_O%\G;@2`?*G*2R`NSY.=60^25I^YKQROUY'01T%9V[[6<B\<;2'"!;(!-; M"S*/C2":'`E6R<F'UT\+99U31^)MH(GZ<;^[!8CA(CRWOU`KZ/6[-BO+:XRA M'9PO5,!P%AH7T5F"Y3'=A9V%LA!!RO.YF?EU556G/OX9:JJI3-36)@8&!B8Y M.H(2)$B9,@0($8D2^^^_QS6(;-OSZ]]N%9UYD]WF8\[[:S+2W0WYV-V&D.C7 MBJM;H[-.([9F^%9&,MTGVDKI8(3P[MUWH2%YWXU6W=UN7V>.V:M,L[WV)VI= M.Q,T\'I2#(89996C:MK0A#*,8Q=^G0I9-;F,-6V->`31>&^''DA732L$W(*5 MBVN5SX;'U;-F*W4E.$,$,T((:(30VIN049##++*T;5M:$(91C&+OJ([^:M<M MIOUG(,=#%N23G61)A9S3-JT0RD,G8AY4"]8TNJQ%EJ;$6\38"2*0''``!G`0 M(!(#=(YA("'E<<`&KY*`S@!?NT1^6"Y?5IS]U3KAZBC%ZQ*F(2A$J?!](GN0 M2PE"?">7L]GLO>][YB3$%00ZG2A2DV:CPBL8P9HO!2E`0E*4G=WY=7+L;E55 M5L:H,T<E&:"AB$(0A"$&+&(0I)),22222228Q(%1C67B064GTYM509@9X<G8 MK5(F1C67"X,4\DRJ.V9ZC[/6W2RUR]I8F.,R7LO%#J+ZFJJQ*O2Y6G=SF@#5 MQ5J05XC9G):VGE<'#-`L##(+ELN(V,Z"((SE!$$5HQ[$8FPBAPS34CX#`Q<4 M*'/B$$)I"KUI?"?(W4T-@<C0A8Z3NPFPW)L,D^054_=^D"5OVW`D!DYX`7`& M'G-+G@<HO`&4V)*H+IL38FHBV081L`U7@#$9=76P$$YNL`+:9<_ECKY;`!?@ MF07S?A7%S=[:VM7+%-52JJFE55HC;L))(NT1ST%<-)9A0/'%E:FY/8Z"%58* M2Y[N:\"Q@!DDDDDDFU:5ME9UB5QNJ92@P[_Y+`;)!)>4)"J$JI0D*R$L)8 ME)0P\2M\P6_:K@/9`.6`%$$R`4!R@!8%$'!5`58#*![!@C`!QZ(3FD9DQ`R7 M@49;G[L`GA!"ZQYIUL*A(5$4DP':=)5WO%45L'=47%AE54G&<^R<AMTP(DSX MC&XV79X^)J1.],Q1`B/5;$(4")`T\@@\'Q3#G3&O?1@8C8P6$DR7M</$W=RX MDEQUM823);E6\LCB!Y&"QI;*20YH`+%6<<6\50-]241:2D0@%037CGE7O`OC MK/#N.9W$,=X8VA0Q&\-B0(D`\K=Y8#7TSCK$W@>/6EA)?QJK]$[,R)6A;/53 M4M=B32E;KEG`O4*+(G>.JWJ99Z(HHIIJF%:7[=;&<M^=+'<""R?(CIS*UA!\ M=#%7OA--B#HHF1C):3D@!/C8NFN&)Q4EA6:O(B!$![NWHOD=ZE;$ZTB1*U=! MO)7&]7JBP$O:0TR:&1)3/1585A8OK8L77O'1=1>3!9W@39,(,.H*IC%7A$NO M>66FQ`VW\0"1MAJK(YX(A'4(6F9%--%WL]6DR9TF\*S>NX8@.,.*.;E'$5V% M85A61556);+F7)Y9UA6_%5NRCFX25:X%YB59444#(;8VDQN$DF9]<"KKP!Z+ M/*G7'';#*H$D"M6;*?7V\>WI"'6[(8UNOF^;V=U=0E96UM"F7%KWT30N<+QO M)F37V>"1(BD>99]!9D7(GL;DQP[F3B?1SHSW@*[GR8:'QH*3MLR!TMED:,C# M16+'X[;K*$@`DA$SHZ8)I.&)];>V>!D"M=5G14206#B#4@@D@'S#F/`XGP`Q M`T(/X#^BA4K=.^8;FPS+YYH;MKO*AZ#B3NY!1<SG,F60Q@$><`7'`5H!5UVM M+Q9ZVSX(`*+^;+Q`+63\[!$_X")8/4[H2?=)C_B)IA/O1`M!5ZG$XH)#C,4M MC66K,`V1!5JV[NSHQ`'F"K29=;W<-D3KBE)%8D$@D1($C(IK/N$29=N,N;P! M,M1WI)IV;P")!(D!?]K.2$3CRP`3JY].2;/N,P1;'Z&/#]HY/2>9QTZ\_Y.: MX<TQKRU"=H!J,SM$3W&B"80(`A(Z<LXG:O^DA&$/^P!TOFZ^A3II-$`"JE29 MUK`VH,Q"_B?IL,AUP.`F4DH"*@F/#P@?0VSY+UCN$3CV&P=_#5?';S03=?9E M)W@%XVX07H\SDRE&2X\)6CM(&YD+`(5Y&!#CMAN4!#=NP@`FRC(1``<ZZ!'9 MLM6U72$5BK+ED/3MSNH+*Z,9Q4+9`G5-O6[>CH5"RX4K9WTB6E-DDS]VZU$T MD[JF@<,@@1VK=S'&A%H`91*L.WIAGX9B:..$:_6JE45%0YMTN8(@2(0DCI[Q MU1=5<;%899>&CX$4@:E9]53YM_U1PD=5=90_;;3EI$AQI%[F",9YR!'&K0A` M[6#($*O00\J(L$=1"K($7HB\,&104=TLK#5L-C0P8QL&@P"/JTR532\@D%?8 M9BX?W#!+JZ\A,\&0.11+HF3C![2,&)(1(9+E"&K&8E]0MJKSCHRJIBFJPGVB M6$PF8B9HE!LP@GO4WHI=-K'/;_&)81-@G\L$I0<()0NP'<`;>'#+,&03,6E! MQ+&?AX642ME=`*A!/RI9/]9F#R43\&]^O4&&QJ]\%R!NTKK`'7O43]EYD(@' M8%S(^PHLJNS]::PR03_=D,"VX%/Q4&(]/5M!2BCR!/BF)<8)((`@>@OX.=B` MJP)$)$@GHB=(`]*D$3M03T'1(DV?;X'#E&25705-!+?UEBCED9W_)>:K6T=> MR,A)&,4GT?B$J#[>VDZFX$@$(`>P2_$^KB98-A]GJ2ZP`??QCF1*E$.JI042 M$"T1.J#@.:@*%JCEP*@(+:)LD2J%0YV\FA,X%$/;M!UIE!&&KO"R%%X&R$21 M)'IJDA$[FDK`G)NV3O'#YMQL^@#M.)X@I=@/9>LI&$"+V>BNII_=_""<2]!` M[DP%$E@2QIKK1A.ZQJSEKI-+I?7U`IZN8(8.*:&K-%.CLQ002%@5+P!,ST@) MS-ZQTFB$PEKSH4B`DAIIL-@NN,'@3Q9M]FX3[!*#JVI>O;,QSYM+>%T+ST$J M"WCD$$_12=H6,1"V-2N@M]Z?/P1?UB)9T4LI]'AL@1Y7>SL$V6`U"#TOQ!T3 MZRR(=*H!`(B=:GVN[6H9P!B`P'D#!/I(DV7'@X`G1K`7_F?:]I"(!K$^/5]X M^"5(VEBR5(VEBR5(]@K>KETJ1M+%DJ1\DX'!!.P/*MKO]@7A#B$H.SRY^CH, M)K4Y;O!X_["CZ5UX%=NXD*90D$@B2"19`5@)V4!8=XB;`<//P]1P`G@>Z9EH MA"P30LU&!+0*]8!9$Z0/U0Z8'66&'M2X:P?G\K36;E8!L5QI]0!L-(.]5;_/ M<R(0MKE&)8O-L<,N9JW/OR0+L,%HT9$,C6#_`_>=8=$&0@B0D4)`JJ#`9I#V M0HFYQ`"R]PP*+@PZCL*`JH!0UH<!S)0C45BRE020PH/WVIK.G=TCASA.D^D+ M-LR3@PJPM6K;6.&ZGO\XUEROIX/2Z'C@`````&6```%5```````!!G(VV``` M````(,XN5X#Z00H(#L"*KC'P,UJ1M+%EJ1M+%EJ1M+%EJ1M+%EJ1[!,!0`:P MI.7HH6"P,4@M:CLM(QA"9C5:)UE_TD6S`HI]29`#[CB3-/61_*?B4&&7=(&R M,GS%@-P><UB>;Z3X@)U'`3[K>O:;4G`^`N$W>\*"#3%-2:P:0XSI03M!:@-T MZNL4S#J@)S*V"1^<(?,03(.[(MG<[`#@KF(G(,W`9'43H&%X@F9)!!:$2(C, MCV7R[NGY1SUVZ[WL6A&Q<M:,9`C4JV"$)W[FQY0U7*5($`$*%B#Z?3Q])U-" M6FK6;"6FK6;"6FK6QFFK6QDJ26E%%.BFE$J26E"0U4>.H=J+1*2(6EBS4D(= MR)UAP'H]J'CQ4\2Y25O4]W>GYLN0FF"CS$$-J:GJ?CHF`!CD1X_&;G8*&4PF M1?8AXQ5\Q80,HHM!2)0-=1SAYC9*M69;L?$/)-KLOOS(@$20@$\=S<9"!#E& M(41E555$?>0#?`XB30!)DA%#YH8@;^)<8?>3`1F,A.@'W1ZOPW.L&!`M`>CI M'JQ*G](>^`^6"\`DRR"V$2@"VUQ.'&CA#H;E-QHJST%8"!HF8"Z+E@KM;G2$ M`2P9#`=^@B8+(K^8@B49Y>(ECL/CN#;O[/?JV/`3;2A"*%H"P+`@T&;QX)J; M"=IYU0[0SI$\$YZ")0\V18D^'X6$(*&O<F2)D`.M^`'NU'D=)N=[G';52`PF MW)-;O<6S@8K7ZXJ\L&S20VYM#5):RC"!X_MA=)?::@WH6UG.1W.3T!WGY.A% MX!P_;Z'V[T"()P<&K7%^08@#1J8:$+$HJAA*BI2G>`$$4D)(:GG-$$L'F/V` M\Z;E$O0NL?3V9JN0=CUG!!-P:@#:IK'?QI]SW;I/UV3B#JV!_-L5#UP>CF(K M%6&1RY^F]BT(^%!20@1(7U\YFQ@TJPB!4%E'S$<1.R)<C54T.**&VD+(VAV6 M/C<5H(#+T%,&2HP)6)\RO8@%_81;`90*4@]W0>1#+\=T$Y`=)Y=^8>JH)`@U M=\3Z,6DDZDYBGM#U%@Y(=HX?XB#O.TH,=H1B=8Z()8.8':4A`09]+@\@(C4, MW5&&54EAJ#(PAD)7,3M.L]F'L'JZY,=,U103V-E:02`%MI(0]0:@N)J=.[<^ MCOU'F791,#F[V!M`#`'LWH)C;]9T(#<.P@?.U.-BJV2I>Y:U%P@'>#`^,361 M2YM4=R:KW]FY1*/'EH\7D@GQ$H2SBBHX[?W["7A+5L\]$^_[S4GCC3]BW>7Q MB&XWA=0MEPF750-*0(JL&+"8B%!CLHW")=%:()"X*:Q.`K@Z$4O<(&B59`>1 MT=GA7Y`P0B`9^"EP:%-X>TV<.&SW+RNF@<7T$T8#[S\[$!&L_0GK!ZFT//Z3 M]/?Q+VMWAU[SW)U:GS&UVOUT6N4;0O\/<8.T[_%@K`8I$'N!!MW)!\Y\'7 MFHGI`@`]7P+')-8?*HF2KY9_/O#M!BINT%/%^&;[@#UJ9A;P'Z]RKY")CO9` M<<*E"1-382`76%#`H'"N(:/"I&A4'@7UMWR$2"I^SL1&C&+%67V\7OA7:6J% M6D+$E-5&B-)5%-K-K1C*+4%3&!4#UIK!Z`#S/!.=4':1+:4-R$BNRH%!6"") M8@B[L@[A!YCN@>)]?Y'<K_$&\26E;$@FDPT:VB)!"A`A7-,?YG\=_^C_#O]Z A?>_?\WZ/[O?[?F5(>-JC(AB8;XUHS_B[DBG"A(0_FHF` ` end ----------------- ここまで ---------------------------
K.Suzukiです。 nbench というベンチマークもあります。 Linux/Unix nbench http://www.tux.org/~mayer/linux/bmark.html 以下のページに nbench の結果が載っています。 http://www.tux.org/~mayer/linux/results2.html それから計算速度の目安として openssl コマンドも ベンチマークとして使えると思います。 使用方法: $ openssl speed [values] [options] 例) $ openssl speed md5 -multi 2 指定できるオプションは、以下のコマンドで確認できます。 $ openssl speed ?
participants (2)
-
hirohiro
-
K.Suzuki