[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v8 00/74] per-CPU locks
From: |
Emilio G. Cota |
Subject: |
Re: [PATCH v8 00/74] per-CPU locks |
Date: |
Fri, 27 Mar 2020 01:14:57 -0400 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
(Apologies if I missed some Cc's; I was not Cc'ed in patch 0
so I'm blindly crafting a reply.)
On Thu, Mar 26, 2020 at 15:30:43 -0400, Robert Foley wrote:
> This is a continuation of the series created by Emilio Cota.
> We are picking up this patch set with the goal to apply
> any fixes or updates needed to get this accepted.
Thanks for picking this up!
> Listed below are the changes for this version of the patch,
> aside from the merge related changes.
>
> Changes for V8:
> - Fixed issue where in rr mode we could destroy the BQL twice.
I remember doing little to no testing in record-replay mode, so
there should be more bugs hiding in there :-)
> - Found/fixed bug that had been hit in testing previously during
> the last consideration of this patch.
> We reproduced the issue hit in the qtest: bios-tables-test.
> The issue was introduced by dropping the BQL, and found us
> (very rarely) missing the condition variable wakeup in
> qemu_tcg_rr_cpu_thread_fn().
Aah, this one:
https://patchwork.kernel.org/patch/10838149/#22516931
How did you identify the problem? Was it code inspection or using a tool
like rr? I remember this being hard to reproduce reliably.
On a related note, I've done some work to get QEMU-system to work
under thread sanitizer, since tsan now supports our longjmp-based
coroutines (hurrah!). My idea was to integrate tsan in QEMU (i.e.
bring tsan warnings to 0) before (re)trying to merge the
per-CPU lock patchset; this would minimize the potential for
regressions, which from my personal viewpoint seems like a reasonable
thing to do especially now that I have little time to work on QEMU.
If there's interest in doing the tsan work first, then I'd be
happy to send to the list as soon as this weekend the changes that
I have so far [1].
Thanks,
Emilio
[1] WIP branch: https://github.com/cota/qemu/commits/tsan
- [PATCH v8 70/74] cpu: rename all_cpu_threads_idle to qemu_tcg_rr_all_cpu_threads_idle, (continued)
- [PATCH v8 70/74] cpu: rename all_cpu_threads_idle to qemu_tcg_rr_all_cpu_threads_idle, Robert Foley, 2020/03/26
- [PATCH v8 72/74] cpus-common: release BQL earlier in run_on_cpu, Robert Foley, 2020/03/26
- [PATCH v8 71/74] cpu: protect CPU state with cpu->lock instead of the BQL, Robert Foley, 2020/03/26
- [PATCH v8 73/74] cpu: add async_run_on_cpu_no_bql, Robert Foley, 2020/03/26
- [PATCH v8 74/74] cputlb: queue async flush jobs without the BQL, Robert Foley, 2020/03/26
- Re: [PATCH v8 00/74] per-CPU locks, Aleksandar Markovic, 2020/03/26
Re: [PATCH v8 00/74] per-CPU locks,
Emilio G. Cota <=