An error occurred while fetching folder content.
ring-buffer: Fix infinite spin in reading buffer
Steven Rostedt (Red Hat) authored
commit 24607f11 upstream.

Commit 651e22f2 "ring-buffer: Always reset iterator to reader page"
fixed one bug but in the process caused another one. The reset is to
update the header page, but that fix also changed the way the cached
reads were updated. The cache reads are used to test if an iterator
needs to be updated or not.

A ring buffer iterator, when created, disables writes to the ring buffer
but does not stop other readers or consuming reads from happening.
Although all readers are synchronized via a lock, they are only
synchronized when in the ring buffer functions. Those functions may
be called by any number of readers. The iterator continues down when
its not interrupted by a consuming reader. If a consuming read
occurs, the iterator starts from the beginning of the buffer.

The way the iterator sees that a consuming read has happened since
its last read is by checking the reader "cache". The cache holds the
la...
70e9e520
Name Last commit Last update
..
debug kernel/printk: use symbolic defines for console loglevels
events perf: fix perf bug in fork()
gcov gcov: add support for GCC 4.9
irq genirq: Fix memory leak when calling irq_free_hwirqs()
locking locking/rwsem: Add CONFIG_RWSEM_SPIN_ON_OWNER
power PM / sleep: fix freeze_ops NULL pointer dereferences
printk kernel/printk/printk.c: fix faulty logic in the case of recursive printk
rcu Josh has moved
sched sched: Fix sched_setparam() policy == -1 logic
time alarmtimer: Lock k_itimer during timer callback
trace ring-buffer: Fix infinite spin in reading buffer
.gitignore Ignore generated file kernel/x509_certificate_list
Kconfig.freezer container freezer: implement freezer cgroup subsystem
Kconfig.hz kernel: remove CONFIG_USE_GENERIC_SMP_HELPERS
Kconfig.locks locking/rwsem: Add CONFIG_RWSEM_SPIN_ON_OWNER
Kconfig.preempt locking/kconfig: Simplify INLINE_SPIN_UNLOCK usage
Makefile Merge branch 'x86-asmlinkage-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
acct.c ipc, kernel: clear whitespace
async.c async: rename and redefine async_func_ptr
audit.c CAPABILITIES: remove undefined caps from all processes
audit.h audit: Use struct net not pid_t to remember the network namespce to reply in
audit_tree.c inotify: Fix reporting of cookies for inotify events
audit_watch.c inotify: Fix reporting of cookies for inotify events
auditfilter.c Merge git://git.infradead.org/users/eparis/audit
auditsc.c auditsc: audit_krule mask accesses need bounds checking
backtracetest.c
bounds.c
capability.c
cgroup.c
cgroup_freezer.c
compat.c
configs.c
context_tracking.c
cpu.c
cpu_pm.c
cpuset.c
crash_dump.c
cred.c
delayacct.c
dma.c
elfcore.c
exec_domain.c
exit.c
extable.c
fork.c
freezer.c
futex.c
futex_compat.c
groups.c
hrtimer.c
hung_task.c
irq_work.c
itimer.c
jump_label.c
kallsyms.c
kcmp.c
kexec.c
kmod.c
kprobes.c
ksysfs.c
kthread.c
latencytop.c
module-internal.h
module.c
module_signing.c
notifier.c
nsproxy.c
padata.c
panic.c
params.c
pid.c
pid_namespace.c
posix-cpu-timers.c
posix-timers.c
profile.c
ptrace.c
range.c
reboot.c
relay.c
res_counter.c
resource.c
seccomp.c
signal.c
smp.c
smpboot.c
smpboot.h
softirq.c
stacktrace.c
stop_machine.c
sys.c
sys_ni.c
sysctl.c
sysctl_binary.c
system_certificates.S
system_keyring.c
task_work.c
taskstats.c
test_kprobes.c
time.c
timeconst.bc