commit | 18d2048fda76cc1b3715fd2f1a0f6ac3e381d26d | [log] [tgz] |
---|---|---|
author | Adrian Danis <adanis@google.com> | Fri Jun 07 07:01:30 2019 +0000 |
committer | CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org> | Fri Jun 07 07:01:30 2019 +0000 |
tree | 96dd24164544017e103fecf41a066341ae4a5918 | |
parent | ff23a98aa57283652e924f1a8c62e60c0218df8a [diff] |
[kernel] Count number of spinlocks held Adds a percpu counter for how many spinlocks are held. This counter is asserted against during a reschedule to ensure that no spinlocks, aside from the thread_lock, are held across a thread switch. For x86 the percpu struct is retrieved and then used for retrieving both the cpu_num and manipulating num_spinlocks. This is faster than performing all operations indirectly through gs. For arm there was no benefit measured from locally caching the percpu pointer and so the generic READ+WRITE wrappers are used. The in kernel micro benchmarks (k bench) shows the cycles to perform a spinlock acquire+release changes slightly: NUC 47 -> 48 VIM2 41 -> 46 To measure whether there is any noticable performance degredation the two zircon micro benchmark suites (zircon/perftest, garnet/zircon_benchmarks) were run on the vim2 and nuc. All tests were run 5 times with reboots in between and compared with the perfcompare tool, which found no significant differences. ZX-147 #comment Change-Id: I40f15bf3dbe4e4e4219e8a461507369a0092fd7c
Pink + Purple == Fuchsia (a new operating system)
Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.
Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.
See Getting Started.
See the documentation.