GitHub PushEvent at 2014-10-14 20:35:13
Repository: linux
Actor: ckroehnert
Payload: {"shas":[["abe5f972912d086c080be4bde67750630b6fb38b","331be22c6b63ca3e0a03d408c2d906b1b02cd5f2@cmpxchg.org","mm: page_alloc: fix zone allocation fairness on UP\n\nThe zone allocation batches can easily underflow due to higher-order\nallocations or spills to remote nodes.  On SMP that's fine, because\nunderflows are expected from concurrency and dealt with by returning 0.\nBut on UP, zone_page_state will just return a wrapped unsigned long,\nwhich will get past the <= 0 check and then consider the zone eligible\nuntil its watermarks are hit.\n\nCommit 3a025760fc15 (\"mm: page_alloc: spill to remote nodes before\nwaking kswapd\") already made the counter-resetting use\natomic_long_read() to accomodate underflows from remote spills, but it\ndidn't go all the way with it.\n\nMake it clear that these batches are expected to go negative regardless\nof concurrency, and use atomic_long_read() everywhere.\n\nFixes: 81c0a2bb515f (\"mm: page_alloc: fair zone allocator policy\")\nReported-by: Vlastimil Babka <vbabka@suse.cz>\nReported-by: Leon Romanovsky <leon@leon.nu>\nSigned-off-by: Johannes Weiner <hannes@cmpxchg.org>\nAcked-by: Mel Gorman <mgorman@suse.de>\nCc: <stable@vger.kernel.org>\t[3.12+]\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","Johannes Weiner",true],["f929d3995d61ee0ff5d35e9f3fbef3b80bf4ccaa","69652caca27c8b940640ad396ab71f93cacec34f@linux-foundation.org","Merge branch 'akpm' (fixes from Andrew Morton)\n\nMerge fixes from Andrew Morton:\n \"5 fixes\"\n\n* emailed patches from Andrew Morton <akpm@linux-foundation.org>:\n  mm: page_alloc: fix zone allocation fairness on UP\n  perf: fix perf bug in fork()\n  MAINTAINERS: change git URL for mpc5xxx tree\n  mm: memcontrol: do not iterate uninitialized memcgs\n  ocfs2/dlm: should put mle when goto kill in dlm_assert_master_handler","Linus Torvalds",true],["abcadddc85a4c9595b0a5ede34f2ee876fe4155f","27ffc44a8ec6a212fba98cfc3246c6ce8ab131e0@intel.com","Merge branches 'pm-cpufreq' and 'acpi-video'\n\n* pm-cpufreq:\n  cpufreq: update 'cpufreq_suspended' after stopping governors\n  cpufreq: integrator: fix integrator_cpufreq_remove return type\n  cpufreq: pcc-cpufreq: Fix wait_event() under spinlock\n\n* acpi-video:\n  ACPI / i915: Update the condition to ignore firmware backlight change request","Rafael J. Wysocki",true],["cf27020d2f253bac6457d6833b97141030f0122a","1784cbba6d7675b1eba55eaefe41c7672ad9da3b@chromium.org","i2c: rk3x: fix 0 length write transfers\n\ni2cdetect -q was broken (everything was a false positive, and no transfers were\nactually being sent over i2c). The way it works is by sending a 0 length write\nrequest and checking for NACK. This patch fixes the 0 length writes and actually\nsends them.\n\nReported-by: Doug Anderson <dianders@chromium.org>\nSigned-off-by: Alexandru M Stan <amstan@chromium.org>\nTested-by: Doug Anderson <dianders@chromium.org>\nTested-by: Max Schwarz <max.schwarz@online.de>\nSigned-off-by: Wolfram Sang <wsa@the-dreams.de>\nCc: stable@kernel.org","Alexandru M Stan",true],["86b59bbfae2a895aa26b3d15f31b1a705dbfede1","3e259a9c7ec8261c71cce57b93152e64c5e60da4@codeaurora.org","i2c: qup: Fix order of runtime pm initialization\n\nThe runtime pm calls need to be done before populating the children via the\ni2c_add_adapter call.  If this is not done, a child can run into issues trying\nto do i2c read/writes due to the pm_runtime_sync failing.\n\nSigned-off-by: Andy Gross <agross@codeaurora.org>\nReviewed-by: Felipe Balbi <balbi@ti.com>\nAcked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>\nSigned-off-by: Wolfram Sang <wsa@the-dreams.de>\nCc: stable@kernel.org","Andy Gross",true],["eee0815dabbdd7d584bea8275f5758d25c97cb9b","f2295d84e358395675bc8031be58672073ae065e@redhat.com","Merge tag 'drm-intel-fixes-2014-10-02' of git://anongit.freedesktop.org/drm-intel into drm-fixes\n\nfinal regression fix for 3.17.\n\n* tag 'drm-intel-fixes-2014-10-02' of git://anongit.freedesktop.org/drm-intel:\n  drm/i915: Flush the PTEs after updating them before suspend","Dave Airlie",true],["58586869599f6bb38aeca71a847cd77bfea74808","69652caca27c8b940640ad396ab71f93cacec34f@linux-foundation.org","Merge tag 'pm+acpi-3.17-final' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull ACPI and power management fixes from Rafael Wysocki:\n \"These are three regression fixes (cpufreq core, pcc-cpufreq, i915 /\n  ACPI) and one trivial fix for a callback return value mismatch in the\n  cpufreq integrator driver.\n\n  Specifics:\n\n   - A recent cpufreq core fix went too far and introduced a regression\n     in the system suspend code path.  Fix from Viresh Kumar.\n\n   - An ACPI-related commit in the i915 driver that fixed backlight\n     problems for some Thinkpads inadvertently broke a Dell machine (in\n     3.16).  Fix from Aaron Lu.\n\n   - The pcc-cpufreq driver was broken during the 3.15 cycle by a commit\n     that put wait_event() under a spinlock by mistake.  Fix that\n     (Rafael J Wysocki).\n\n   - The return value type of integrator_cpufreq_remove() is void, but\n     should be int.  Fix from Arnd Bergmann\"\n\n* tag 'pm+acpi-3.17-final' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:\n  cpufreq: update 'cpufreq_suspended' after stopping governors\n  ACPI / i915: Update the condition to ignore firmware backlight change request\n  cpufreq: integrator: fix integrator_cpufreq_remove return type\n  cpufreq: pcc-cpufreq: Fix wait_event() under spinlock","Linus Torvalds",true],["69e8f5b15ef43da1e177665a3e2063711ee4c9de","9dbbbf0688fedc85ad4da37637f1a64b8c718ee2@kernel.org","Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core\n\nPull perf/core improvements and fixes from Arnaldo Carvalho de Melo:\n\nUser visible changes:\n\n  * Fix mmap return address truncation to 32-bit in 'perf trace'. (Chang Hyun Park)\n\n  * Support operations for shared futexes. (Davidlohr Bueso)\n\n  * Fix error message for --filter option not coming after tracepoint. (Arnaldo Carvalho de Melo)\n\nInfrastructure changes:\n\n  * Refactor unit and scale function parameters for PMU parsing routines. (Matt Fleming)\n\n  * Improve DSO long names lookup with rbtree, resulting in great speedup for\n    workloads with lots of DSOs. (Waiman Long)\n\n  * Fix build breakage on arm64 targets. (Will Deacon)\n\nSigned-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","Ingo Molnar",true],["211de6eba8960521e2be450a7d07db85fba4604c","3fddac958924aef220f202ca567388ddab3f14a8@infradead.org","perf: Fix unclone_ctx() vs. locking\n\nThe idiot who did 4a1c0f262f88 (\"perf: Fix lockdep warning on process exit\")\nforgot to pay attention and fix all similar cases. Do so now.\n\nIn particular, unclone_ctx() must be called while holding ctx->lock,\ntherefore all such sites are broken for the same reason. Pull the\nput_ctx() call out from under ctx->lock.\n\nReported-by: Sasha Levin <sasha.levin@oracle.com>\nProbably-also-reported-by: Vince Weaver <vincent.weaver@maine.edu>\nFixes: 4a1c0f262f88 (\"perf: Fix lockdep warning on process exit\")\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: Paul Mackerras <paulus@samba.org>\nCc: Arnaldo Carvalho de Melo <acme@kernel.org>\nCc: Sasha Levin <sasha.levin@oracle.com>\nCc: Cong Wang <cwang@twopensource.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nLink: http://lkml.kernel.org/r/20140930172308.GI4241@worktop.programming.kicks-ass.net\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","Peter Zijlstra",true],["9c2b9d30e28559a78c9e431cdd7f2c6bf5a9ee67","3fddac958924aef220f202ca567388ddab3f14a8@infradead.org","perf: Fix perf bug in fork()\n\nOleg noticed that a cleanup by Sylvain actually uncovered a bug; by\ncalling perf_event_free_task() when failing sched_fork() we will not yet\nhave done the memset() on ->perf_event_ctxp[] and will therefore try and\n'free' the inherited contexts, which are still in use by the parent\nprocess.\n\nThis is bad and might explain some outstanding fuzzer failures ...\n\nSuggested-by: Oleg Nesterov <oleg@redhat.com>\nReported-by: Oleg Nesterov <oleg@redhat.com>\nReported-by: Sylvain 'ythier' Hitier <sylvain.hitier@gmail.com>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: Aaron Tomlin <atomlin@redhat.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Arnaldo Carvalho de Melo <acme@kernel.org>\nCc: Daeseok Youn <daeseok.youn@gmail.com>\nCc: David Rientjes <rientjes@google.com>\nCc: Kees Cook <keescook@chromium.org>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Paul Mackerras <paulus@samba.org>\nCc: Rik van Riel <riel@redhat.com>\nCc: Vladimir Davydov <vdavydov@parallels.com>\nCc: <stable@vger.kernel.org>\nLink: http://lkml.kernel.org/r/20140929101201.GE5430@worktop\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","Peter Zijlstra",true],["728e5653e6fdb2a0892e94a600aef8c9a036c7eb","71bcd3d88361b22cd828f9a350d19d8775f56d4e@linux.intel.com","sched/x86: Fix up typo in topology detection\n\nCommit:\n\n  cebf15eb09a2 (\"x86, sched: Add new topology for multi-NUMA-node CPUs\")\n\nsome code to try to detect the situation where we have a NUMA node\ninside of the \"DIE\" sched domain.\n\nIt detected this by looking for cpus which match_die() but do not match\nNUMA nodes via topology_same_node().\n\nI wrote it up as:\n\n\tif (match_die(c, o) == !topology_same_node(c, o))\n\nwhich actually seemed to work some of the time, albiet\naccidentally.\n\nIt should have been doing an &&, not an ==.\n\nThis code essentially chopped off the \"DIE\" domain on one of\nAndrew Morton's systems.  He reported that this patch fixed his\nissue.\n\nSigned-off-by: Dave Hansen <dave.hansen@linux.intel.com>\nReported-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: Dave Hansen <dave@sr71.net>\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: David Rientjes <rientjes@google.com>\nCc: Igor Mammedov <imammedo@redhat.com>\nCc: Jan Kiszka <jan.kiszka@siemens.com>\nCc: Lan Tianyu <tianyu.lan@intel.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Prarit Bhargava <prarit@redhat.com>\nCc: Toshi Kani <toshi.kani@hp.com>\nLink: http://lkml.kernel.org/r/20140930214546.FD481CFF@viggo.jf.intel.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","Dave Hansen",true],["43f4d66637bc752e93a77ff2536474a5a3888442","eb7d4bc75c19026be4afbcab4b7b388cf01677ff@linaro.org","sched: Improve sysbench performance by fixing spurious active migration\n\nSince commit caeb178c60f4 (\"sched/fair: Make update_sd_pick_busiest() ...\")\nsd_pick_busiest returns a group that can be neither imbalanced nor overloaded\nbut is only more loaded than others. This change has been introduced to ensure\na better load balance in system that are not overloaded but as a side effect,\nit can also generate useless active migration between groups.\n\nLet take the example of 3 tasks on a quad cores system. We will always have an\nidle core so the load balance will find a busiest group (core) whenever an ILB\nis triggered and it will force an active migration (once above\nnr_balance_failed threshold) so the idle core becomes busy but another core\nwill become idle. With the next ILB, the freshly idle core will try to pull the\ntask of a busy CPU.\nThe number of spurious active migration is not so huge in quad core system\nbecause the ILB is not triggered so much. But it becomes significant as soon as\nyou have more than one sched_domain level like on a dual cluster of quad cores\nwhere the ILB is triggered every tick when you have more than 1 busy_cpu\n\nWe need to ensure that the migration generate a real improveùent and will not\nonly move the avg_load imbalance on another CPU.\n\nBefore caeb178c60f4f93f1b45c0bc056b5cf6d217b67f, the filtering of such use\ncase was ensured by the following test in f_b_g:\n\n  if ((local->idle_cpus < busiest->idle_cpus) &&\n\t\t    busiest->sum_nr_running  <= busiest->group_weight)\n\nThis patch modified the condition to take into account situation where busiest\ngroup is not overloaded: If the diff between the number of idle cpus in 2\ngroups is less than or equal to 1 and the busiest group is not overloaded,\nmoving a task will not improve the load balance but just move it.\n\nA test with sysbench on a dual clusters of quad cores gives the following\nresults:\n\n  command: sysbench --test=cpu --num-threads=5 --max-time=5 run\n\nThe HZ is 200 which means that 1000 ticks has fired during the test.\n\nWith Mainline, perf gives the following figures:\n\n Samples: 727  of event 'sched:sched_migrate_task'\n Event count (approx.): 727\n  Overhead  Command          Shared Object  Symbol\n  ........  ...............  .............  ..............\n    12.52%  migration/1      [unknown]      [.] 00000000\n    12.52%  migration/5      [unknown]      [.] 00000000\n    12.52%  migration/7      [unknown]      [.] 00000000\n    12.10%  migration/6      [unknown]      [.] 00000000\n    11.83%  migration/0      [unknown]      [.] 00000000\n    11.83%  migration/3      [unknown]      [.] 00000000\n    11.14%  migration/4      [unknown]      [.] 00000000\n    10.87%  migration/2      [unknown]      [.] 00000000\n     2.75%  sysbench         [unknown]      [.] 00000000\n     0.83%  swapper          [unknown]      [.] 00000000\n     0.55%  ktps65090charge  [unknown]      [.] 00000000\n     0.41%  mmcqd/1          [unknown]      [.] 00000000\n     0.14%  perf             [unknown]      [.] 00000000\n\nWith this patch, perf gives the following figures\n\n Samples: 20  of event 'sched:sched_migrate_task'\n Event count (approx.): 20\n  Overhead  Command          Shared Object  Symbol\n  ........  ...............  .............  ..............\n    80.00%  sysbench         [unknown]      [.] 00000000\n    10.00%  swapper          [unknown]      [.] 00000000\n     5.00%  ktps65090charge  [unknown]      [.] 00000000\n     5.00%  migration/1      [unknown]      [.] 00000000\n\nSigned-off-by: Vincent Guittot <vincent.guittot@linaro.org>\nReviewed-by: Rik van Riel <riel@redhat.com>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nLink: http://lkml.kernel.org/r/1412170735-5356-1-git-send-email-vincent.guittot@linaro.org\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","Vincent Guittot",true],["347abad981c1ef815ea5ba861adba6a8c6aa1580","a21938f5d463ddf41aa718934c205ca2cce8ebbc@redhat.com","sched, time: Fix build error with 64 bit cputime_t on 32 bit systems\n\nOn 32 bit systems cmpxchg cannot handle 64 bit values, so\nsome additional magic is required to allow a 32 bit system\nwith CONFIG_VIRT_CPU_ACCOUNTING_GEN=y enabled to build.\n\nMake sure the correct cmpxchg function is used when doing\nan atomic swap of a cputime_t.\n\nReported-by: Arnd Bergmann <arnd@arndb.de>\nSigned-off-by: Rik van Riel <riel@redhat.com>\nAcked-by: Arnd Bergmann <arnd@arndb.de>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: umgwanakikbuti@gmail.com\nCc: fweisbec@gmail.com\nCc: srao@redhat.com\nCc: lwoodman@redhat.com\nCc: atheurer@redhat.com\nCc: oleg@redhat.com\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Benjamin Herrenschmidt <benh@kernel.crashing.org>\nCc: Heiko Carstens <heiko.carstens@de.ibm.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Martin Schwidefsky <schwidefsky@de.ibm.com>\nCc: Michael Ellerman <mpe@ellerman.id.au>\nCc: Paul Mackerras <paulus@samba.org>\nCc: linux390@de.ibm.com\nCc: linux-arch@vger.kernel.org\nCc: linuxppc-dev@lists.ozlabs.org\nCc: linux-s390@vger.kernel.org\nLink: http://lkml.kernel.org/r/20140930155947.070cdb1f@annuminas.surriel.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","Rik van Riel",true],["10a12983b3d437a6998b3845870e52c1c752c101","e5b39230c99b4d3ebd6aa54f6d823f95134bc39d@parallels.com","sched/fair: Delete resched_cpu() from idle_balance()\n\nWe already reschedule env.dst_cpu in attach_tasks()->check_preempt_curr()\nif this is necessary.\n\nFurthermore, a higher priority class task may be current on dest rq,\nwe shouldn't disturb it.\n\nSigned-off-by: Kirill Tkhai <ktkhai@parallels.com>\nCc: Juri Lelli <juri.lelli@gmail.com>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nLink: http://lkml.kernel.org/r/20140930210441.5258.55054.stgit@localhost\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","Kirill Tkhai",true],["f10e00f4bf360c36edbe6bf18a6c75b171cbe012","e5b39230c99b4d3ebd6aa54f6d823f95134bc39d@parallels.com","sched/dl: Use dl_bw_of() under rcu_read_lock_sched()\n\nrq->rd is freed using call_rcu_sched(), so rcu_read_lock() to access it\nis not enough. We should use either rcu_read_lock_sched() or preempt_disable().\n\nReported-by: Sasha Levin <sasha.levin@oracle.com>\nSuggested-by: Peter Zijlstra <peterz@infradead.org>\nSigned-off-by: Kirill Tkhai <ktkhai@parallels.com\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nFixes: 66339c31bc39 \"sched: Use dl_bw_of() under RCU read lock\"\nLink: http://lkml.kernel.org/r/1412065417.20287.24.camel@tkhai\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","Kirill Tkhai",true],["4f971248bc6ad2bb2a89a25a072ebfec5757d298","0474aee45985f5ae829f53849df476200e876990@linux.intel.com","perf/x86/intel/uncore: Fix minor race in box set up\n\nI was looking for the trinity oops cause in the uncore driver.\n(so far didn't found it)\n\nHowever I found this tiny race: when a box is set up two threads on the\nsame CPU, they may be setting up the box in parallel (e.g. with kernel\npreemption). This could lead to the reference count being increasing\ntoo much. Always recheck there is no existing cpu reference inside the lock.\n\nSigned-off-by: Andi Kleen <ak@linux.intel.com>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: eranian@google.com\nCc: Arnaldo Carvalho de Melo <acme@kernel.org>\nLink: http://lkml.kernel.org/r/1411424826-15629-1-git-send-email-andi@firstfloor.org\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","Andi Kleen",true],["cc6cd47e7395bc05c5077009808b820633eb3f18","8fa8838ab83387ae867845f542b9fe9ca04873f0@redhat.com","perf/x86: Tone down kernel messages when the PMU check fails in a virtual environment\n\nPMU checking can fail due to various reasons. On native machine, this\nis mostly caused by faulty hardware and it is reasonable to use\nKERN_ERR in reporting. However, when kernel is running on virtualized\nenvironment, this checking can fail if virtual PMU is not supported\n(e.g. KVM on AMD host). It is annoying to see an error message on\nsplash screen, even though we know such failure is benign on\nvirtualized environment.\n\nThis patch checks if the kernel is running in a virtualized environment.\nIf so, it will use KERN_INFO in reporting, which reduces the syslog\npriority of them. This patch was tested successfully on KVM.\n\nSigned-off-by: Wei Huang <wei@redhat.com>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: Arnaldo Carvalho de Melo <acme@kernel.org>\nLink: http://lkml.kernel.org/r/1411617314-24659-1-git-send-email-wei@redhat.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","Wei Huang",true],["2291059c852706c6f5ffb400366042b7625066cd","99f39d96f0d0b011d351b608fe7e2870596fa4a9@gmail.com","locking,arch: Use ACCESS_ONCE() instead of cast to volatile in atomic_read()\n\nUse the much more reader friendly ACCESS_ONCE() instead of the cast to volatile.\nThis is purely a stylistic change.\n\nSigned-off-by: Pranith Kumar <bobby.prani@gmail.com>\nAcked-by: Jesper Nilsson <jesper.nilsson@axis.com>\nAcked-by: Hans-Christian Egtvedt <egtvedt@samfundet.no>\nAcked-by: Max Filippov <jcmvbkbc@gmail.com>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: linux-arch@vger.kernel.org\nLink: http://lkml.kernel.org/r/1411482607-20948-1-git-send-email-bobby.prani@gmail.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","Pranith Kumar",true],["debfab74e453f079cd8b12b0604387a8c510ef3a","09ebf12aa4fd61769490ade56a7655bcf429b765@hp.com","locking/rwsem: Avoid double checking before try acquiring write lock\n\nCommit 9b0fc9c09f1b (\"rwsem: skip initial trylock in rwsem_down_write_failed\")\nchecks for if there are known active lockers in order to avoid write trylocking\nusing expensive cmpxchg() when it likely wouldn't get the lock.\n\nHowever, a subsequent patch was added such that we directly\ncheck for sem->count == RWSEM_WAITING_BIAS right before trying\nthat cmpxchg().\n\nThus, commit 9b0fc9c09f1b now just adds overhead.\n\nThis patch modifies it so that we only do a check for if\ncount == RWSEM_WAITING_BIAS.\n\nAlso, add a comment on why we do an \"extra check\" of count\nbefore the cmpxchg().\n\nSigned-off-by: Jason Low <jason.low2@hp.com>\nAcked-by: Davidlohr Bueso <dbueso@suse.de>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: Aswin Chandramouleeswaran <aswin@hp.com>\nCc: Chegu Vinod <chegu_vinod@hp.com>\nCc: Peter Hurley <peter@hurleysoftware.com>\nCc: Tim Chen <tim.c.chen@linux.intel.com>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nLink: http://lkml.kernel.org/r/1410913017.2447.22.camel@j-VirtualBox\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","Jason Low",true],["8acd91e8620836a56ff62028ed28ba629f2881a0","3fddac958924aef220f202ca567388ddab3f14a8@infradead.org","locking/lockdep: Revert qrwlock recusive stuff\n\nCommit f0bab73cb539 (\"locking/lockdep: Restrict the use of recursive\nread_lock() with qrwlock\") changed lockdep to try and conform to the\nqrwlock semantics which differ from the traditional rwlock semantics.\n\nIn particular qrwlock is fair outside of interrupt context, but in\ninterrupt context readers will ignore all fairness.\n\nThe problem modeling this is that read and write side have different\nlock state (interrupts) semantics but we only have a single\nrepresentation of these. Therefore lockdep will get confused, thinking\nthe lock can cause interrupt lock inversions.\n\nSo revert it for now; the old rwlock semantics were already imperfectly\nmodeled and the qrwlock extra won't fit either.\n\nIf we want to properly fix this, I think we need to resurrect the work\nby Gautham did a few years ago that split the read and write state of\nlocks:\n\n   http://lwn.net/Articles/332801/\n\nFWIW the locking selftest that would've failed (and was reported by\nBorislav earlier) is something like:\n\n  RL(X1);\t/* IRQ-ON */\n  LOCK(A);\n  UNLOCK(A);\n  RU(X1);\n\n  IRQ_ENTER();\n  RL(X1);\t/* IN-IRQ */\n  RU(X1);\n  IRQ_EXIT();\n\nAt which point it would report that because A is an IRQ-unsafe lock we\ncan suffer the following inversion:\n\n\tCPU0\t\tCPU1\n\n\tlock(A)\n\t\t\tlock(X1)\n\t\t\tlock(A)\n\t<IRQ>\n\t lock(X1)\n\nAnd this is 'wrong' because X1 can recurse (assuming the above lock are\nin fact read-lock) but lockdep doesn't know about this.\n\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: Waiman Long <Waiman.Long@hp.com>\nCc: ego@linux.vnet.ibm.com\nCc: bp@alien8.de\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nLink: http://lkml.kernel.org/r/20140930132600.GA7444@worktop.programming.kicks-ass.net\nSigned-off-by: Ingo Molnar <mingo@kernel.org>","Peter Zijlstra",true]],"size":1000,"ref":"refs/heads/master","head":"2d65a9f48fcdf7866aab6457bc707ca233e0c791"}