パスワードを忘れた? アカウント作成
400705 journal

bananan_wの日記: あれあれあれ? 1

日記 by bananan_w

GUTMANN 方式の実装で楽をするために、write() で使うバッファの大きさを 4096 と 3 の公倍数にしたいのですよ。これのバッファは 4096 でアライメントされていないといけない(2.4カーネルのO_DIRECTにより)ので posix_memalign() で alloc するのです。んで、そのようにヘッダーをチョコチョコと書き換えて動かしてみたところ、posix_memalign がうまくメモリを確保できなくなってしまった。ぁぅーーーー。なんでぇ。

$ man 3 posix_memalign

関数 posix_memalign() は size バイトのメモリを割り当て、割り当てられたメモリのアドレスを *memptr に設定する。割り当てられたメモリのアドレスは alignment の倍数になっているはずである。 alignment は 2 のべき乗で、かつ sizeof(void *) の倍数でなければならない。

そうしてるじゃーん。ぁぅぁぅ。もしかしてアロケートするサイズ依存でなにかある???そんな気がしてきた...ぬぅ。alloc できる大きさでヤッてしまって、実際にバッファは 4096 と 3 の公倍数までしか使用しないって方式で逃げるかー。ちと(かなり)アレだけど、しょうがない。Linux-2.4 の O_DIRECT がいけないのさー(逃

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家

読み込み中...