On Thu, 16 Sept 2021 at 17:45, David Laight <David.Laight@xxxxxxxxxx> wrote: > > From: Kefeng Wang > > Sent: 16 September 2021 02:21 > > > > We found kfence_test will fails on ARM64 with this patch with/without > > CONFIG_DETECT_HUNG_TASK, > > > > Any thought ? > > > ... > > >> /* Enable static key, and await allocation to happen. */ > > >> static_branch_enable(&kfence_allocation_key); > > >> - wait_event_timeout(allocation_wait, atomic_read(&kfence_allocation_gate), HZ); > > >> + if (sysctl_hung_task_timeout_secs) { > > >> + /* > > >> + * During low activity with no allocations we might wait a > > >> + * while; let's avoid the hung task warning. > > >> + */ > > >> + wait_event_timeout(allocation_wait, atomic_read(&kfence_allocation_gate), > > >> + sysctl_hung_task_timeout_secs * HZ / 2); > > >> + } else { > > >> + wait_event(allocation_wait, atomic_read(&kfence_allocation_gate)); > > >> + } > > >> /* Disable static key and reset timer. */ > > >> static_branch_disable(&kfence_allocation_key); > > It has replaced a wait_event_timeout() with a wait_event(). > > That probably isn't intended. > Although I'd expect their to be some test for the wait being > signalled or timing out. It is intended -- there's a wake_up() for this. See the whole patch series for explanation. The whole reason we had the timeout was to avoid the hung task warnings, but we can do better if there is no hung task warning enabled.