qspinlock with paravirt support
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest11 patches 106 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/11 | qspinlock: A simple generic 4-byte queue spinlockinclude/ include/ kernel/ +3 more | +385 | 19 replies | |
| 1/11 | qspinlock: A simple generic 4-byte queue spinlockinclude/ include/ kernel/ +3 more | +385 | 0 replies | |
| 2/11 | qspinlock, x86: Enable x86-64 to use queue spinlockarch/ arch/ arch/ +1 more | +35 | 0 replies | |
| 2/11 | qspinlock, x86: Enable x86-64 to use queue spinlockarch/ arch/ arch/ +1 more | +35 | 0 replies | |
| 2/11 | qspinlock, x86: Enable x86-64 to use queue spinlockarch/ arch/ arch/ +1 more | +35 | 0 replies | |
| 3/11 | qspinlock: Add pending bitinclude/ kernel/ | +97 | 18 replies | |
| 3/11 | qspinlock: Add pending bitinclude/ kernel/ | +97 | 0 replies | |
| 4/11 | qspinlock: Extract out the exchange of tail code wordinclude/ kernel/ | +38 | 14 replies | |
| 4/11 | qspinlock: Extract out the exchange of tail code wordinclude/ kernel/ | +38 | 0 replies | |
| 4/11 | qspinlock: Extract out the exchange of tail code wordinclude/ kernel/ | +38 | 0 replies | |
| 5/11 | qspinlock: Optimize for smaller NR_CPUSinclude/ kernel/ | +106 | 15 replies | |
| 5/11 | qspinlock: Optimize for smaller NR_CPUSinclude/ kernel/ | +106 | 0 replies | |
| 6/11 | qspinlock: Optimize pending bitkernel/ | +10 | 2 replies | |
| 6/11 | qspinlock: Optimize pending bitkernel/ | +10 | 0 replies | |
| 6/11 | qspinlock: Optimize pending bitkernel/ | +10 | 0 replies | |
| 7/11 | qspinlock: Use a simple write to grab the lock, if applicablekernel/ | +43 | 4 replies | |
| 7/11 | qspinlock: Use a simple write to grab the lock, if applicablekernel/ | +43 | 0 replies | |
| 8/11 | qspinlock: Revert to test-and-set on hypervisorsarch/ include/ kernel/ | +24 | 5 replies | |
| 8/11 | qspinlock: Revert to test-and-set on hypervisorsarch/ include/ kernel/ | +24 | 0 replies | |
| 9/11 | pvqspinlock, x86: Rename paravirt_ticketlocks_enabledarch/ arch/ arch/ +1 more | +6 | 2 replies | |
| 9/11 | pvqspinlock, x86: Rename paravirt_ticketlocks_enabledarch/ arch/ arch/ +1 more | +6 | 0 replies | |
| 9/11 | pvqspinlock, x86: Rename paravirt_ticketlocks_enabledarch/ arch/ arch/ +1 more | +6 | 0 replies | |
| 10/11 | qspinlock: Paravirt supportarch/ arch/ arch/ +5 more | +302 | 21 replies | |
| 10/11 | qspinlock: Paravirt supportarch/ arch/ arch/ +5 more | +302 | 0 replies | |
| 11/11 | qspinlock, kvm: Add paravirt supportarch/ kernel/ | +59 | 4 replies | |
| 11/11 | qspinlock, kvm: Add paravirt supportarch/ kernel/ | +59 | 0 replies | |
| 11/11 | qspinlock, kvm: Add paravirt supportarch/ kernel/ | +59 | 0 replies |
Reviews trailers per patch
3 of 27 patches have a Reviewed-by or Acked-by.
| Patch | Konrad Rzeszutek Wilk |
|---|---|
| 1/11 | |
| 1/11 | |
| 2/11 | |
| 2/11 | |
| 2/11 | |
| 3/11 | |
| 3/11 | |
| 4/11 | |
| 4/11 | |
| 4/11 | |
| 5/11 | |
| 5/11 | |
| 6/11 | |
| 6/11 | |
| 6/11 | |
| 7/11 | |
| 7/11 | |
| 8/11 | |
| 8/11 | |
| 9/11 | A-b A-b |
| 9/11 | A-b A-b |
| 9/11 | A-b A-b |
| 10/11 | |
| 10/11 | |
| 11/11 | |
| 11/11 | |
| 11/11 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH 00/11] qspinlock with paravirt support
Since Waiman seems incapable of doing simple things; here's my take on the paravirt crap.
The first few patches are taken from Waiman's latest series, but the virt support is completely new. Its primary aim is to not mess up the native code.
I've not stress tested it, but the virt and paravirt (kvm) cases boot on simple smp guests. I've not done Xen, but the patch should be simple and similar.
I ripped out all the unfair nonsense as its not at all required for paravirt and optimizations that make paravirt better at the cost of code clarity and/or native performance are just not worth it.
Also; if we were to ever add some of that unfair nonsense you do so _after_ you got the simple things working.
The thing I'm least sure about is the head tracking, I chose to do something different from what Waiman did, because his is O(nr_cpus) and had the assumption that guests have small nr_cpus. AFAIK this is not at all true. The biggest problem I have with what I did is that it contains wait loops itself.