2016-02-24から1日間の記事一覧
概要 atomic_t型の変数の値をatomicに読み込む 詳細 引数として受け取ったatomic_t型のポインタのcounterの値をREAD_ONCE()マクロで読み込む
概要 ring_buffer構造体のオブジェクトを無効にする 詳細 ring_buffer構造体のポインタを引数として受け取り、ring_buffer構造体のrecord_disabledメンバにRB_BUFFER_OFFフラグをセットする record_disabledメンバはatomic_t型の変数として宣言されているた…
概要 warning error時にtraceを無効にする 詳細 __disable_trace_on_warningがtrueのときにtracing_off()を実行しtraceを無効にする
概要 traceを無効にする 詳細 CONFIG_TRACINGが有効な場合にtracer_tracing_off()をglobal_traceのポインタを引数として実行する 無効な場合は何もしない
概要 traceを無効にする 詳細 trace_array構造体のポインタを引数として受け取り、trace_array構造体内のtrace_buffer構造体のメンバであるbufferに有効なポインタが設定されていた場合はring_buffer_record_off()を実行する。 その後、trace_array構造体のb…
概要 変更したメモリの内容が全てのCPUで同期されることを保証する 詳細 CONFIG_SMPが有効な場合は__smp_wmb()マクロを実行するがx86では__smp_wmb()もbarrier()と定義されているため、コンフィギュレーションに関係なくbarrier()のwrapperとなっている
概要 メモリの内容が確実に同期されることを保証する 詳細 gccでコンパイルする場合はlinux/compiler-gcc.hに定義されている __asm__ __volatile__("": : :"memory") が実行されると思いがちだが、IntelのCPUの場合はlinux/compiler-intel.hに定義されている…