All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: Suraj Jitindar Singh <sjitindarsingh@gmail.com>, kvm@vger.kernel.org
Cc: pbonzini@redhat.com, rkrcmar@redhat.com, kvm-ppc@vger.kernel.org,
	lvivier@redhat.com, drjones@redhat.com
Subject: Re: [kvm-unit-tests PATCH V2 4/4] powerpc/tm: Add a test for H_CEDE while tm suspended
Date: Wed, 10 Aug 2016 13:33:34 +0200	[thread overview]
Message-ID: <283e64dd-54f0-e1c1-0b63-385b51d7dd10@redhat.com> (raw)
In-Reply-To: <1470794377-14427-4-git-send-email-sjitindarsingh@gmail.com>

On 10.08.2016 03:59, Suraj Jitindar Singh wrote:
> On Power machines if a guest cedes while a tm transaction is in the
> suspended state then the checkpointed state of the vcpu may be lost and we
> lose the cpu in the host.
> 
> Add a file for tm tests "powerpc/tm.c" and add a test to check if the fix
> has been applied to the host kernel. If this fix hasn't been applied then
> the test will never complete and the cpu will be lost. Otherwise the test
> should succeed. Since this has the ability to mess things up in the host
> mark this test as don't run by default.
> 
> Based on initial work done by: Cyril Bur <cyril.bur@au1.ibm.com>
> 
> Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
> ---
[...]
> +	/*
> +	 * Begin a transaction and guarantee we are in the suspend state
> +	 * before continuing
> +	 */
> +	asm volatile (	"1: tbegin.\n\t"
> +			"beq 2f\n\t"
> +			"tsuspend.\n\t"
> +			"2: tcheck cr0\n\t"
> +			"bf 2,1b"		:
> +						:
> +						: "cr0"
> +		     );

I now also tried to compile your patches, and looks like my standard GCC
cross-compiler does not know about these mnemonics yet:

/tmp/ccGEtgIa.s: Assembler messages:
/tmp/ccGEtgIa.s:96: Error: unrecognized opcode: `tbegin.'
/tmp/ccGEtgIa.s:98: Error: unrecognized opcode: `tsuspend.'
/tmp/ccGEtgIa.s:99: Error: unrecognized opcode: `tcheck'

That's happening with the standard cross-compiler which is shipping with
RHEL 7.2 (GCC 4.8.1 20130717). Could you please use ".long 0x..."
statements with the corresponding opcode values here instead, so that it
also compiles with such older versions of GCC?

 Thanks,
  Thomas


WARNING: multiple messages have this Message-ID (diff)
From: Thomas Huth <thuth@redhat.com>
To: Suraj Jitindar Singh <sjitindarsingh@gmail.com>, kvm@vger.kernel.org
Cc: pbonzini@redhat.com, rkrcmar@redhat.com, kvm-ppc@vger.kernel.org,
	lvivier@redhat.com, drjones@redhat.com
Subject: Re: [kvm-unit-tests PATCH V2 4/4] powerpc/tm: Add a test for H_CEDE while tm suspended
Date: Wed, 10 Aug 2016 11:33:34 +0000	[thread overview]
Message-ID: <283e64dd-54f0-e1c1-0b63-385b51d7dd10@redhat.com> (raw)
In-Reply-To: <1470794377-14427-4-git-send-email-sjitindarsingh@gmail.com>

On 10.08.2016 03:59, Suraj Jitindar Singh wrote:
> On Power machines if a guest cedes while a tm transaction is in the
> suspended state then the checkpointed state of the vcpu may be lost and we
> lose the cpu in the host.
> 
> Add a file for tm tests "powerpc/tm.c" and add a test to check if the fix
> has been applied to the host kernel. If this fix hasn't been applied then
> the test will never complete and the cpu will be lost. Otherwise the test
> should succeed. Since this has the ability to mess things up in the host
> mark this test as don't run by default.
> 
> Based on initial work done by: Cyril Bur <cyril.bur@au1.ibm.com>
> 
> Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
> ---
[...]
> +	/*
> +	 * Begin a transaction and guarantee we are in the suspend state
> +	 * before continuing
> +	 */
> +	asm volatile (	"1: tbegin.\n\t"
> +			"beq 2f\n\t"
> +			"tsuspend.\n\t"
> +			"2: tcheck cr0\n\t"
> +			"bf 2,1b"		:
> +						:
> +						: "cr0"
> +		     );

I now also tried to compile your patches, and looks like my standard GCC
cross-compiler does not know about these mnemonics yet:

/tmp/ccGEtgIa.s: Assembler messages:
/tmp/ccGEtgIa.s:96: Error: unrecognized opcode: `tbegin.'
/tmp/ccGEtgIa.s:98: Error: unrecognized opcode: `tsuspend.'
/tmp/ccGEtgIa.s:99: Error: unrecognized opcode: `tcheck'

