GitHub PushEvent at 2014-07-05 15:49:04
Repository: kernel_smp600
Actor: Xluco
Payload: {"shas":[["c637411a11e08ccb003a383c2cbbb946532a4421","46f1a0bd5592a2f9244ca321b129902a06b53e03@phugh.es","derp fixes IV: a derp hope","Xluco",true],["95c7d4324b2d14c1852480bb86dcb31f468dbaa5","203686835f49d1750fcbb70065cda5c503139a61@android.com","epoll: Add a flag, EPOLLWAKEUP, to prevent suspend while epoll events are ready\n\nWhen an epoll_event, that has the EPOLLWAKEUP flag set, is ready, a\nwakeup_source will be active to prevent suspend. This can be used to\nhandle wakeup events from a driver that support poll, e.g. input, if\nthat driver wakes up the waitqueue passed to epoll before allowing\nsuspend.\n\nSigned-off-by: Arve Hjønnevåg <arve@android.com>\nReviewed-by: NeilBrown <neilb@suse.de>\nSigned-off-by: Rafael J. Wysocki <rjw@sisk.pl>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>\n\nConflicts:\n\tfs/eventpoll.c","Arve Hjønnevåg",true],["4573a557f0a2ee513c5fb16d23e7013216358d36","a11f87183a953ab11f50fbafff689c5a7fa3506c@sisk.pl","epoll: Fix user space breakage related to EPOLLWAKEUP\n\nCommit 324bd59a8d193cae6a4e0957ccc4460d606a9091 (epoll: Add a flag, EPOLLWAKEUP, to prevent\nsuspend while epoll events are ready) caused some applications to\nmalfunction, because they set the bit corresponding to the new\nEPOLLWAKEUP flag in their eventpoll flags and they don't have the\nnew CAP_EPOLLWAKEUP capability.\n\nTo prevent that from happening, change epoll_ctl() to clear\nEPOLLWAKEUP in epds.events if the caller doesn't have the\nCAP_EPOLLWAKEUP capability instead of failing and returning an\nerror code, which allows the affected applications to function\nnormally.\n\nReported-and-tested-by: Jiri Slaby <jslaby@suse.cz>\nSigned-off-by: Rafael J. Wysocki <rjw@sisk.pl>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Rafael J. Wysocki",true],["5d3c5da62fc2e7856b3a27cab0bb7a1919201a0f","cc9a9bf9e3f3b546e69143652ae261619ab7ca78@gmail.com","PM: Rename CAP_EPOLLWAKEUP to CAP_BLOCK_SUSPEND\n\nAs discussed in\nhttp://thread.gmane.org/gmane.linux.kernel/1249726/focus=1288990,\nthe capability introduced in 4d7e30d98939a0340022ccd49325a3d70f7e0238\nto govern EPOLLWAKEUP seems misnamed: this capability is about governing\nthe ability to suspend the system, not using a particular API flag\n(EPOLLWAKEUP). We should make the name of the capability more general\nto encourage reuse in related cases. (Whether or not this capability\nshould also be used to govern the use of /sys/power/wake_lock is a\nquestion that needs to be separately resolved.)\n\nThis patch renames the capability to CAP_BLOCK_SUSPEND. In order to ensure\nthat the old capability name doesn't make it out into the wild, could you\nplease apply and push up the tree to ensure that it is incorporated\nfor the 3.5 release.\n\nSigned-off-by: Michael Kerrisk <mtk.manpages@gmail.com>\nAcked-by: Serge Hallyn <serge.hallyn@canonical.com>\nSigned-off-by: Rafael J. Wysocki <rjw@sisk.pl>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Michael Kerrisk",true],["3f88128e89edeafb83392a99fe6f9eee69d6bd8c","de609eb4d5d70b1d38ec6642adbfc33a2781f63c@zeniv.linux.org.uk","eventpoll: use-after-possible-free in epoll_create1()\n\nAs soon as we'd installed the file into descriptor table, it can\nget closed by another thread.  Freeing ep in process...\n\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Al Viro",true],["a2aa4c3e039d60029ddd4d59d7e9950433f082a2","de609eb4d5d70b1d38ec6642adbfc33a2781f63c@zeniv.linux.org.uk","switch epoll_wait(2) to fget_light()\n\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Al Viro",true],["1beedd97f9e2265764fe7157d7e891f69dc9aae8","d688953a19dcb476c5fb90e6abba87f77b09be65@gmail.com","epoll: switch simple cases of fget_light to fdget\n\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Pranav Vashi",true],["c9fb5c0e9d1dc57d1b0a4fae5fe1fa0c46495bd8","8c2951295f8292b0c03727bc4652981172298eae@yhbt.net","epoll: trim epitem by one cache line\n\nIt is common for epoll users to have thousands of epitems, so saving a\ncache line on every allocation leads to large memory savings.\n\nSince epitem allocations are cache-aligned, reducing sizeof(struct\nepitem) from 136 bytes to 128 bytes will allow it to squeeze under a\ncache line boundary on x86_64.\n\nVia /sys/kernel/slab/eventpoll_epi, I see the following changes on my\nx86_64 Core2 Duo (which has 64-byte cache alignment):\n\n\tobject_size  :  192 => 128\n\tobjs_per_slab:   21 =>  32\n\nAlso, add a BUILD_BUG_ON() to check for future accidental breakage.\n\n[akpm@linux-foundation.org: use __packed, for all architectures]\nSigned-off-by: Eric Wong <normalperson@yhbt.net>\nCc: Davide Libenzi <davidel@xmailserver.org>\nCc: Al Viro <viro@ZenIV.linux.org.uk>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Eric Wong",true],["c67b0c78b4f769d037fd2642a1be178515d84638","8c2951295f8292b0c03727bc4652981172298eae@yhbt.net","epoll: use RCU to protect wakeup_source in epitem\n\nThis prevents wakeup_source destruction when a user hits the item with\nEPOLL_CTL_MOD while ep_poll_callback is running.\n\nTested with CONFIG_SPARSE_RCU_POINTER=y and \"make fs/eventpoll.o C=2\"\n\nSigned-off-by: Eric Wong <normalperson@yhbt.net>\nCc: Alexander Viro <viro@zeniv.linux.org.uk>\nCc: Arve Hjønnevåg <arve@android.com>\nCc: Davide Libenzi <davidel@xmailserver.org>\nCc: Eric Dumazet <eric.dumazet@gmail.com>\nCc: NeilBrown <neilb@suse.de>\nCc: \"Rafael J. Wysocki\" <rjw@sisk.pl>\nCc: \"Paul E. McKenney\" <paulmck@us.ibm.com>\nCc: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Eric Wong",true],["255ed293be19f4b15e2f8609cedea293cd31087c","8c2951295f8292b0c03727bc4652981172298eae@yhbt.net","epoll: lock ep->mtx in ep_free to silence lockdep\n\nTechnically we do not need to hold ep->mtx during ep_free since we are\ncertain there are no other users of ep at that point.  However, lockdep\ncomplains with a \"suspicious rcu_dereference_check() usage!\" message; so\nlock the mutex before ep_remove to silence the warning.\n\nSigned-off-by: Eric Wong <normalperson@yhbt.net>\nCc: Al Viro <viro@zeniv.linux.org.uk>\nCc: Arve Hjønnevåg <arve@android.com>\nCc: Davide Libenzi <davidel@xmailserver.org>\nCc: Eric Dumazet <eric.dumazet@gmail.com>\nCc: NeilBrown <neilb@suse.de>,\nCc: Rafael J. Wysocki <rjw@sisk.pl>\nCc: Oleg Nesterov <oleg@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Eric Wong",true],["f0661be53d3fb35c84d3ed6a67c2a990ae67bf96","8c2951295f8292b0c03727bc4652981172298eae@yhbt.net","epoll: cleanup: hoist out f_op->poll calls\n\nThis reduces the amount of code inside the ready list iteration loops for\nbetter readability IMHO.\n\nSigned-off-by: Eric Wong <normalperson@yhbt.net>\nCc: Davide Libenzi <davidel@xmailserver.org>\nCc: Al Viro <viro@ZenIV.linux.org.uk>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Eric Wong",true],["73cac60caa630f677ede3316800160b55b2ef01b","8c2951295f8292b0c03727bc4652981172298eae@yhbt.net","epoll: cleanup: use RCU_INIT_POINTER when nulling\n\nIt is always safe to use RCU_INIT_POINTER to NULL a pointer.  This results\nin slightly smaller/faster code.\n\nSigned-off-by: Eric Wong <normalperson@yhbt.net>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Eric Wong",true],["3a1d02054f67b5fc530232ef8d4cb02f196bf619","d688953a19dcb476c5fb90e6abba87f77b09be65@gmail.com","signals: eventpoll: do not use sigprocmask()\n\nsigprocmask() should die. None of the current callers actually\nneed this strange interface.\n\nChange fs/eventpoll.c to use set_current_blocked(). This also\nmeans we should not worry about SIGKILL/SIGSTOP.\n\nSigned-off-by: Oleg Nesterov <oleg@redhat.com>\nCc: Al Viro <viro@zeniv.linux.org.uk>\nCc: Denys Vlasenko <dvlasenk@redhat.com>\nCc: Eric Wong <normalperson@yhbt.net>\nCc: Jason Baron <jbaron@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Pranav Vashi",true],["2e07a65535d5acdabe2b8a9b969a1d44e49b597c","de609eb4d5d70b1d38ec6642adbfc33a2781f63c@zeniv.linux.org.uk","switch epoll_ctl() to fdget\n\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Al Viro",true],["bf7855c0c100800372587462bff3af535d67759c","312c7d941f03386814be517ffdb3e0eb6624e275@google.com","epoll: add a reschedule point in ep_free()\n\nep_free() might iterate on a huge set of epitems and hold cpu too long.\nAdd two cond_resched() in order to yield cpu to other tasks.  This is safe\nas we only hold mutexes in this function.\n\nSigned-off-by: Eric Dumazet <edumazet@google.com>\nCc: Al Viro <viro@ZenIV.linux.org.uk>\nCc: Theodore Ts'o <tytso@mit.edu>\nAcked-by: Eric Wong <normalperson@yhbt.net>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Eric Dumazet",true],["43f076a4cb09af1293c475bdf98fe24c63ebbd3f","af9bd1db766a43cb09b647251c97dbddcd2e59dc@akamai.com","epoll: optimize EPOLL_CTL_DEL using rcu\n\nNathan Zimmer found that once we get over 10+ cpus, the scalability of\nSPECjbb falls over due to the contention on the global 'epmutex', which is\ntaken in on EPOLL_CTL_ADD and EPOLL_CTL_DEL operations.\n\nPatch #1 removes the 'epmutex' lock completely from the EPOLL_CTL_DEL path\nby using rcu to guard against any concurrent traversals.\n\nPatch #2 remove the 'epmutex' lock from EPOLL_CTL_ADD operations for\nsimple topologies.  IE when adding a link from an epoll file descriptor to\na wakeup source, where the epoll file descriptor is not nested.\n\nThis patch (of 2):\n\nOptimize EPOLL_CTL_DEL such that it does not require the 'epmutex' by\nconverting the file->f_ep_links list into an rcu one.  In this way, we can\ntraverse the epoll network on the add path in parallel with deletes.\nSince deletes can't create loops or worse wakeup paths, this is safe.\n\nThis patch in combination with the patch \"epoll: Do not take global 'epmutex'\nfor simple topologies\", shows a dramatic performance improvement in\nscalability for SPECjbb.\n\nSigned-off-by: Jason Baron <jbaron@akamai.com>\nTested-by: Nathan Zimmer <nzimmer@sgi.com>\nCc: Eric Wong <normalperson@yhbt.net>\nCc: Nelson Elhage <nelhage@nelhage.com>\nCc: Al Viro <viro@zeniv.linux.org.uk>\nCc: Davide Libenzi <davidel@xmailserver.org>\nCc: \"Paul E. McKenney\" <paulmck@us.ibm.com>\nCC: Wu Fengguang <fengguang.wu@intel.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Jason Baron",true],["a2753feffb0eba82dd1aa995d07fb9e8bc5e426e","af9bd1db766a43cb09b647251c97dbddcd2e59dc@akamai.com","epoll: do not take global 'epmutex' for simple topologies\n\nWhen calling EPOLL_CTL_ADD for an epoll file descriptor that is attached\ndirectly to a wakeup source, we do not need to take the global 'epmutex',\nunless the epoll file descriptor is nested.  The purpose of taking the\n'epmutex' on add is to prevent complex topologies such as loops and deep\nwakeup paths from forming in parallel through multiple EPOLL_CTL_ADD\noperations.  However, for the simple case of an epoll file descriptor\nattached directly to a wakeup source (with no nesting), we do not need to\nhold the 'epmutex'.\n\nThis patch along with 'epoll: optimize EPOLL_CTL_DEL using rcu' improves\nscalability on larger systems.  Quoting Nathan Zimmer's mail on SPECjbb\nperformance:\n\n\"On the 16 socket run the performance went from 35k jOPS to 125k jOPS.  In\naddition the benchmark when from scaling well on 10 sockets to scaling\nwell on just over 40 sockets.\n\n...\n\nCurrently the benchmark stops scaling at around 40-44 sockets but it seems like\nI found a second unrelated bottleneck.\"\n\n[akpm@linux-foundation.org: use `bool' for boolean variables, remove unneeded/undesirable cast of void*, add missed ep_scan_ready_list() kerneldoc]\nSigned-off-by: Jason Baron <jbaron@akamai.com>\nTested-by: Nathan Zimmer <nzimmer@sgi.com>\nCc: Eric Wong <normalperson@yhbt.net>\nCc: Nelson Elhage <nelhage@nelhage.com>\nCc: Al Viro <viro@zeniv.linux.org.uk>\nCc: Davide Libenzi <davidel@xmailserver.org>\nCc: \"Paul E. McKenney\" <paulmck@us.ibm.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Jason Baron",true],["950450d0af9ec1d51cb14e8df9f06c64b9c5ade8","a4a7d486fe874593b021ebde938f459c081be043@linaro.org","epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled\n\nDrop EPOLLWAKEUP from epoll events mask if CONFIG_PM_SLEEP is disabled.\n\nSigned-off-by: Amit Pundir <amit.pundir@linaro.org>\nCc: John Stultz <john.stultz@linaro.org>\nCc: Alexander Viro <viro@zeniv.linux.org.uk>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Amit Pundir",true],["388b3d4bb1e66c772aa824ad26f218b35f257404","af9bd1db766a43cb09b647251c97dbddcd2e59dc@akamai.com","epoll: do not take the nested ep->mtx on EPOLL_CTL_DEL\n\nThe EPOLL_CTL_DEL path of epoll contains a classic, ab-ba deadlock.\nThat is, epoll_ctl(a, EPOLL_CTL_DEL, b, x), will deadlock with\nepoll_ctl(b, EPOLL_CTL_DEL, a, x).  The deadlock was introduced with\ncommmit (\"epoll: do not take global 'epmutex' for simple\ntopologies\").\n\nThe acquistion of the ep->mtx for the destination 'ep' was added such\nthat a concurrent EPOLL_CTL_ADD operation would see the correct state of\nthe ep (Specifically, the check for '!list_empty(&f.file->f_ep_links')\n\nHowever, by simply not acquiring the lock, we do not serialize behind\nthe ep->mtx from the add path, and thus may perform a full path check\nwhen if we had waited a little longer it may not have been necessary.\nHowever, this is a transient state, and performing the full loop\nchecking in this case is not harmful.\n\nThe important point is that we wouldn't miss doing the full loop\nchecking when required, since EPOLL_CTL_ADD always locks any 'ep's that\nits operating upon.  The reason we don't need to do lock ordering in the\nadd path, is that we are already are holding the global 'epmutex'\nwhenever we do the double lock.  Further, the original posting of this\npatch, which was tested for the intended performance gains, did not\nperform this additional locking.\n\nSigned-off-by: Jason Baron <jbaron@akamai.com>\nCc: Nathan Zimmer <nzimmer@sgi.com>\nCc: Eric Wong <normalperson@yhbt.net>\nCc: Nelson Elhage <nelhage@nelhage.com>\nCc: Al Viro <viro@zeniv.linux.org.uk>\nCc: Davide Libenzi <davidel@xmailserver.org>\nCc: \"Paul E. McKenney\" <paulmck@us.ibm.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Jason Baron",true],["d9f2b2840afb5f48a7da53539a9cb02201dc521e","d688953a19dcb476c5fb90e6abba87f77b09be65@gmail.com","Add new helpers\n\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","Pranav Vashi",true]],"size":63,"ref":"refs/heads/rebase","head":"a8526eaffbecb17d0c64a14196affbe3a217f423"}