{"push_id":849628279,"size":1,"distinct_size":1,"ref":"refs/heads/hotfix","head":"43975f0ff6fbc3d8d471af94fd46e5a7f48063c8","before":"aee38c10d00d80089a13201f91e9d4440a5cbc43","commits":[{"sha":"43975f0ff6fbc3d8d471af94fd46e5a7f48063c8","author":{"email":"1e0ce936bb9b355d257bf5790d2513c3f28be22b@linux.vnet.ibm.com","name":"Paul E. McKenney"},"message":"nohz_full: Add rcu_dyntick data for scalable detection of all-idle state\n\nThis commit adds fields to the rcu_dyntick structure that are used to\ndetect idle CPUs.  These new fields differ from the existing ones in\nthat the existing ones consider a CPU executing in user mode to be idle,\nwhere the new ones consider CPUs executing in user mode to be busy.\nThe handling of these new fields is otherwise quite similar to that for\nthe exiting fields.  This commit also adds the initialization required\nfor these fields.\n\nSo, why is usermode execution treated differently, with RCU considering\nit a quiescent state equivalent to idle, while in contrast the new\nfull-system idle state detection considers usermode execution to be\nnon-idle?\n\nIt turns out that although one of RCU's quiescent states is usermode\nexecution, it is not a full-system idle state.  This is because the\npurpose of the full-system idle state is not RCU, but rather determining\nwhen accurate timekeeping can safely be disabled.  Whenever accurate\ntimekeeping is required in a CONFIG_NO_HZ_FULL kernel, at least one\nCPU must keep the scheduling-clock tick going.  If even one CPU is\nexecuting in user mode, accurate timekeeping is requires, particularly for\narchitectures where gettimeofday() and friends do not enter the kernel.\nOnly when all CPUs are really and truly idle can accurate timekeeping be\ndisabled, allowing all CPUs to turn off the scheduling clock interrupt,\nthus greatly improving energy efficiency.\n\nThis naturally raises the question \"Why is this code in RCU rather than in\ntimekeeping?\", and the answer is that RCU has the data and infrastructure\nto efficiently make this determination.\n\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nAcked-by: Frederic Weisbecker <fweisbec@gmail.com>\nCc: Steven Rostedt <rostedt@goodmis.org>\nReviewed-by: Josh Triplett <josh@joshtriplett.org>","distinct":true,"url":"https://api.github.com/repos/dwander/N4-StockRider-detonator/commits/43975f0ff6fbc3d8d471af94fd46e5a7f48063c8"}]}