Re: [PATCH 0/2] ipc/sem.c: Race in sem_lock()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2013-09-25 at 20:09 -0700, Andrew Morton wrote: 
> On Thu, 26 Sep 2013 04:50:20 +0200 Mike Galbraith <efault@xxxxxx> wrote:
> 
> > > As soon as I finish some maintenance, I'll wedge the "or forward" pile
> > > into 3.10-rt and beat it up on 8 socket box.
> > 
> > Applied ipc v3.10... plus pending fixes (minus sem_otime/proc), and beat
> > is up with ltp, rt-tests/foo and benchmark mixes.  No hiccups.
> 
> Sounds like you've done a better job than I have of identifying which
> patches to apply to what.
> 
> Can you please identify with great specificity which patches you've
> tested?
> 

Sure, started with virgin 3.10.10-rt7, added..

dbfcd91f06f0e2d5564b2fd184e9c2a43675f9ab ipc: move rcu lock out of ipc_addid
1ca7003ab41152d673d9e359632283d05294f3d6 ipc: introduce ipc object locking helpers
cf9d5d78d05bca96df7618dfc3a5ee4414dcae58 ipc: close open coded spin lock calls
7b4cc5d8411bd4e9d61d8714f53859740cf830c2 ipc: move locking out of ipcctl_pre_down_nolock
15724ecb7e9bab35fc694c666ad563adba820cc3 ipc,msg: shorten critical region in msgctl_down
2cafed30f150f7314f98717b372df8173516cae0 ipc,msg: introduce msgctl_nolock
a5001a0d9768568de5d613c3b3a5b9c7721299da ipc,msg: introduce lockless functions to obtain the ipc object
ac0ba20ea6f2201a1589d6dc26ad1a4f0f967bb8 ipc,msg: make msgctl_nolock lockless
3dd1f784ed6603d7ab1043e51e6371235edf2313 ipc,msg: shorten critical region in msgsnd
41a0d523d0f626e9da0dc01de47f1b89058033cf ipc,msg: shorten critical region in msgrcv
9ad66ae65fc8d3e7e3344310fb0aa835910264fe ipc: remove unused functions
196aa0132fc7261f34b10ae1bfb44abc1bc69b3c ipc/util.c, ipc_rcu_alloc: cacheline align allocation
f5c936c0f267ec58641451cf8b8d39b4c207ee4d ipc/sem.c: cacheline align the semaphore structures (Manfred)
1a82e9e1d0f1b45f47a97c9e2349020536ff8987 ipc/sem: separate wait-for-zero and alter tasks into seperate queues (Manfred)
f269f40ad5aeee229ed70044926f44318abe41ef ipc/sem.c: always use only one queue for alter operations (Manfred)
d12e1e50e47e0900dbbf52237b7e171f4f15ea1e ipc/sem.c: replace shared sem_otime with per-semaphore value (Manfred)
758a6ba39ef6df4cdc615e5edd7bd86eab81a5f7 ipc/sem.c: rename try_atomic_semop() to perform_atomic_semop(), docu update (Manfred)
368ae537e056acd3f751fa276f48423f06803922 IPC: bugfix for msgrcv with msgtyp < 0
bebcb928c820d0ee83aca4b192adc195e43e66a2 ipc/msg.c: Fix lost wakeup in msgsnd(). (Manfred)
8b8d52ac382b17a19906b930cd69e2edb0aca8ba ipc,shm: introduce lockless functions to obtain the ipc object
79ccf0f8c8e04e8b9eda6645ba0f63b0915a3075 ipc,shm: shorten critical region in shmctl_down
3b1c4ad37741e53804ffe0a30dd01e08b2ab6241 ipc: drop ipcctl_pre_down
68eccc1dc345539d589ae78ee43b835c1a06a134 ipc,shm: introduce shmctl_nolock
c97cb9ccab8c85428ec21eff690642ad2ce1fa8a ipc,shm: make shmctl_nolock lockless
2caacaa82a51b78fc0c800e206473874094287ed ipc,shm: shorten critical region for shmctl
f42569b1388b1408b574a5e93a23a663647d4181 ipc,shm: cleanup do_shmat pasta
c2c737a0461e61a34676bd0bd1bc1a70a1b4e396 ipc,shm: shorten critical region for shmat
d9a605e40b1376eb02b067d7690580255a0df68f ipc: rename ids->rw_mutex
4718787d1f626f45ddb239912bc07266b9880044 ipc,msg: drop msg_unlock
05603c44a7627793219b0bd9a7b236099dc9cd9d ipc: document general ipc locking scheme
530fcd16d87cd2417c472a581ba5a1e501556c86 ipc, shm: guard against non-existant vma in shmdt(2)
32a2750010981216fb788c5190fb0e646abfab30 ipc: drop ipc_lock_by_ptr
7a25dd9e042b2b94202a67e5551112f4ac87285a ipc, shm: drop shm_lock_check
20b8875abcf2daa1dda5cf70bd6369df5e85d4c1 ipc: drop ipc_lock_check
53dad6d3a8e5ac1af8bacc6ac2134ae1a8b085f1 ipc: fix race with LSMs

Plus Manfred's sem_lock() fix/optimization (is also rt livelock fix for absolutely free).
ipc-sem-Fix-race-in-sem_lock.patch
ipc-sem-optimize-sem_lock.patch

Plus replacement of rt wakeup scheme with Manfred's completion scheme
ipc-revert-ipc-sem-rework-semaphore-wakeups.patch
ipc-sem-Add-RT-compatible-wakeup-scheme.patch

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]