rmlock: Temporarily revert commit c84bb8cd77
It appears to have introduced a regression on arm64, possibly due to the fact that the pcpu pointer is reloaded outside of the critical section in _rm_rlock(). Until this is resolved one way or another, let's revert. Reported by: Ronald Klop <ronald-lists@klop.ws> Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
cb6f722562
commit
afb44cb010
@ -451,7 +451,7 @@ _rm_rlock(struct rmlock *rm, struct rm_priotracker *tracker, int trylock)
|
||||
td->td_critnest++; /* critical_enter(); */
|
||||
atomic_interrupt_fence();
|
||||
|
||||
pc = get_pcpu();
|
||||
pc = cpuid_to_pcpu[td->td_oncpu];
|
||||
rm_tracker_add(pc, tracker);
|
||||
sched_pin();
|
||||
|
||||
@ -515,7 +515,7 @@ _rm_runlock(struct rmlock *rm, struct rm_priotracker *tracker)
|
||||
td->td_critnest++; /* critical_enter(); */
|
||||
atomic_interrupt_fence();
|
||||
|
||||
pc = get_pcpu();
|
||||
pc = cpuid_to_pcpu[td->td_oncpu];
|
||||
rm_tracker_remove(pc, tracker);
|
||||
|
||||
atomic_interrupt_fence();
|
||||
|
Loading…
Reference in New Issue
Block a user