That's happening with the standard cross-compiler which is shipping with
RHEL 7.2 (GCC 4.8.1 20130717). Could you please use ".long 0x..."
statements with the corresponding opcode values here instead, so that it
also compiles with such older versions of GCC?

 Thanks,
  Thomas


  parent reply	other threads:[~2016-08-10 18:42 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-10  1:59 [kvm-unit-tests PATCH V2 1/4] scripts/runtime: Add ability to mark test as don't run by default Suraj Jitindar Singh
2016-08-10  1:59 ` Suraj Jitindar Singh
2016-08-10  1:59 ` [kvm-unit-tests PATCH V2 2/4] lib/powerpc: Add generic decrementer exception handler Suraj Jitindar Singh
2016-08-10  1:59   ` Suraj Jitindar Singh
2016-08-10 10:38   ` Thomas Huth
2016-08-10 10:38     ` Thomas Huth
2016-08-12  6:17     ` Suraj Jitindar Singh
2016-08-12  6:17       ` Suraj Jitindar Singh
2016-08-10  1:59 ` [kvm-unit-tests PATCH V2 3/4] lib/powerpc: Add function to start secondary threads Suraj Jitindar Singh
2016-08-10  1:59   ` Suraj Jitindar Singh
2016-08-10 11:25   ` Thomas Huth
2016-08-10 11:25     ` Thomas Huth
2016-08-12  6:30     ` Suraj Jitindar Singh
2016-08-12  6:30       ` Suraj Jitindar Singh
2016-08-12 11:19       ` Thomas Huth
2016-08-12 11:19         ` Thomas Huth
2016-08-15  1:01         ` Suraj Jitindar Singh
2016-08-15  1:01           ` Suraj Jitindar Singh
2016-08-12 17:07   ` Andrew Jones
2016-08-12 17:07     ` Andrew Jones
2016-08-15  1:58     ` Suraj Jitindar Singh
2016-08-15  1:58       ` Suraj Jitindar Singh
2016-08-15  6:27       ` Andrew Jones
2016-08-15  6:27         ` Andrew Jones
2016-08-16  5:10         ` Suraj Jitindar Singh
2016-08-16  5:10           ` Suraj Jitindar Singh
2016-08-10  1:59 ` [kvm-unit-tests PATCH V2 4/4] powerpc/tm: Add a test for H_CEDE while tm suspended Suraj Jitindar Singh
2016-08-10  1:59   ` Suraj Jitindar Singh
2016-08-10  9:43   ` Thomas Huth
2016-08-10  9:43     ` Thomas Huth
2016-08-12  6:36     ` Suraj Jitindar Singh
2016-08-12  6:36       ` Suraj Jitindar Singh
2016-08-10 11:33   ` Thomas Huth [this message]
2016-08-10 11:33     ` Thomas Huth
2016-08-12  6:36     ` Suraj Jitindar Singh
2016-08-12  6:36       ` Suraj Jitindar Singh
2016-08-12 17:19   ` Andrew Jones
2016-08-12 17:19     ` Andrew Jones
2016-08-15  2:01     ` Suraj Jitindar Singh
2016-08-15  2:01       ` Suraj Jitindar Singh
2016-08-10 13:22 ` [kvm-unit-tests PATCH V2 1/4] scripts/runtime: Add ability to mark test as don't run by default Radim Krčmář
2016-08-10 13:22   ` Radim Krčmář
2016-08-12  6:13   ` Suraj Jitindar Singh
2016-08-12  6:13     ` Suraj Jitindar Singh
2016-08-12 10:00     ` Andrew Jones
2016-08-12 10:00       ` Andrew Jones
2016-08-12 12:06       ` Radim Krčmář
2016-08-12 12:06         ` Radim Krčmář
2016-08-12 12:58         ` Andrew Jones
2016-08-12 12:58           ` Andrew Jones
2016-08-14 23:41           ` Suraj Jitindar Singh
2016-08-14 23:41             ` Suraj Jitindar Singh

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=283e64dd-54f0-e1c1-0b63-385b51d7dd10@redhat.com \
    --to=thuth@redhat.com \
    --cc=drjones@redhat.com \
    --cc=kvm-ppc@vger.kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=lvivier@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=rkrcmar@redhat.com \
    --cc=sjitindarsingh@gmail.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.