This is just an RFC patch for now. I am still running performance numbers
and see if this method of switching is good enough or not. I did one run
and seemed to get higher performance on deeper queue depths. There were
few tests where I did not match lower queue depth performance with
no thread
On Fri, Apr 23, 2021 at 6:07 AM Vivek Goyal wrote:
>
> Hi,
>
> This is V4 of the patches. Posted V3 here.
>
> https://lore.kernel.org/linux-fsdevel/20210419213636.1514816-1-vgo...@redhat.com/
>
> Changes since V3 are.
>
> - Renamed "enum dax_entry_wake_mode" to "enum dax_wake_mode" (Matthew
The `set_creds` function returns a pair of ScopedUid/ScopedGid objects
(well, they're `Option`) that change the effective uid and
gid of the calling thread for the duration of their scope. That is, once
they're dropped, they "pop" the new uid/gid back to uid/gid 0.
Trouble is, right now, these
Dan mentioned that he is not very fond of passing around a boolean true/false
to specify if only next waiter should be woken up or all waiters should be
woken up. He instead prefers that we introduce an enum and make it very
explicity at the callsite itself. Easier to read code.
This patch should
Hi,
This is V4 of the patches. Posted V3 here.
https://lore.kernel.org/linux-fsdevel/20210419213636.1514816-1-vgo...@redhat.com/
Changes since V3 are.
- Renamed "enum dax_entry_wake_mode" to "enum dax_wake_mode" (Matthew Wilcox)
- Changed description of WAKE_NEXT and WAKE_ALL (Jan Kara)
- Got
As of now put_unlocked_entry() always wakes up next waiter. In next
patches we want to wake up all waiters at one callsite. Hence, add a
parameter to the function.
This patch does not introduce any change of behavior.
Reviewed-by: Greg Kurz
Reviewed-by: Jan Kara
Suggested-by: Dan Williams
I am seeing missed wakeups which ultimately lead to a deadlock when I am
using virtiofs with DAX enabled and running "make -j". I had to mount
virtiofs as rootfs and also reduce to dax window size to 256M to reproduce
the problem consistently.
So here is the problem. put_unlocked_entry() wakes up