Abstract
We introduce the scheduler subversion problem, where lock usage patterns determine which thread runs, thereby subverting CPU scheduling goals. To mitigate this problem, we introduce Scheduler-Cooperative Locks (SCLs), a new family of locking primitives that controls lock usage and thus aligns with system-wide scheduling goals; our initial work focuses on proportional share schedulers. Unlike existing locks, SCLs provide an equal (or proportional) time window called lock opportunity within which each thread can acquire the lock. We design and implement three different scheduler-cooperative locks that work well with proportional-share schedulers: a user-level mutex lock (u-SCL), a reader-writer lock (RW-SCL), and a simplified kernel implementation (k-SCL). We demonstrate the effectiveness of SCLs in two user-space applications (UpScaleDB and KyotoCabinet) and the Linux kernel. In all three cases, regardless of lock usage patterns, SCLs ensure that each thread receives proportional lock allocations that match those of the CPU scheduler. Using microbenchmarks, we show that SCLs are efficient and achieve high performance with minimal overhead under extreme workloads.
Original language | English |
---|---|
Title of host publication | Proceedings of the Fifteenth European Conference on Computer Systems |
Place of Publication | New York, NY, USA |
Publisher | Association for Computing Machinery, Inc |
Number of pages | 17 |
ISBN (Print) | 9781450368827 |
DOIs | |
Publication status | Published - 17 Apr 2020 |
Event | The 15th European Conference on Computer Systems 2020 - Heraklion, Greece Duration: 27 Apr 2020 → 30 Apr 2020 Conference number: 15 https://www.eurosys2020.org/ |
Publication series
Name | EuroSys '20 |
---|---|
Publisher | Association for Computing Machinery |
Conference
Conference | The 15th European Conference on Computer Systems 2020 |
---|---|
Abbreviated title | EuroSys 2020 |
Country/Territory | Greece |
City | Heraklion |
Period | 27/04/20 → 30/04/20 |
Internet address |