[Armadillo:01992] Re: USBデバイスアクセス中の抜き差し対応に関して
Hiroaki Kinpara
email@hidden
2007年 9月 4日 (火) 15:55:37 JST
金原です。
いつもお世話になっております。
お手数をおかけして申し訳ありません。
ボードおよびカーネルのバージョンは以下になります。
・ボード … Armadillo220
・カーネル … Linux 2.6.12.3-a9-8
・コンフィギュレーション … Armadillo-220.Recover
また、確認を行った際のサンプルコードは以下になります。
int main(int argc, char** argv)
{
int fd;
int i;
char dev_namelist[10][11]=
{
"/dev/sda",
"/dev/sdb",
"/dev/sdc",
"/dev/sdd",
"/dev/sde",
"/dev/sdf",
"/dev/sdg",
"/dev/sdh",
"/dev/sdi",
"/dev/sdj"
};
while(1){
for(i = 0;i < 10; i++){
fd = open(dev_namelist[i], O_ACCMODE | O_NONBLOCK);
if( 0 < fd ){
printf("Open %s\n", dev_namelist[i]);
close(fd);
printf("Close %s\n", dev_namelist[i]);
}
}
usleep(100000);
}
return 0;
}
このサンプルコードにて確認を行いました。
また、症状発生後にpsコマンドにて確認を行ったところ、scsi_eh_2とscsi_eh_3の
二つが残っているという状況になっております。
以上、よろしくお願いいたします。
| Hiroaki Kinpara さんは書きました:
| > 現在、USBマスストレージデバイスを使用したアプリを作成しておりますが
| > USBデバイスへのアクセス中に、デバイスが抜かれた際の対応ができず困って
| > おります。
| >
| > 原因追求のため、調査を行ったところ、デバイスのopen(/dev/sdaなど)中に
| > 引き抜かれた際にプログラムがフリーズしているようです。
| > また、フリーズ後にプロセス状態を確認したところ[scsi_eh_*]が殺されずに
| > 残っていたため、このカーネルスレッドから応答が返らないまま停止していると
| > 思われます。
|
| どのボードとカーネルの組み合わせですか?
| 再現できずに困っています。サンプルコードはありますか?
| --
| yashi
| _______________________________________________
| armadillo mailing list
| email@hidden
| http://lists.atmark-techno.com/mailman/listinfo/armadillo
|
armadillo メーリングリストの案内