All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Jones <drjones@redhat.com>
To: Christoffer Dall <christoffer.dall@linaro.org>
Cc: pbonzini@redhat.com, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org
Subject: Re: [kvm-unit-tests PATCH 00/18] arm/arm64: add smp support
Date: Thu, 26 Feb 2015 14:50:38 +0100	[thread overview]
Message-ID: <20150226135037.GF3023@hawk.usersys.redhat.com> (raw)
In-Reply-To: <20150226113402.GA3143@cbox>

On Thu, Feb 26, 2015 at 12:34:02PM +0100, Christoffer Dall wrote:
> On Sun, Feb 01, 2015 at 07:34:28PM +0100, Andrew Jones wrote:
> > This series extends the kvm-unit-tests/arm[64] framework to support smp.
> > A break down of the patches is as follows
> > 
> > 01-02: prepare general framework for smp use
> > 03-06: arm/arm64 fixups not 100% related to this series,
> >        but need to post some time...
> > 07-09: add thread_info (for per-thread data) and suck some global
> >        data into it
> > 10-11: add cpumask support (for per-cpu data) and suck some more
> >        global data in
> >    12: add arm64 simple spinlock implementation
> > 13-14: add some PSCI support
> > 15-16: further prep for smp_boot_secondary
> >    17: finally add smp_boot_secondary
> >    18: as usual, add a selftest to make sure it all works
> > 
> > These patches are also available here:
> > https://github.com/rhdrjones/kvm-unit-tests/tree/arm/smp
> > 
> I've tested these patches on Juno and they seem to run fine, however,
> since we don't support big.LITTLE yet, you have to run them under
> 'taskset <mask>', but the config script uses $(getconf
> _NPROCESSORS_CONF), which returns 6, and QEMU fails.  The interesting

Should I try to read the number of host cpus from some other source?
If you know something I can read that also works on big.LITTLE, then
I can change it now.

> bit is that the unit-tests still report 'PASS' - not sure why.

Ah, this is due to the weird way qemu's debugexit device sets its exit
code

hw/misc/debugexit.c:debug_exit_write()
{
  exit((val << 1) | 1);
}

To be consistent with that we made chr-testdev do the same thing (see
backends/testdev.c:testdev_eat_packet():case 'q'). Now, the
kvm-unit-tests run_tests.sh script knows about that, so it has

  eval $cmdline >> test.log
  if [ $? -le 1 ]; then
     echo -e "\e[32mPASS\e[0m $1"
  else
     echo -e "\e[31mFAIL\e[0m $1"
  fi

Yes, this sucks, as we can't tell the difference between qemu failing
to run the test, and exiting with 1 vs. the test running, passing -
exiting with (0 << 1) | 1. It's too bad debugexit didn't set a higher
bit (like 5 or 6) to flag a "debug exit". Maybe it's not too late to
change it? Paolo?

> 
> I'm fine with merging these and fixing anything up as we go along - this
> is a test harness after all and I don't have time for an in-depth review
> of these patches right now, sorry.

Thanks!
drew

  reply	other threads:[~2015-02-26 13:44 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-01 18:34 [kvm-unit-tests PATCH 00/18] arm/arm64: add smp support Andrew Jones
2015-02-01 18:34 ` [PATCH 01/18] x86: expose spin_lock/unlock to lib code Andrew Jones
2015-02-01 18:34 ` [PATCH 02/18] lib/report: guard access to counters Andrew Jones
2015-02-01 18:34 ` [PATCH 03/18] arm: fixups: add barriers, actually set MAIR Andrew Jones
2015-02-26 11:37   ` Christoffer Dall
2015-02-01 18:34 ` [PATCH 04/18] arm64: fixup: use id_aa64mmfr0_el1 to set tcr Andrew Jones
2015-02-01 18:34 ` [PATCH 05/18] arm/arm64: processor.[ch] cleanups Andrew Jones
2015-02-01 18:34 ` [PATCH 06/18] arm/arm64: get rid of get_sp() Andrew Jones
2015-02-01 18:34 ` [PATCH 07/18] arm/arm64: introduce thread_info Andrew Jones
2015-02-01 18:34 ` [PATCH 08/18] arm/arm64: add per thread user_mode flag Andrew Jones
2015-02-01 18:34 ` [PATCH 09/18] arm/arm64: maintain per thread exception handlers Andrew Jones
2015-02-01 18:34 ` [PATCH 10/18] arm/arm64: add simple cpumask API Andrew Jones
2015-02-01 18:34 ` [PATCH 11/18] arm/arm64: make mmu_on per cpu Andrew Jones
2015-02-01 18:34 ` [PATCH 12/18] arm64: implement spinlocks Andrew Jones
2015-02-01 18:34 ` [PATCH 13/18] arm/arm64: import include/uapi/linux/psci.h Andrew Jones
2015-02-01 18:34 ` [PATCH 14/18] arm/arm64: add some PSCI API Andrew Jones
2015-02-01 18:34 ` [PATCH 15/18] arm/arm64: add cpu_relax() and friends Andrew Jones
2015-02-01 18:34 ` [PATCH 16/18] arm: clarify comment about exception stack use Andrew Jones
2015-02-01 18:34 ` [PATCH 17/18] arm/arm64: add smp_boot_secondary Andrew Jones
2015-02-02 10:23   ` [PATCH v2 " Andrew Jones
2015-02-02 12:28     ` Andrew Jones
2015-02-02 12:29   ` [PATCH v3 " Andrew Jones
2015-02-02 14:35     ` Andrew Jones
2015-02-02 14:35   ` [PATCH v4 " Andrew Jones
2015-02-01 18:34 ` [PATCH 18/18] arm/arm64: Add smp selftest Andrew Jones
2015-02-26 11:34 ` [kvm-unit-tests PATCH 00/18] arm/arm64: add smp support Christoffer Dall
2015-02-26 13:50   ` Andrew Jones [this message]
2015-02-26 13:54     ` Paolo Bonzini
2015-03-02 16:22     ` Christoffer Dall
2015-02-27  0:46 ` Marcelo Tosatti

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=20150226135037.GF3023@hawk.usersys.redhat.com \
    --to=drjones@redhat.com \
    --cc=christoffer.dall@linaro.org \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=pbonzini@redhat.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.