* [kvm-unit-tests PATCH v2 0/4] enable LPI and ITS for TCG @ 2021-05-25 17:26 Alex Bennée 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 1/4] arm64: remove invalid check from its-trigger test Alex Bennée ` (3 more replies) 0 siblings, 4 replies; 17+ messages in thread From: Alex Bennée @ 2021-05-25 17:26 UTC (permalink / raw) To: kvm Cc: shashi.mallela, alexandru.elisei, eric.auger, qemu-arm, linux-arm-kernel, kvmarm, christoffer.dall, maz, Alex Bennée This is a companion to Shashi's series enabling LPI and ITS features for QEMU's TCG emulation. This is part of our push for a sbsa-ref platform which needs a more modern set of features. Since the last posting this is now at v3: From: Shashi Mallela <shashi.mallela@linaro.org> Subject: [PATCH v3 0/8] GICv3 LPI and ITS feature implementation Date: Thu, 29 Apr 2021 19:41:53 -0400 Message-Id: <20210429234201.125565-1-shashi.mallela@linaro.org> The only real change from the last version was to drop the IMPDEF behaviour check instead of trying to work around it for the TCG case. Please review. Alex Bennée (4): arm64: remove invalid check from its-trigger test scripts/arch-run: don't use deprecated server/nowait options arm64: enable its-migration tests for TCG arm64: split its-migrate-unmapped-collection into KVM and TCG variants scripts/arch-run.bash | 4 ++-- arm/gic.c | 22 +++++++++++++--------- arm/unittests.cfg | 12 +++++++++--- 3 files changed, 24 insertions(+), 14 deletions(-) -- 2.20.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 17+ messages in thread
* [kvm-unit-tests PATCH v2 1/4] arm64: remove invalid check from its-trigger test 2021-05-25 17:26 [kvm-unit-tests PATCH v2 0/4] enable LPI and ITS for TCG Alex Bennée @ 2021-05-25 17:26 ` Alex Bennée 2021-05-26 15:06 ` Auger Eric 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 2/4] scripts/arch-run: don't use deprecated server/nowait options Alex Bennée ` (2 subsequent siblings) 3 siblings, 1 reply; 17+ messages in thread From: Alex Bennée @ 2021-05-25 17:26 UTC (permalink / raw) To: kvm Cc: shashi.mallela, alexandru.elisei, eric.auger, qemu-arm, linux-arm-kernel, kvmarm, christoffer.dall, maz, Alex Bennée While an IRQ is not "guaranteed to be visible until an appropriate invalidation" it doesn't stop the actual implementation delivering it earlier if it wants to. This is the case for QEMU's TCG and as tests should only be checking architectural compliance this check is invalid. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Cc: Shashi Mallela <shashi.mallela@linaro.org> --- arm/gic.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/arm/gic.c b/arm/gic.c index 98135ef..bef061a 100644 --- a/arm/gic.c +++ b/arm/gic.c @@ -732,21 +732,19 @@ static void test_its_trigger(void) "dev2/eventid=20 does not trigger any LPI"); /* - * re-enable the LPI but willingly do not call invall - * so the change in config is not taken into account. - * The LPI should not hit + * re-enable the LPI but willingly do not call invall so the + * change in config is not taken into account. While "A change + * to the LPI configuration is not guaranteed to be visible + * until an appropriate invalidation operation has completed" + * hardware that doesn't implement caches may have delivered + * the event at any point after the enabling. */ gicv3_lpi_set_config(8195, LPI_PROP_DEFAULT); stats_reset(); cpumask_clear(&mask); its_send_int(dev2, 20); - wait_for_interrupts(&mask); - report(check_acked(&mask, -1, -1), - "dev2/eventid=20 still does not trigger any LPI"); /* Now call the invall and check the LPI hits */ - stats_reset(); - cpumask_clear(&mask); cpumask_set_cpu(3, &mask); its_send_invall(col3); wait_for_interrupts(&mask); -- 2.20.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [kvm-unit-tests PATCH v2 1/4] arm64: remove invalid check from its-trigger test 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 1/4] arm64: remove invalid check from its-trigger test Alex Bennée @ 2021-05-26 15:06 ` Auger Eric 0 siblings, 0 replies; 17+ messages in thread From: Auger Eric @ 2021-05-26 15:06 UTC (permalink / raw) To: Alex Bennée, kvm Cc: shashi.mallela, alexandru.elisei, qemu-arm, linux-arm-kernel, kvmarm, christoffer.dall, maz Hi Alex, On 5/25/21 7:26 PM, Alex Bennée wrote: > While an IRQ is not "guaranteed to be visible until an appropriate > invalidation" it doesn't stop the actual implementation delivering it > earlier if it wants to. This is the case for QEMU's TCG and as tests > should only be checking architectural compliance this check is > invalid. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Cc: Shashi Mallela <shashi.mallela@linaro.org> > --- > arm/gic.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/arm/gic.c b/arm/gic.c > index 98135ef..bef061a 100644 > --- a/arm/gic.c > +++ b/arm/gic.c > @@ -732,21 +732,19 @@ static void test_its_trigger(void) > "dev2/eventid=20 does not trigger any LPI"); > > /* > - * re-enable the LPI but willingly do not call invall > - * so the change in config is not taken into account. > - * The LPI should not hit > + * re-enable the LPI but willingly do not call invall so the > + * change in config is not taken into account. While "A change So you may need to remove the above comment, ie. "but willingly do not call invall so the change in config is not taken into account." as the conclusion of this thread is it can be taken into account immediatly. and also concat the comment below, "/* Now call the invall and check the LPI hits */" This is an "atomic" test now? with that change Reviewed-by: Eric Auger <eric.auger@redhat.com> Thanks Eric > + * to the LPI configuration is not guaranteed to be visible > + * until an appropriate invalidation operation has completed" > + * hardware that doesn't implement caches may have delivered > + * the event at any point after the enabling. > */ > gicv3_lpi_set_config(8195, LPI_PROP_DEFAULT); > stats_reset(); > cpumask_clear(&mask); > its_send_int(dev2, 20); > - wait_for_interrupts(&mask); > - report(check_acked(&mask, -1, -1), > - "dev2/eventid=20 still does not trigger any LPI"); > > /* Now call the invall and check the LPI hits */ > - stats_reset(); > - cpumask_clear(&mask); > cpumask_set_cpu(3, &mask); > its_send_invall(col3); > wait_for_interrupts(&mask); > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 17+ messages in thread
* [kvm-unit-tests PATCH v2 2/4] scripts/arch-run: don't use deprecated server/nowait options 2021-05-25 17:26 [kvm-unit-tests PATCH v2 0/4] enable LPI and ITS for TCG Alex Bennée 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 1/4] arm64: remove invalid check from its-trigger test Alex Bennée @ 2021-05-25 17:26 ` Alex Bennée 2021-05-26 14:23 ` Zenghui Yu ` (3 more replies) 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 3/4] arm64: enable its-migration tests for TCG Alex Bennée 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 4/4] arm64: split its-migrate-unmapped-collection into KVM and TCG variants Alex Bennée 3 siblings, 4 replies; 17+ messages in thread From: Alex Bennée @ 2021-05-25 17:26 UTC (permalink / raw) To: kvm Cc: shashi.mallela, alexandru.elisei, eric.auger, qemu-arm, linux-arm-kernel, kvmarm, christoffer.dall, maz, Alex Bennée The very fact that QEMU drops the deprecation warning while running is enough to confuse the its-migration test into failing. The boolean options server and wait have accepted the long form options for a long time. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Cc: Shashi Mallela <shashi.mallela@linaro.org> --- scripts/arch-run.bash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/arch-run.bash b/scripts/arch-run.bash index 5997e38..70693f2 100644 --- a/scripts/arch-run.bash +++ b/scripts/arch-run.bash @@ -122,14 +122,14 @@ run_migration () trap 'kill 0; exit 2' INT TERM trap 'rm -f ${migout1} ${migsock} ${qmp1} ${qmp2} ${fifo}' RETURN EXIT - eval "$@" -chardev socket,id=mon1,path=${qmp1},server,nowait \ + eval "$@" -chardev socket,id=mon1,path=${qmp1},server=on,wait=off \ -mon chardev=mon1,mode=control | tee ${migout1} & # We have to use cat to open the named FIFO, because named FIFO's, unlike # pipes, will block on open() until the other end is also opened, and that # totally breaks QEMU... mkfifo ${fifo} - eval "$@" -chardev socket,id=mon2,path=${qmp2},server,nowait \ + eval "$@" -chardev socket,id=mon2,path=${qmp2},server=on,wait=off \ -mon chardev=mon2,mode=control -incoming unix:${migsock} < <(cat ${fifo}) & incoming_pid=`jobs -l %+ | awk '{print$2}'` -- 2.20.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [kvm-unit-tests PATCH v2 2/4] scripts/arch-run: don't use deprecated server/nowait options 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 2/4] scripts/arch-run: don't use deprecated server/nowait options Alex Bennée @ 2021-05-26 14:23 ` Zenghui Yu 2021-05-26 15:05 ` Auger Eric ` (2 subsequent siblings) 3 siblings, 0 replies; 17+ messages in thread From: Zenghui Yu @ 2021-05-26 14:23 UTC (permalink / raw) To: Alex Bennée Cc: kvm, shashi.mallela, alexandru.elisei, eric.auger, qemu-arm, linux-arm-kernel, kvmarm, christoffer.dall, maz On 2021/5/26 1:26, Alex Bennée wrote: > The very fact that QEMU drops the deprecation warning while running is > enough to confuse the its-migration test into failing. The boolean > options server and wait have accepted the long form options for a long > time. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Cc: Shashi Mallela <shashi.mallela@linaro.org> This works for me. Tested-by: Zenghui Yu <yuzenghui@huawei.com> _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [kvm-unit-tests PATCH v2 2/4] scripts/arch-run: don't use deprecated server/nowait options 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 2/4] scripts/arch-run: don't use deprecated server/nowait options Alex Bennée 2021-05-26 14:23 ` Zenghui Yu @ 2021-05-26 15:05 ` Auger Eric 2021-06-01 12:27 ` Andrew Jones 2021-07-13 20:47 ` Andrew Jones 3 siblings, 0 replies; 17+ messages in thread From: Auger Eric @ 2021-05-26 15:05 UTC (permalink / raw) To: Alex Bennée, kvm Cc: shashi.mallela, alexandru.elisei, qemu-arm, linux-arm-kernel, kvmarm, christoffer.dall, maz Hi Alex, On 5/25/21 7:26 PM, Alex Bennée wrote: > The very fact that QEMU drops the deprecation warning while running is > enough to confuse the its-migration test into failing. The boolean > options server and wait have accepted the long form options for a long > time. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Cc: Shashi Mallela <shashi.mallela@linaro.org> Reviewed-by: Eric Auger <eric.auger@redhat.com> Eric > --- > scripts/arch-run.bash | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/scripts/arch-run.bash b/scripts/arch-run.bash > index 5997e38..70693f2 100644 > --- a/scripts/arch-run.bash > +++ b/scripts/arch-run.bash > @@ -122,14 +122,14 @@ run_migration () > trap 'kill 0; exit 2' INT TERM > trap 'rm -f ${migout1} ${migsock} ${qmp1} ${qmp2} ${fifo}' RETURN EXIT > > - eval "$@" -chardev socket,id=mon1,path=${qmp1},server,nowait \ > + eval "$@" -chardev socket,id=mon1,path=${qmp1},server=on,wait=off \ > -mon chardev=mon1,mode=control | tee ${migout1} & > > # We have to use cat to open the named FIFO, because named FIFO's, unlike > # pipes, will block on open() until the other end is also opened, and that > # totally breaks QEMU... > mkfifo ${fifo} > - eval "$@" -chardev socket,id=mon2,path=${qmp2},server,nowait \ > + eval "$@" -chardev socket,id=mon2,path=${qmp2},server=on,wait=off \ > -mon chardev=mon2,mode=control -incoming unix:${migsock} < <(cat ${fifo}) & > incoming_pid=`jobs -l %+ | awk '{print$2}'` > > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [kvm-unit-tests PATCH v2 2/4] scripts/arch-run: don't use deprecated server/nowait options 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 2/4] scripts/arch-run: don't use deprecated server/nowait options Alex Bennée 2021-05-26 14:23 ` Zenghui Yu 2021-05-26 15:05 ` Auger Eric @ 2021-06-01 12:27 ` Andrew Jones 2021-07-13 20:47 ` Andrew Jones 3 siblings, 0 replies; 17+ messages in thread From: Andrew Jones @ 2021-06-01 12:27 UTC (permalink / raw) To: Alex Bennée Cc: kvm, maz, shashi.mallela, qemu-arm, kvmarm, linux-arm-kernel On Tue, May 25, 2021 at 06:26:26PM +0100, Alex Bennée wrote: > The very fact that QEMU drops the deprecation warning while running is > enough to confuse the its-migration test into failing. The boolean > options server and wait have accepted the long form options for a long > time. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Cc: Shashi Mallela <shashi.mallela@linaro.org> > --- > scripts/arch-run.bash | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > Reviewed-by: Andrew Jones <drjones@redhat.com> _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [kvm-unit-tests PATCH v2 2/4] scripts/arch-run: don't use deprecated server/nowait options 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 2/4] scripts/arch-run: don't use deprecated server/nowait options Alex Bennée ` (2 preceding siblings ...) 2021-06-01 12:27 ` Andrew Jones @ 2021-07-13 20:47 ` Andrew Jones 3 siblings, 0 replies; 17+ messages in thread From: Andrew Jones @ 2021-07-13 20:47 UTC (permalink / raw) To: Alex Bennée Cc: kvm, maz, shashi.mallela, qemu-arm, kvmarm, linux-arm-kernel, pbonzini On Tue, May 25, 2021 at 06:26:26PM +0100, Alex Bennée wrote: > The very fact that QEMU drops the deprecation warning while running is > enough to confuse the its-migration test into failing. The boolean > options server and wait have accepted the long form options for a long > time. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Cc: Shashi Mallela <shashi.mallela@linaro.org> > --- > scripts/arch-run.bash | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/scripts/arch-run.bash b/scripts/arch-run.bash > index 5997e38..70693f2 100644 > --- a/scripts/arch-run.bash > +++ b/scripts/arch-run.bash > @@ -122,14 +122,14 @@ run_migration () > trap 'kill 0; exit 2' INT TERM > trap 'rm -f ${migout1} ${migsock} ${qmp1} ${qmp2} ${fifo}' RETURN EXIT > > - eval "$@" -chardev socket,id=mon1,path=${qmp1},server,nowait \ > + eval "$@" -chardev socket,id=mon1,path=${qmp1},server=on,wait=off \ > -mon chardev=mon1,mode=control | tee ${migout1} & > > # We have to use cat to open the named FIFO, because named FIFO's, unlike > # pipes, will block on open() until the other end is also opened, and that > # totally breaks QEMU... > mkfifo ${fifo} > - eval "$@" -chardev socket,id=mon2,path=${qmp2},server,nowait \ > + eval "$@" -chardev socket,id=mon2,path=${qmp2},server=on,wait=off \ > -mon chardev=mon2,mode=control -incoming unix:${migsock} < <(cat ${fifo}) & > incoming_pid=`jobs -l %+ | awk '{print$2}'` > > -- > 2.20.1 > > _______________________________________________ > kvmarm mailing list > kvmarm@lists.cs.columbia.edu > https://lists.cs.columbia.edu/mailman/listinfo/kvmarm Applied to misc/queue https://gitlab.com/rhdrjones/kvm-unit-tests/-/commits/misc/queue Thanks, drew _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 17+ messages in thread
* [kvm-unit-tests PATCH v2 3/4] arm64: enable its-migration tests for TCG 2021-05-25 17:26 [kvm-unit-tests PATCH v2 0/4] enable LPI and ITS for TCG Alex Bennée 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 1/4] arm64: remove invalid check from its-trigger test Alex Bennée 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 2/4] scripts/arch-run: don't use deprecated server/nowait options Alex Bennée @ 2021-05-25 17:26 ` Alex Bennée 2021-05-26 15:05 ` Auger Eric 2021-06-01 13:23 ` Andrew Jones 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 4/4] arm64: split its-migrate-unmapped-collection into KVM and TCG variants Alex Bennée 3 siblings, 2 replies; 17+ messages in thread From: Alex Bennée @ 2021-05-25 17:26 UTC (permalink / raw) To: kvm Cc: shashi.mallela, alexandru.elisei, eric.auger, qemu-arm, linux-arm-kernel, kvmarm, christoffer.dall, maz, Alex Bennée With the support for TCG emulated GIC we can also test these now. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Cc: Shashi Mallela <shashi.mallela@linaro.org> --- arm/unittests.cfg | 2 -- 1 file changed, 2 deletions(-) diff --git a/arm/unittests.cfg b/arm/unittests.cfg index f776b66..1a39428 100644 --- a/arm/unittests.cfg +++ b/arm/unittests.cfg @@ -194,7 +194,6 @@ arch = arm64 [its-migration] file = gic.flat smp = $MAX_SMP -accel = kvm extra_params = -machine gic-version=3 -append 'its-migration' groups = its migration arch = arm64 @@ -202,7 +201,6 @@ arch = arm64 [its-pending-migration] file = gic.flat smp = $MAX_SMP -accel = kvm extra_params = -machine gic-version=3 -append 'its-pending-migration' groups = its migration arch = arm64 -- 2.20.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [kvm-unit-tests PATCH v2 3/4] arm64: enable its-migration tests for TCG 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 3/4] arm64: enable its-migration tests for TCG Alex Bennée @ 2021-05-26 15:05 ` Auger Eric 2021-06-01 13:23 ` Andrew Jones 1 sibling, 0 replies; 17+ messages in thread From: Auger Eric @ 2021-05-26 15:05 UTC (permalink / raw) To: Alex Bennée, kvm Cc: shashi.mallela, alexandru.elisei, qemu-arm, linux-arm-kernel, kvmarm, christoffer.dall, maz Hi Alex, On 5/25/21 7:26 PM, Alex Bennée wrote: > With the support for TCG emulated GIC we can also test these now. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Cc: Shashi Mallela <shashi.mallela@linaro.org> Reviewed-by: Eric Auger <eric.auger@redhat.com> Eric > --- > arm/unittests.cfg | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/arm/unittests.cfg b/arm/unittests.cfg > index f776b66..1a39428 100644 > --- a/arm/unittests.cfg > +++ b/arm/unittests.cfg > @@ -194,7 +194,6 @@ arch = arm64 > [its-migration] > file = gic.flat > smp = $MAX_SMP > -accel = kvm > extra_params = -machine gic-version=3 -append 'its-migration' > groups = its migration > arch = arm64 > @@ -202,7 +201,6 @@ arch = arm64 > [its-pending-migration] > file = gic.flat > smp = $MAX_SMP > -accel = kvm > extra_params = -machine gic-version=3 -append 'its-pending-migration' > groups = its migration > arch = arm64 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [kvm-unit-tests PATCH v2 3/4] arm64: enable its-migration tests for TCG 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 3/4] arm64: enable its-migration tests for TCG Alex Bennée 2021-05-26 15:05 ` Auger Eric @ 2021-06-01 13:23 ` Andrew Jones 1 sibling, 0 replies; 17+ messages in thread From: Andrew Jones @ 2021-06-01 13:23 UTC (permalink / raw) To: Alex Bennée Cc: kvm, maz, shashi.mallela, qemu-arm, kvmarm, linux-arm-kernel On Tue, May 25, 2021 at 06:26:27PM +0100, Alex Bennée wrote: > With the support for TCG emulated GIC we can also test these now. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Cc: Shashi Mallela <shashi.mallela@linaro.org> > --- > arm/unittests.cfg | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/arm/unittests.cfg b/arm/unittests.cfg > index f776b66..1a39428 100644 > --- a/arm/unittests.cfg > +++ b/arm/unittests.cfg > @@ -194,7 +194,6 @@ arch = arm64 > [its-migration] > file = gic.flat > smp = $MAX_SMP > -accel = kvm > extra_params = -machine gic-version=3 -append 'its-migration' > groups = its migration > arch = arm64 > @@ -202,7 +201,6 @@ arch = arm64 > [its-pending-migration] > file = gic.flat > smp = $MAX_SMP > -accel = kvm > extra_params = -machine gic-version=3 -append 'its-pending-migration' > groups = its migration > arch = arm64 > -- > 2.20.1 > > _______________________________________________ > kvmarm mailing list > kvmarm@lists.cs.columbia.edu > https://lists.cs.columbia.edu/mailman/listinfo/kvmarm Reviewed-by: Andrew Jones <drjones@redhat.com> _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 17+ messages in thread
* [kvm-unit-tests PATCH v2 4/4] arm64: split its-migrate-unmapped-collection into KVM and TCG variants 2021-05-25 17:26 [kvm-unit-tests PATCH v2 0/4] enable LPI and ITS for TCG Alex Bennée ` (2 preceding siblings ...) 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 3/4] arm64: enable its-migration tests for TCG Alex Bennée @ 2021-05-25 17:26 ` Alex Bennée 2021-05-26 16:33 ` Auger Eric 2021-06-01 13:21 ` Andrew Jones 3 siblings, 2 replies; 17+ messages in thread From: Alex Bennée @ 2021-05-25 17:26 UTC (permalink / raw) To: kvm Cc: shashi.mallela, alexandru.elisei, eric.auger, qemu-arm, linux-arm-kernel, kvmarm, christoffer.dall, maz, Alex Bennée When running the test in TCG we are basically running on bare metal so don't rely on having a particular kernel errata applied. You might wonder why we handle this with a totally new test name instead of adjusting the append to take an extra parameter? Well the run_migration shell script uses eval "$@" which unwraps the -append leading to any second parameter being split and leaving QEMU very confused and the test hanging. This seemed simpler than re-writing all the test running logic in something sane ;-) Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Cc: Shashi Mallela <shashi.mallela@linaro.org> --- arm/gic.c | 8 +++++++- arm/unittests.cfg | 10 +++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/arm/gic.c b/arm/gic.c index bef061a..0fce2a4 100644 --- a/arm/gic.c +++ b/arm/gic.c @@ -36,6 +36,7 @@ static struct gic *gic; static int acked[NR_CPUS], spurious[NR_CPUS]; static int irq_sender[NR_CPUS], irq_number[NR_CPUS]; static cpumask_t ready; +static bool under_tcg; static void nr_cpu_check(int nr) { @@ -834,7 +835,7 @@ static void test_migrate_unmapped_collection(void) goto do_migrate; } - if (!errata(ERRATA_UNMAPPED_COLLECTIONS)) { + if (!errata(ERRATA_UNMAPPED_COLLECTIONS) && !under_tcg) { report_skip("Skipping test, as this test hangs without the fix. " "Set %s=y to enable.", ERRATA_UNMAPPED_COLLECTIONS); test_skipped = true; @@ -1005,6 +1006,11 @@ int main(int argc, char **argv) report_prefix_push(argv[1]); test_migrate_unmapped_collection(); report_prefix_pop(); + } else if (!strcmp(argv[1], "its-migrate-unmapped-collection-tcg")) { + under_tcg = true; + report_prefix_push(argv[1]); + test_migrate_unmapped_collection(); + report_prefix_pop(); } else if (strcmp(argv[1], "its-introspection") == 0) { report_prefix_push(argv[1]); test_its_introspection(); diff --git a/arm/unittests.cfg b/arm/unittests.cfg index 1a39428..adc1bbf 100644 --- a/arm/unittests.cfg +++ b/arm/unittests.cfg @@ -205,7 +205,7 @@ extra_params = -machine gic-version=3 -append 'its-pending-migration' groups = its migration arch = arm64 -[its-migrate-unmapped-collection] +[its-migrate-unmapped-collection-kvm] file = gic.flat smp = $MAX_SMP accel = kvm @@ -213,6 +213,14 @@ extra_params = -machine gic-version=3 -append 'its-migrate-unmapped-collection' groups = its migration arch = arm64 +[its-migrate-unmapped-collection-tcg] +file = gic.flat +smp = $MAX_SMP +accel = tcg +extra_params = -machine gic-version=3 -append 'its-migrate-unmapped-collection-tcg' +groups = its migration +arch = arm64 + # Test PSCI emulation [psci] file = psci.flat -- 2.20.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [kvm-unit-tests PATCH v2 4/4] arm64: split its-migrate-unmapped-collection into KVM and TCG variants 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 4/4] arm64: split its-migrate-unmapped-collection into KVM and TCG variants Alex Bennée @ 2021-05-26 16:33 ` Auger Eric 2021-06-01 16:49 ` Alex Bennée 2021-06-01 13:21 ` Andrew Jones 1 sibling, 1 reply; 17+ messages in thread From: Auger Eric @ 2021-05-26 16:33 UTC (permalink / raw) To: Alex Bennée, kvm Cc: shashi.mallela, alexandru.elisei, qemu-arm, linux-arm-kernel, kvmarm, christoffer.dall, maz Hi Alex, On 5/25/21 7:26 PM, Alex Bennée wrote: > When running the test in TCG we are basically running on bare metal so > don't rely on having a particular kernel errata applied. > > You might wonder why we handle this with a totally new test name > instead of adjusting the append to take an extra parameter? Well the > run_migration shell script uses eval "$@" which unwraps the -append > leading to any second parameter being split and leaving QEMU very > confused and the test hanging. This seemed simpler than re-writing all > the test running logic in something sane ;-) there is lib/s390x/vm.h:bool vm_is_tcg(void) but I don't see any particular ID we could use to differentiate both the KVM and the TCG mode, do you? without a more elegant solution, Reviewed-by: Eric Auger <eric.auger@redhat.com> Thanks Eric > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Cc: Shashi Mallela <shashi.mallela@linaro.org> > --- > arm/gic.c | 8 +++++++- > arm/unittests.cfg | 10 +++++++++- > 2 files changed, 16 insertions(+), 2 deletions(-) > > diff --git a/arm/gic.c b/arm/gic.c > index bef061a..0fce2a4 100644 > --- a/arm/gic.c > +++ b/arm/gic.c > @@ -36,6 +36,7 @@ static struct gic *gic; > static int acked[NR_CPUS], spurious[NR_CPUS]; > static int irq_sender[NR_CPUS], irq_number[NR_CPUS]; > static cpumask_t ready; > +static bool under_tcg; > > static void nr_cpu_check(int nr) > { > @@ -834,7 +835,7 @@ static void test_migrate_unmapped_collection(void) > goto do_migrate; > } > > - if (!errata(ERRATA_UNMAPPED_COLLECTIONS)) { > + if (!errata(ERRATA_UNMAPPED_COLLECTIONS) && !under_tcg) { > report_skip("Skipping test, as this test hangs without the fix. " > "Set %s=y to enable.", ERRATA_UNMAPPED_COLLECTIONS); > test_skipped = true; > @@ -1005,6 +1006,11 @@ int main(int argc, char **argv) > report_prefix_push(argv[1]); > test_migrate_unmapped_collection(); > report_prefix_pop(); > + } else if (!strcmp(argv[1], "its-migrate-unmapped-collection-tcg")) { > + under_tcg = true; > + report_prefix_push(argv[1]); > + test_migrate_unmapped_collection(); > + report_prefix_pop(); > } else if (strcmp(argv[1], "its-introspection") == 0) { > report_prefix_push(argv[1]); > test_its_introspection(); > diff --git a/arm/unittests.cfg b/arm/unittests.cfg > index 1a39428..adc1bbf 100644 > --- a/arm/unittests.cfg > +++ b/arm/unittests.cfg > @@ -205,7 +205,7 @@ extra_params = -machine gic-version=3 -append 'its-pending-migration' > groups = its migration > arch = arm64 > > -[its-migrate-unmapped-collection] > +[its-migrate-unmapped-collection-kvm] > file = gic.flat > smp = $MAX_SMP > accel = kvm > @@ -213,6 +213,14 @@ extra_params = -machine gic-version=3 -append 'its-migrate-unmapped-collection' > groups = its migration > arch = arm64 > > +[its-migrate-unmapped-collection-tcg] > +file = gic.flat > +smp = $MAX_SMP > +accel = tcg > +extra_params = -machine gic-version=3 -append 'its-migrate-unmapped-collection-tcg' > +groups = its migration > +arch = arm64 > + > # Test PSCI emulation > [psci] > file = psci.flat > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [kvm-unit-tests PATCH v2 4/4] arm64: split its-migrate-unmapped-collection into KVM and TCG variants 2021-05-26 16:33 ` Auger Eric @ 2021-06-01 16:49 ` Alex Bennée 2021-06-01 19:46 ` Andrew Jones 0 siblings, 1 reply; 17+ messages in thread From: Alex Bennée @ 2021-06-01 16:49 UTC (permalink / raw) To: Auger Eric Cc: kvm, shashi.mallela, alexandru.elisei, qemu-arm, linux-arm-kernel, kvmarm, christoffer.dall, maz Auger Eric <eric.auger@redhat.com> writes: > Hi Alex, > > On 5/25/21 7:26 PM, Alex Bennée wrote: >> When running the test in TCG we are basically running on bare metal so >> don't rely on having a particular kernel errata applied. >> >> You might wonder why we handle this with a totally new test name >> instead of adjusting the append to take an extra parameter? Well the >> run_migration shell script uses eval "$@" which unwraps the -append >> leading to any second parameter being split and leaving QEMU very >> confused and the test hanging. This seemed simpler than re-writing all >> the test running logic in something sane ;-) > > there is > lib/s390x/vm.h:bool vm_is_tcg(void) > > but I don't see any particular ID we could use to differentiate both the > KVM and the TCG mode, do you? For -cpu max we do: /* * Reset MIDR so the guest doesn't mistake our 'max' CPU type for a real * one and try to apply errata workarounds or use impdef features we * don't provide. * An IMPLEMENTER field of 0 means "reserved for software use"; * ARCHITECTURE must be 0xf indicating "v7 or later, check ID registers * to see which features are present"; * the VARIANT, PARTNUM and REVISION fields are all implementation * defined and we choose to define PARTNUM just in case guest * code needs to distinguish this QEMU CPU from other software * implementations, though this shouldn't be needed. */ t = FIELD_DP64(0, MIDR_EL1, IMPLEMENTER, 0); t = FIELD_DP64(t, MIDR_EL1, ARCHITECTURE, 0xf); t = FIELD_DP64(t, MIDR_EL1, PARTNUM, 'Q'); t = FIELD_DP64(t, MIDR_EL1, VARIANT, 0); t = FIELD_DP64(t, MIDR_EL1, REVISION, 0); cpu->midr = t; However for the default -cpu cortex-a57 we aim to look just like the real thing - only without any annoying micro-architecture bugs ;-) > > without a more elegant solution, I'll look into the suggestion made by Richard. > Reviewed-by: Eric Auger <eric.auger@redhat.com> > > Thanks > > Eric > > >> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >> Cc: Shashi Mallela <shashi.mallela@linaro.org> >> --- >> arm/gic.c | 8 +++++++- >> arm/unittests.cfg | 10 +++++++++- >> 2 files changed, 16 insertions(+), 2 deletions(-) >> >> diff --git a/arm/gic.c b/arm/gic.c >> index bef061a..0fce2a4 100644 >> --- a/arm/gic.c >> +++ b/arm/gic.c >> @@ -36,6 +36,7 @@ static struct gic *gic; >> static int acked[NR_CPUS], spurious[NR_CPUS]; >> static int irq_sender[NR_CPUS], irq_number[NR_CPUS]; >> static cpumask_t ready; >> +static bool under_tcg; >> >> static void nr_cpu_check(int nr) >> { >> @@ -834,7 +835,7 @@ static void test_migrate_unmapped_collection(void) >> goto do_migrate; >> } >> >> - if (!errata(ERRATA_UNMAPPED_COLLECTIONS)) { >> + if (!errata(ERRATA_UNMAPPED_COLLECTIONS) && !under_tcg) { >> report_skip("Skipping test, as this test hangs without the fix. " >> "Set %s=y to enable.", ERRATA_UNMAPPED_COLLECTIONS); >> test_skipped = true; >> @@ -1005,6 +1006,11 @@ int main(int argc, char **argv) >> report_prefix_push(argv[1]); >> test_migrate_unmapped_collection(); >> report_prefix_pop(); >> + } else if (!strcmp(argv[1], "its-migrate-unmapped-collection-tcg")) { >> + under_tcg = true; >> + report_prefix_push(argv[1]); >> + test_migrate_unmapped_collection(); >> + report_prefix_pop(); >> } else if (strcmp(argv[1], "its-introspection") == 0) { >> report_prefix_push(argv[1]); >> test_its_introspection(); >> diff --git a/arm/unittests.cfg b/arm/unittests.cfg >> index 1a39428..adc1bbf 100644 >> --- a/arm/unittests.cfg >> +++ b/arm/unittests.cfg >> @@ -205,7 +205,7 @@ extra_params = -machine gic-version=3 -append 'its-pending-migration' >> groups = its migration >> arch = arm64 >> >> -[its-migrate-unmapped-collection] >> +[its-migrate-unmapped-collection-kvm] >> file = gic.flat >> smp = $MAX_SMP >> accel = kvm >> @@ -213,6 +213,14 @@ extra_params = -machine gic-version=3 -append 'its-migrate-unmapped-collection' >> groups = its migration >> arch = arm64 >> >> +[its-migrate-unmapped-collection-tcg] >> +file = gic.flat >> +smp = $MAX_SMP >> +accel = tcg >> +extra_params = -machine gic-version=3 -append 'its-migrate-unmapped-collection-tcg' >> +groups = its migration >> +arch = arm64 >> + >> # Test PSCI emulation >> [psci] >> file = psci.flat >> -- Alex Bennée _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [kvm-unit-tests PATCH v2 4/4] arm64: split its-migrate-unmapped-collection into KVM and TCG variants 2021-06-01 16:49 ` Alex Bennée @ 2021-06-01 19:46 ` Andrew Jones 2021-06-01 21:50 ` Alex Bennée 0 siblings, 1 reply; 17+ messages in thread From: Andrew Jones @ 2021-06-01 19:46 UTC (permalink / raw) To: Alex Bennée Cc: Auger Eric, kvm, maz, shashi.mallela, qemu-arm, kvmarm, linux-arm-kernel On Tue, Jun 01, 2021 at 05:49:01PM +0100, Alex Bennée wrote: > > Auger Eric <eric.auger@redhat.com> writes: > > > Hi Alex, > > > > On 5/25/21 7:26 PM, Alex Bennée wrote: > >> When running the test in TCG we are basically running on bare metal so > >> don't rely on having a particular kernel errata applied. > >> > >> You might wonder why we handle this with a totally new test name > >> instead of adjusting the append to take an extra parameter? Well the > >> run_migration shell script uses eval "$@" which unwraps the -append > >> leading to any second parameter being split and leaving QEMU very > >> confused and the test hanging. This seemed simpler than re-writing all > >> the test running logic in something sane ;-) > > > > there is > > lib/s390x/vm.h:bool vm_is_tcg(void) > > > > but I don't see any particular ID we could use to differentiate both the > > KVM and the TCG mode, do you? > > For -cpu max we do: > > /* > * Reset MIDR so the guest doesn't mistake our 'max' CPU type for a real > * one and try to apply errata workarounds or use impdef features we > * don't provide. > * An IMPLEMENTER field of 0 means "reserved for software use"; > * ARCHITECTURE must be 0xf indicating "v7 or later, check ID registers > * to see which features are present"; > * the VARIANT, PARTNUM and REVISION fields are all implementation > * defined and we choose to define PARTNUM just in case guest > * code needs to distinguish this QEMU CPU from other software > * implementations, though this shouldn't be needed. > */ > t = FIELD_DP64(0, MIDR_EL1, IMPLEMENTER, 0); > t = FIELD_DP64(t, MIDR_EL1, ARCHITECTURE, 0xf); > t = FIELD_DP64(t, MIDR_EL1, PARTNUM, 'Q'); > t = FIELD_DP64(t, MIDR_EL1, VARIANT, 0); > t = FIELD_DP64(t, MIDR_EL1, REVISION, 0); > cpu->midr = t; > > However for the default -cpu cortex-a57 we aim to look just like the > real thing - only without any annoying micro-architecture bugs ;-) > > > > > without a more elegant solution, > > I'll look into the suggestion made by Richard. Where did Richard make a suggestion? And what is it? Thanks, drew > > > Reviewed-by: Eric Auger <eric.auger@redhat.com> > > > > Thanks > > > > Eric > > > > > >> > >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > >> Cc: Shashi Mallela <shashi.mallela@linaro.org> > >> --- > >> arm/gic.c | 8 +++++++- > >> arm/unittests.cfg | 10 +++++++++- > >> 2 files changed, 16 insertions(+), 2 deletions(-) > >> > >> diff --git a/arm/gic.c b/arm/gic.c > >> index bef061a..0fce2a4 100644 > >> --- a/arm/gic.c > >> +++ b/arm/gic.c > >> @@ -36,6 +36,7 @@ static struct gic *gic; > >> static int acked[NR_CPUS], spurious[NR_CPUS]; > >> static int irq_sender[NR_CPUS], irq_number[NR_CPUS]; > >> static cpumask_t ready; > >> +static bool under_tcg; > >> > >> static void nr_cpu_check(int nr) > >> { > >> @@ -834,7 +835,7 @@ static void test_migrate_unmapped_collection(void) > >> goto do_migrate; > >> } > >> > >> - if (!errata(ERRATA_UNMAPPED_COLLECTIONS)) { > >> + if (!errata(ERRATA_UNMAPPED_COLLECTIONS) && !under_tcg) { > >> report_skip("Skipping test, as this test hangs without the fix. " > >> "Set %s=y to enable.", ERRATA_UNMAPPED_COLLECTIONS); > >> test_skipped = true; > >> @@ -1005,6 +1006,11 @@ int main(int argc, char **argv) > >> report_prefix_push(argv[1]); > >> test_migrate_unmapped_collection(); > >> report_prefix_pop(); > >> + } else if (!strcmp(argv[1], "its-migrate-unmapped-collection-tcg")) { > >> + under_tcg = true; > >> + report_prefix_push(argv[1]); > >> + test_migrate_unmapped_collection(); > >> + report_prefix_pop(); > >> } else if (strcmp(argv[1], "its-introspection") == 0) { > >> report_prefix_push(argv[1]); > >> test_its_introspection(); > >> diff --git a/arm/unittests.cfg b/arm/unittests.cfg > >> index 1a39428..adc1bbf 100644 > >> --- a/arm/unittests.cfg > >> +++ b/arm/unittests.cfg > >> @@ -205,7 +205,7 @@ extra_params = -machine gic-version=3 -append 'its-pending-migration' > >> groups = its migration > >> arch = arm64 > >> > >> -[its-migrate-unmapped-collection] > >> +[its-migrate-unmapped-collection-kvm] > >> file = gic.flat > >> smp = $MAX_SMP > >> accel = kvm > >> @@ -213,6 +213,14 @@ extra_params = -machine gic-version=3 -append 'its-migrate-unmapped-collection' > >> groups = its migration > >> arch = arm64 > >> > >> +[its-migrate-unmapped-collection-tcg] > >> +file = gic.flat > >> +smp = $MAX_SMP > >> +accel = tcg > >> +extra_params = -machine gic-version=3 -append 'its-migrate-unmapped-collection-tcg' > >> +groups = its migration > >> +arch = arm64 > >> + > >> # Test PSCI emulation > >> [psci] > >> file = psci.flat > >> > > > -- > Alex Bennée > _______________________________________________ > kvmarm mailing list > kvmarm@lists.cs.columbia.edu > https://lists.cs.columbia.edu/mailman/listinfo/kvmarm _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [kvm-unit-tests PATCH v2 4/4] arm64: split its-migrate-unmapped-collection into KVM and TCG variants 2021-06-01 19:46 ` Andrew Jones @ 2021-06-01 21:50 ` Alex Bennée 0 siblings, 0 replies; 17+ messages in thread From: Alex Bennée @ 2021-06-01 21:50 UTC (permalink / raw) To: Andrew Jones Cc: Auger Eric, kvm, maz, shashi.mallela, qemu-arm, kvmarm, linux-arm-kernel Andrew Jones <drjones@redhat.com> writes: > On Tue, Jun 01, 2021 at 05:49:01PM +0100, Alex Bennée wrote: >> >> Auger Eric <eric.auger@redhat.com> writes: >> >> > Hi Alex, >> > >> > On 5/25/21 7:26 PM, Alex Bennée wrote: >> >> When running the test in TCG we are basically running on bare metal so >> >> don't rely on having a particular kernel errata applied. >> >> >> >> You might wonder why we handle this with a totally new test name >> >> instead of adjusting the append to take an extra parameter? Well the >> >> run_migration shell script uses eval "$@" which unwraps the -append >> >> leading to any second parameter being split and leaving QEMU very >> >> confused and the test hanging. This seemed simpler than re-writing all >> >> the test running logic in something sane ;-) >> > >> > there is >> > lib/s390x/vm.h:bool vm_is_tcg(void) >> > >> > but I don't see any particular ID we could use to differentiate both the >> > KVM and the TCG mode, do you? >> >> For -cpu max we do: >> >> /* >> * Reset MIDR so the guest doesn't mistake our 'max' CPU type for a real >> * one and try to apply errata workarounds or use impdef features we >> * don't provide. >> * An IMPLEMENTER field of 0 means "reserved for software use"; >> * ARCHITECTURE must be 0xf indicating "v7 or later, check ID registers >> * to see which features are present"; >> * the VARIANT, PARTNUM and REVISION fields are all implementation >> * defined and we choose to define PARTNUM just in case guest >> * code needs to distinguish this QEMU CPU from other software >> * implementations, though this shouldn't be needed. >> */ >> t = FIELD_DP64(0, MIDR_EL1, IMPLEMENTER, 0); >> t = FIELD_DP64(t, MIDR_EL1, ARCHITECTURE, 0xf); >> t = FIELD_DP64(t, MIDR_EL1, PARTNUM, 'Q'); >> t = FIELD_DP64(t, MIDR_EL1, VARIANT, 0); >> t = FIELD_DP64(t, MIDR_EL1, REVISION, 0); >> cpu->midr = t; >> >> However for the default -cpu cortex-a57 we aim to look just like the >> real thing - only without any annoying micro-architecture bugs ;-) >> >> > >> > without a more elegant solution, >> >> I'll look into the suggestion made by Richard. > > Where did Richard make a suggestion? And what is it? Sorry - I had a brain fart, I was of course referring to your ERRATA_FORCE suggestion. > > Thanks, > drew > >> >> > Reviewed-by: Eric Auger <eric.auger@redhat.com> >> > >> > Thanks >> > >> > Eric >> > >> > >> >> >> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >> >> Cc: Shashi Mallela <shashi.mallela@linaro.org> >> >> --- >> >> arm/gic.c | 8 +++++++- >> >> arm/unittests.cfg | 10 +++++++++- >> >> 2 files changed, 16 insertions(+), 2 deletions(-) >> >> >> >> diff --git a/arm/gic.c b/arm/gic.c >> >> index bef061a..0fce2a4 100644 >> >> --- a/arm/gic.c >> >> +++ b/arm/gic.c >> >> @@ -36,6 +36,7 @@ static struct gic *gic; >> >> static int acked[NR_CPUS], spurious[NR_CPUS]; >> >> static int irq_sender[NR_CPUS], irq_number[NR_CPUS]; >> >> static cpumask_t ready; >> >> +static bool under_tcg; >> >> >> >> static void nr_cpu_check(int nr) >> >> { >> >> @@ -834,7 +835,7 @@ static void test_migrate_unmapped_collection(void) >> >> goto do_migrate; >> >> } >> >> >> >> - if (!errata(ERRATA_UNMAPPED_COLLECTIONS)) { >> >> + if (!errata(ERRATA_UNMAPPED_COLLECTIONS) && !under_tcg) { >> >> report_skip("Skipping test, as this test hangs without the fix. " >> >> "Set %s=y to enable.", ERRATA_UNMAPPED_COLLECTIONS); >> >> test_skipped = true; >> >> @@ -1005,6 +1006,11 @@ int main(int argc, char **argv) >> >> report_prefix_push(argv[1]); >> >> test_migrate_unmapped_collection(); >> >> report_prefix_pop(); >> >> + } else if (!strcmp(argv[1], "its-migrate-unmapped-collection-tcg")) { >> >> + under_tcg = true; >> >> + report_prefix_push(argv[1]); >> >> + test_migrate_unmapped_collection(); >> >> + report_prefix_pop(); >> >> } else if (strcmp(argv[1], "its-introspection") == 0) { >> >> report_prefix_push(argv[1]); >> >> test_its_introspection(); >> >> diff --git a/arm/unittests.cfg b/arm/unittests.cfg >> >> index 1a39428..adc1bbf 100644 >> >> --- a/arm/unittests.cfg >> >> +++ b/arm/unittests.cfg >> >> @@ -205,7 +205,7 @@ extra_params = -machine gic-version=3 -append 'its-pending-migration' >> >> groups = its migration >> >> arch = arm64 >> >> >> >> -[its-migrate-unmapped-collection] >> >> +[its-migrate-unmapped-collection-kvm] >> >> file = gic.flat >> >> smp = $MAX_SMP >> >> accel = kvm >> >> @@ -213,6 +213,14 @@ extra_params = -machine gic-version=3 -append 'its-migrate-unmapped-collection' >> >> groups = its migration >> >> arch = arm64 >> >> >> >> +[its-migrate-unmapped-collection-tcg] >> >> +file = gic.flat >> >> +smp = $MAX_SMP >> >> +accel = tcg >> >> +extra_params = -machine gic-version=3 -append 'its-migrate-unmapped-collection-tcg' >> >> +groups = its migration >> >> +arch = arm64 >> >> + >> >> # Test PSCI emulation >> >> [psci] >> >> file = psci.flat >> >> >> >> >> -- >> Alex Bennée >> _______________________________________________ >> kvmarm mailing list >> kvmarm@lists.cs.columbia.edu >> https://lists.cs.columbia.edu/mailman/listinfo/kvmarm -- Alex Bennée _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [kvm-unit-tests PATCH v2 4/4] arm64: split its-migrate-unmapped-collection into KVM and TCG variants 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 4/4] arm64: split its-migrate-unmapped-collection into KVM and TCG variants Alex Bennée 2021-05-26 16:33 ` Auger Eric @ 2021-06-01 13:21 ` Andrew Jones 1 sibling, 0 replies; 17+ messages in thread From: Andrew Jones @ 2021-06-01 13:21 UTC (permalink / raw) To: Alex Bennée Cc: kvm, maz, shashi.mallela, qemu-arm, kvmarm, linux-arm-kernel On Tue, May 25, 2021 at 06:26:28PM +0100, Alex Bennée wrote: > When running the test in TCG we are basically running on bare metal so > don't rely on having a particular kernel errata applied. > > You might wonder why we handle this with a totally new test name > instead of adjusting the append to take an extra parameter? Well the > run_migration shell script uses eval "$@" which unwraps the -append > leading to any second parameter being split and leaving QEMU very > confused and the test hanging. This seemed simpler than re-writing all > the test running logic in something sane ;-) Yes, bash is a pain for this. I may try to get migration with more than one parameter to work at some point though. But, for generally determining if a unit test is running with tcg or with kvm, we have the QEMU_ACCEL environment variable. So you could just do getenv("QEMU_ACCEL") in the unit test. However, I wouldn't use it for this case, since the purpose is just to force errata to be ignored. We have the "ERRATA_FORCE" environment variable for that already. You can set it yourself, e.g. $ ERRATA_FORCE=y tests/its-migration or, if you plan to run all tests, then with $ ./run_tests.sh -a but that also runs nodefault tests. Maybe we should teach run_tests.sh to always set ERRATA_FORCE=y when running with TCG? Thanks, drew _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2021-07-13 20:49 UTC | newest] Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-05-25 17:26 [kvm-unit-tests PATCH v2 0/4] enable LPI and ITS for TCG Alex Bennée 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 1/4] arm64: remove invalid check from its-trigger test Alex Bennée 2021-05-26 15:06 ` Auger Eric 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 2/4] scripts/arch-run: don't use deprecated server/nowait options Alex Bennée 2021-05-26 14:23 ` Zenghui Yu 2021-05-26 15:05 ` Auger Eric 2021-06-01 12:27 ` Andrew Jones 2021-07-13 20:47 ` Andrew Jones 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 3/4] arm64: enable its-migration tests for TCG Alex Bennée 2021-05-26 15:05 ` Auger Eric 2021-06-01 13:23 ` Andrew Jones 2021-05-25 17:26 ` [kvm-unit-tests PATCH v2 4/4] arm64: split its-migrate-unmapped-collection into KVM and TCG variants Alex Bennée 2021-05-26 16:33 ` Auger Eric 2021-06-01 16:49 ` Alex Bennée 2021-06-01 19:46 ` Andrew Jones 2021-06-01 21:50 ` Alex Bennée 2021-06-01 13:21 ` Andrew Jones
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).