並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 7 件 / 7件

新着順 人気順

spinlockの検索結果1 - 7 件 / 7件

  • 路地裏 ソース解読研究所: ダンプ内のSPINLOCK

    あるカーネルダンプのスタックが次のようになっているとします。 ----- #2 [f7fedde0] call_usermodehelper at c0130dc4     [RA: c01c0a37  SP: f7fedde4  FP: f7fede7c  SIZE: 156]     f7fedde4: f66a3d80  c011e39b  00000001  f7b8bc6c     f7feddf4: f7ed4010  c0130cb6  f7fede2c  f7ed4000     f7fede04: 00000000  00000000  00000000  00000001     f7fede14: dead4ead  4b87ad6e  00000000  00000000     f7fede24: 00000000  f7fff080  f7fede4c  c03

    • Comparing the performance of atomic, spinlock and mutex

      Comparing the performance of atomic, spinlock and mutex I was curious in benchmark of different synchronization mechanisms: atomic, spinlock, mutex. Without synchronization #include <future> #include <iostream> volatile int value = 0; int loop(bool inc, int limit) { std::cout << "Started " << inc << " " << limit << std::endl; for (int i = 0; i < limit; ++i) { if (inc) { ++value; } else { --value;

      • Ticket spinlockメモ φ(.. )メモシテオコウ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

        Linuxカーネルのspinlockがどんなロジックで動いているのかなと思ってarch/x86/include/asm/spinlock.hを見ていたらTicket spinlockというのが出てきたのでメモ〆(.. )カリカリッ!! 概要は英語のWikipediaで見つけました。 これによるとTicket spinlockは2個の整数の変数を使い、1つはqueueチケット、もう一つはdequeueチケットと呼びます。初期値は両方とも0です。 処理の流れとしては下のようになります。 1.queueの値を読みインクリメントする 2.インクリメント前のqueueの値とdequeueと比較し、queue == dequeueなら誰もロックを確保していないのでロック確保に成功 3.ロックの確保に失敗した場合はqueue == dequeueになるまでスピンして待つ 4.クリティカルセクションを抜け

          Ticket spinlockメモ φ(.. )メモシテオコウ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
        • Linuxのロック共通関数とspinlock - Qiita

          詳解Linuxカーネルの5章カーネルの同期処理に関連する、Linuxのロックについて調べた。 ロックは共通関数が多そうなので、それらの仕組みから調べてみる。 カーネルバージョン v4.4 lock_acquire lockdep.hに実装されているマクロから、lock_acquire()はspinlock, rwlock(読み書き用spinlock), シークエンスロック, mutex, 読み書き用semaphoreで利用されているらしい。 これはlockdep-designのカーネルドキュメントにもあるように、ロックが正しいことを検証するためのデバッグのための関数である。 #define lock_acquire_exclusive(l, s, t, n, i) lock_acquire(l, s, t, 0, 1, n, i) #define lock_acquire_shared(l

            Linuxのロック共通関数とspinlock - Qiita
          • Real World Technologies - Forums - Thread: Nuances related to Spinlock implementation and the Linux Scheduler

            Linus Torvalds (torvalds.delete@this.linux-foundation.org) on January 3, 2020 7:05 pm wrote: > Beastian (no.email.delete@this.aol.com) on January 3, 2020 11:46 am wrote: > > I'm usually on the other side of these primitives when I write code as a consumer of them, > > but it's very interesting to read about the nuances related to their implementations: > > The whole post seems to be just wrong, an

            • A Close Look at a Spinlock – Embedded in Academia

              The spinlock is the most basic mutual exclusion primitive provided by a multiprocessor operating system. Spinlocks need to protect against preemption on the current CPU (typically by disabling interrupts, but we’ll ignore that aspect in this post) and also against attempts by other cores to concurrently access the critical section (by using atomic memory operations). As the name implies, attempts

              • Real World Technologies - Forums - Thread: Nuances related to Spinlock implementation and the Linux Scheduler

                By: Linus Torvalds (torvalds.delete@this.linux-foundation.org), January 6, 2020 1:28 pm Gionatan Danti (g.danti.delete@this.assyoma.it) on January 6, 2020 12:13 pm wrote: > > However, I have a question about a recent kernel change that broke an important 3rd party > module: zfs. I don't want absolutely to flame, and feel free to not reply if think so. Note that "we don't break users" is literally

                1