From: Robert Foley <robert.foley@linaro.org> To: "Emilio G. Cota" <cota@braap.org> Cc: "Peter Maydell" <peter.maydell@linaro.org>, "Richard Henderson" <richard.henderson@linaro.org>, "QEMU Developers" <qemu-devel@nongnu.org>, "Peter Puhov" <peter.puhov@linaro.org>, "Paolo Bonzini" <pbonzini@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org> Subject: Re: [PATCH v8 00/74] per-CPU locks Date: Fri, 27 Mar 2020 14:30:49 -0400 Message-ID: <CAEyhzFsWc+qpWLFU3XT0Vb_jeAHbE5Bxoejq21_q-1_vZBp8iw@mail.gmail.com> (raw) In-Reply-To: <20200327051457.GA2815@t420> On Fri, 27 Mar 2020 at 01:14, Emilio G. Cota <cota@braap.org> wrote: > > (Apologies if I missed some Cc's; I was not Cc'ed in patch 0 > so I'm blindly crafting a reply.) Sorry I forgot to including you in patch 0, my bad. Will be sure to include you in the future. > 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 :-) Thanks for the tip! We will give record-replay some extra testing to hopefully shake some things out. :) > > > - 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. Same here, it was hard to reproduce. I did try to use rr on some shorter runs but no luck there. We ran it overnight on one of our ARM servers and it eventually reproduced after about 12 hours in a loop across all the bios-table-test(s) (no rr). Never got it to reproduce on an x86 server. It was fairly consistent too on the same ARM host, it always reproduced within 8-12 hrs or so, and we were able to reproduce it several times. Thanks & Regards, -Rob
next prev parent reply index Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-03-26 19:30 Robert Foley 2020-03-26 19:30 ` [PATCH v8 01/74] cpu: convert queued work to a QSIMPLEQ Robert Foley 2020-03-26 19:30 ` [PATCH v8 02/74] cpu: rename cpu->work_mutex to cpu->lock Robert Foley 2020-05-11 14:48 ` Alex Bennée 2020-05-11 16:33 ` Robert Foley 2020-03-26 19:30 ` [PATCH v8 03/74] cpu: introduce cpu_mutex_lock/unlock Robert Foley 2020-05-11 10:24 ` Alex Bennée 2020-05-11 16:09 ` Robert Foley 2020-03-26 19:30 ` [PATCH v8 04/74] cpu: make qemu_work_cond per-cpu Robert Foley 2020-03-26 19:30 ` [PATCH v8 05/74] cpu: move run_on_cpu to cpus-common Robert Foley 2020-03-26 19:30 ` [PATCH v8 06/74] cpu: introduce process_queued_cpu_work_locked Robert Foley 2020-03-26 19:30 ` [PATCH v8 07/74] cpu: make per-CPU locks an alias of the BQL in TCG rr mode Robert Foley 2020-03-26 19:30 ` [PATCH v8 08/74] tcg-runtime: define helper_cpu_halted_set Robert Foley 2020-03-26 19:30 ` [PATCH v8 09/74] ppc: convert to helper_cpu_halted_set Robert Foley 2020-03-26 19:30 ` [PATCH v8 10/74] cris: " Robert Foley 2020-03-26 19:30 ` [PATCH v8 11/74] hppa: " Robert Foley 2020-03-26 19:30 ` [PATCH v8 12/74] m68k: " Robert Foley 2020-03-26 19:30 ` [PATCH v8 13/74] alpha: " Robert Foley 2020-03-26 19:30 ` [PATCH v8 14/74] microblaze: " Robert Foley 2020-03-26 19:30 ` [PATCH v8 15/74] cpu: define cpu_halted helpers Robert Foley 2020-03-26 19:30 ` [PATCH v8 16/74] tcg-runtime: convert to cpu_halted_set Robert Foley 2020-03-26 19:30 ` [PATCH v8 17/74] hw/semihosting: " Robert Foley 2020-05-11 10:25 ` Alex Bennée 2020-03-26 19:31 ` [PATCH v8 18/74] arm: convert to cpu_halted Robert Foley 2020-03-26 19:31 ` [PATCH v8 19/74] ppc: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 20/74] sh4: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 21/74] i386: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 22/74] lm32: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 23/74] m68k: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 24/74] mips: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 25/74] riscv: " Robert Foley 2020-05-11 10:40 ` Alex Bennée 2020-05-11 16:13 ` Robert Foley 2020-03-26 19:31 ` [PATCH v8 26/74] s390x: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 27/74] sparc: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 28/74] xtensa: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 29/74] gdbstub: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 30/74] openrisc: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 31/74] cpu-exec: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 32/74] cpu: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 33/74] cpu: define cpu_interrupt_request helpers Robert Foley 2020-03-26 19:31 ` [PATCH v8 34/74] ppc: use cpu_reset_interrupt Robert Foley 2020-03-26 19:31 ` [PATCH v8 35/74] exec: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 36/74] i386: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 37/74] s390x: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 38/74] openrisc: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 39/74] arm: convert to cpu_interrupt_request Robert Foley 2020-03-26 19:31 ` [PATCH v8 40/74] i386: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 41/74] i386/kvm: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 42/74] i386/hax-all: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 43/74] i386/whpx-all: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 44/74] i386/hvf: convert to cpu_request_interrupt Robert Foley 2020-03-26 19:31 ` [PATCH v8 45/74] ppc: convert to cpu_interrupt_request Robert Foley 2020-03-26 19:31 ` [PATCH v8 46/74] sh4: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 47/74] cris: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 48/74] hppa: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 49/74] lm32: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 50/74] m68k: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 51/74] mips: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 52/74] nios: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 53/74] s390x: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 54/74] alpha: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 55/74] moxie: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 56/74] sparc: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 57/74] openrisc: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 58/74] unicore32: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 59/74] microblaze: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 60/74] accel/tcg: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 61/74] cpu: convert to interrupt_request Robert Foley 2020-03-26 19:31 ` [PATCH v8 62/74] cpu: call .cpu_has_work with the CPU lock held Robert Foley 2020-03-26 19:31 ` [PATCH v8 63/74] cpu: introduce cpu_has_work_with_iothread_lock Robert Foley 2020-03-26 19:31 ` [PATCH v8 64/74] ppc: convert to cpu_has_work_with_iothread_lock Robert Foley 2020-03-26 19:31 ` [PATCH v8 65/74] mips: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 66/74] s390x: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 67/74] riscv: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 68/74] sparc: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 69/74] xtensa: " Robert Foley 2020-03-26 19:31 ` [PATCH v8 70/74] cpu: rename all_cpu_threads_idle to qemu_tcg_rr_all_cpu_threads_idle Robert Foley 2020-03-26 19:31 ` [PATCH v8 71/74] cpu: protect CPU state with cpu->lock instead of the BQL Robert Foley 2020-03-26 19:31 ` [PATCH v8 72/74] cpus-common: release BQL earlier in run_on_cpu Robert Foley 2020-03-26 19:31 ` [PATCH v8 73/74] cpu: add async_run_on_cpu_no_bql Robert Foley 2020-03-26 19:31 ` [PATCH v8 74/74] cputlb: queue async flush jobs without the BQL Robert Foley 2020-05-12 16:27 ` Alex Bennée 2020-05-12 19:26 ` Robert Foley 2020-05-18 13:46 ` Robert Foley 2020-05-20 4:46 ` Emilio G. Cota 2020-05-20 15:01 ` Robert Foley 2020-05-21 14:17 ` Robert Foley 2020-05-12 18:38 ` Alex Bennée 2020-03-26 22:58 ` [PATCH v8 00/74] per-CPU locks Aleksandar Markovic 2020-03-27 9:39 ` Alex Bennée 2020-03-27 9:50 ` Aleksandar Markovic 2020-03-27 10:24 ` Aleksandar Markovic 2020-03-27 17:21 ` Robert Foley 2020-03-27 5:14 ` Emilio G. Cota 2020-03-27 10:59 ` Philippe Mathieu-Daudé 2020-03-30 8:57 ` Stefan Hajnoczi 2020-03-27 18:23 ` Alex Bennée 2020-03-27 18:30 ` Robert Foley [this message] 2020-05-12 16:29 ` Alex Bennée
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CAEyhzFsWc+qpWLFU3XT0Vb_jeAHbE5Bxoejq21_q-1_vZBp8iw@mail.gmail.com \ --to=robert.foley@linaro.org \ --cc=alex.bennee@linaro.org \ --cc=cota@braap.org \ --cc=pbonzini@redhat.com \ --cc=peter.maydell@linaro.org \ --cc=peter.puhov@linaro.org \ --cc=qemu-devel@nongnu.org \ --cc=richard.henderson@linaro.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
QEMU-Devel Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/qemu-devel/0 qemu-devel/git/0.git git clone --mirror https://lore.kernel.org/qemu-devel/1 qemu-devel/git/1.git git clone --mirror https://lore.kernel.org/qemu-devel/2 qemu-devel/git/2.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 qemu-devel qemu-devel/ https://lore.kernel.org/qemu-devel \ qemu-devel@nongnu.org public-inbox-index qemu-devel Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.nongnu.qemu-devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git