Re: powerpc/pseries: Use new defines when calling h_set_mode

2014-05-30 Thread Alexander Graf


On 29.05.14 23:52, Benjamin Herrenschmidt wrote:

On Thu, 2014-05-29 at 23:27 +0200, Alexander Graf wrote:

On 29.05.14 09:45, Michael Neuling wrote:

+/* Values for 2nd argument to H_SET_MODE */
+#define H_SET_MODE_RESOURCE_SET_CIABR1
+#define H_SET_MODE_RESOURCE_SET_DAWR2
+#define H_SET_MODE_RESOURCE_ADDR_TRANS_MODE3
+#define H_SET_MODE_RESOURCE_LE4

Much better, but I think you want to make use of these in non-kvm code too,
no? At least the LE one is definitely already implemented as call :)

Sure but that's a different patch below.

Ben, how would you like to handle these 2 patches? If you give me an ack
I can just put this patch into my kvm queue. Alternatively we could both
carry a patch that adds the H_SET_MODE header bits only and whoever hits
Linus' tree first wins ;).

No biggie. Worst case it's a trivial conflict.


Well, the way the patches are split right now it won't be a conflict, 
but a build failure on either side.



Alex

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: powerpc/pseries: Use new defines when calling h_set_mode

2014-05-30 Thread Michael Ellerman
On Thu, 2014-05-29 at 17:45 +1000, Michael Neuling wrote:
   +/* Values for 2nd argument to H_SET_MODE */
   +#define H_SET_MODE_RESOURCE_SET_CIABR1
   +#define H_SET_MODE_RESOURCE_SET_DAWR2
   +#define H_SET_MODE_RESOURCE_ADDR_TRANS_MODE3
   +#define H_SET_MODE_RESOURCE_LE4
  
  Much better, but I think you want to make use of these in non-kvm code too,
  no? At least the LE one is definitely already implemented as call :)
 
 powerpc/pseries: Use new defines when calling h_set_mode
 
 Now that we define these in the KVM code, use these defines when we call
 h_set_mode.  No functional change.
 
 Signed-off-by: Michael Neuling mi...@neuling.org
 --
 This depends on the KVM h_set_mode patches.
 
 diff --git a/arch/powerpc/include/asm/plpar_wrappers.h 
 b/arch/powerpc/include/asm/plpar_wrappers.h
 index 12c32c5..67859ed 100644
 --- a/arch/powerpc/include/asm/plpar_wrappers.h
 +++ b/arch/powerpc/include/asm/plpar_wrappers.h
 @@ -273,7 +273,7 @@ static inline long plpar_set_mode(unsigned long mflags, 
 unsigned long resource,
  static inline long enable_reloc_on_exceptions(void)
  {
   /* mflags = 3: Exceptions at 0xC0004000 */
 - return plpar_set_mode(3, 3, 0, 0);
 + return plpar_set_mode(3, H_SET_MODE_RESOURCE_ADDR_TRANS_MODE, 0, 0);
  }

Which header are these coming from, and why aren't we including it? And is it
going to still build with CONFIG_KVM=n?

cheers




___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: powerpc/pseries: Use new defines when calling h_set_mode

2014-05-30 Thread Michael Neuling
On Fri, 2014-05-30 at 18:56 +1000, Michael Ellerman wrote:
 On Thu, 2014-05-29 at 17:45 +1000, Michael Neuling wrote:
+/* Values for 2nd argument to H_SET_MODE */
+#define H_SET_MODE_RESOURCE_SET_CIABR1
+#define H_SET_MODE_RESOURCE_SET_DAWR2
+#define H_SET_MODE_RESOURCE_ADDR_TRANS_MODE3
+#define H_SET_MODE_RESOURCE_LE4
   
   Much better, but I think you want to make use of these in non-kvm code 
   too,
   no? At least the LE one is definitely already implemented as call :)
  
  powerpc/pseries: Use new defines when calling h_set_mode
  
  Now that we define these in the KVM code, use these defines when we call
  h_set_mode.  No functional change.
  
  Signed-off-by: Michael Neuling mi...@neuling.org
  --
  This depends on the KVM h_set_mode patches.
  
  diff --git a/arch/powerpc/include/asm/plpar_wrappers.h 
  b/arch/powerpc/include/asm/plpar_wrappers.h
  index 12c32c5..67859ed 100644
  --- a/arch/powerpc/include/asm/plpar_wrappers.h
  +++ b/arch/powerpc/include/asm/plpar_wrappers.h
  @@ -273,7 +273,7 @@ static inline long plpar_set_mode(unsigned long mflags, 
  unsigned long resource,
   static inline long enable_reloc_on_exceptions(void)
   {
  /* mflags = 3: Exceptions at 0xC0004000 */
  -   return plpar_set_mode(3, 3, 0, 0);
  +   return plpar_set_mode(3, H_SET_MODE_RESOURCE_ADDR_TRANS_MODE, 0, 0);
   }
 
 Which header are these coming from, and why aren't we including it? And is it
 going to still build with CONFIG_KVM=n?

From include/asm/hvcall.h in the h_set_mode patch set I sent before.

And yes it compiles with CONFIG_KVM=n fine.

Mikey
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: powerpc/pseries: Use new defines when calling h_set_mode

2014-05-30 Thread Alexander Graf


On 30.05.14 11:10, Michael Neuling wrote:

On Fri, 2014-05-30 at 18:56 +1000, Michael Ellerman wrote:

On Thu, 2014-05-29 at 17:45 +1000, Michael Neuling wrote:

+/* Values for 2nd argument to H_SET_MODE */
+#define H_SET_MODE_RESOURCE_SET_CIABR1
+#define H_SET_MODE_RESOURCE_SET_DAWR2
+#define H_SET_MODE_RESOURCE_ADDR_TRANS_MODE3
+#define H_SET_MODE_RESOURCE_LE4

Much better, but I think you want to make use of these in non-kvm code too,
no? At least the LE one is definitely already implemented as call :)

powerpc/pseries: Use new defines when calling h_set_mode

Now that we define these in the KVM code, use these defines when we call
h_set_mode.  No functional change.

Signed-off-by: Michael Neuling mi...@neuling.org
--
This depends on the KVM h_set_mode patches.

diff --git a/arch/powerpc/include/asm/plpar_wrappers.h 
b/arch/powerpc/include/asm/plpar_wrappers.h
index 12c32c5..67859ed 100644
--- a/arch/powerpc/include/asm/plpar_wrappers.h
+++ b/arch/powerpc/include/asm/plpar_wrappers.h
@@ -273,7 +273,7 @@ static inline long plpar_set_mode(unsigned long mflags, 
unsigned long resource,
  static inline long enable_reloc_on_exceptions(void)
  {
/* mflags = 3: Exceptions at 0xC0004000 */
-   return plpar_set_mode(3, 3, 0, 0);
+   return plpar_set_mode(3, H_SET_MODE_RESOURCE_ADDR_TRANS_MODE, 0, 0);
  }

Which header are these coming from, and why aren't we including it? And is it
going to still build with CONFIG_KVM=n?

 From include/asm/hvcall.h in the h_set_mode patch set I sent before.

And yes it compiles with CONFIG_KVM=n fine.


Please split that patch into one that adds the definitions and one that 
changes the KVM code to use those definitions. Both Ben and me can then 
apply the definition patch and our respective tree patch.



Alex

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: powerpc/pseries: Use new defines when calling h_set_mode

2014-05-30 Thread Alexander Graf


On 30.05.14 11:44, Michael Neuling wrote:




 Which header are these coming from, and why aren't we including 
it? And is it

 going to still build with CONFIG_KVM=n?

  From include/asm/hvcall.h in the h_set_mode patch set I sent before.

 And yes it compiles with CONFIG_KVM=n fine.


 Please split that patch into one that adds the definitions and one 
that changes the KVM code to use those definitions. Both Ben and me 
can then apply the definition patch and our respective tree patch.



Why don't you just take the original h_set_mode patch and I'll repost 
this cleanup later to ben when yours is upstream.  This cleanup patch 
is not critical to anything and it avoid more churn.




That works too, but please keep in mind that my path to upstream is much 
longer than what you're used to ;).



Alex

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: powerpc/pseries: Use new defines when calling h_set_mode

2014-05-30 Thread Michael Neuling

 Which header are these coming from, and why aren't we including it? And
is it
 going to still build with CONFIG_KVM=n?

  From include/asm/hvcall.h in the h_set_mode patch set I sent before.

 And yes it compiles with CONFIG_KVM=n fine.


 Please split that patch into one that adds the definitions and one that
changes the KVM code to use those definitions. Both Ben and me can then
apply the definition patch and our respective tree patch.


Why don't you just take the original h_set_mode patch and I'll repost this
cleanup later to ben when yours is upstream.  This cleanup patch is not
critical to anything and it avoid more churn.

Mikey
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: powerpc/pseries: Use new defines when calling h_set_mode

2014-05-29 Thread Alexander Graf


On 29.05.14 09:45, Michael Neuling wrote:

+/* Values for 2nd argument to H_SET_MODE */
+#define H_SET_MODE_RESOURCE_SET_CIABR1
+#define H_SET_MODE_RESOURCE_SET_DAWR2
+#define H_SET_MODE_RESOURCE_ADDR_TRANS_MODE3
+#define H_SET_MODE_RESOURCE_LE4


Much better, but I think you want to make use of these in non-kvm code too,
no? At least the LE one is definitely already implemented as call :)

Sure but that's a different patch below.


Ben, how would you like to handle these 2 patches? If you give me an ack 
I can just put this patch into my kvm queue. Alternatively we could both 
carry a patch that adds the H_SET_MODE header bits only and whoever hits 
Linus' tree first wins ;).



Alex



Mikey


powerpc/pseries: Use new defines when calling h_set_mode

Now that we define these in the KVM code, use these defines when we call
h_set_mode.  No functional change.

Signed-off-by: Michael Neuling mi...@neuling.org
--
This depends on the KVM h_set_mode patches.

diff --git a/arch/powerpc/include/asm/plpar_wrappers.h 
b/arch/powerpc/include/asm/plpar_wrappers.h
index 12c32c5..67859ed 100644
--- a/arch/powerpc/include/asm/plpar_wrappers.h
+++ b/arch/powerpc/include/asm/plpar_wrappers.h
@@ -273,7 +273,7 @@ static inline long plpar_set_mode(unsigned long mflags, 
unsigned long resource,
  static inline long enable_reloc_on_exceptions(void)
  {
/* mflags = 3: Exceptions at 0xC0004000 */
-   return plpar_set_mode(3, 3, 0, 0);
+   return plpar_set_mode(3, H_SET_MODE_RESOURCE_ADDR_TRANS_MODE, 0, 0);
  }
  
  /*

@@ -284,7 +284,7 @@ static inline long enable_reloc_on_exceptions(void)
   * returns H_SUCCESS.
   */
  static inline long disable_reloc_on_exceptions(void) {
-   return plpar_set_mode(0, 3, 0, 0);
+   return plpar_set_mode(0, H_SET_MODE_RESOURCE_ADDR_TRANS_MODE, 0, 0);
  }
  
  /*

@@ -297,7 +297,7 @@ static inline long disable_reloc_on_exceptions(void) {
  static inline long enable_big_endian_exceptions(void)
  {
/* mflags = 0: big endian exceptions */
-   return plpar_set_mode(0, 4, 0, 0);
+   return plpar_set_mode(0, H_SET_MODE_RESOURCE_LE, 0, 0);
  }
  
  /*

@@ -310,17 +310,17 @@ static inline long enable_big_endian_exceptions(void)
  static inline long enable_little_endian_exceptions(void)
  {
/* mflags = 1: little endian exceptions */
-   return plpar_set_mode(1, 4, 0, 0);
+   return plpar_set_mode(1, H_SET_MODE_RESOURCE_LE, 0, 0);
  }
  
  static inline long plapr_set_ciabr(unsigned long ciabr)

  {
-   return plpar_set_mode(0, 1, ciabr, 0);
+   return plpar_set_mode(0, H_SET_MODE_RESOURCE_SET_CIABR, ciabr, 0);
  }
  
  static inline long plapr_set_watchpoint0(unsigned long dawr0, unsigned long dawrx0)

  {
-   return plpar_set_mode(0, 2, dawr0, dawrx0);
+   return plpar_set_mode(0, H_SET_MODE_RESOURCE_SET_DAWR, dawr0, dawrx0);
  }
  
  #endif /* _ASM_POWERPC_PLPAR_WRAPPERS_H */




___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: powerpc/pseries: Use new defines when calling h_set_mode

2014-05-29 Thread Benjamin Herrenschmidt
On Thu, 2014-05-29 at 23:27 +0200, Alexander Graf wrote:
 On 29.05.14 09:45, Michael Neuling wrote:
  +/* Values for 2nd argument to H_SET_MODE */
  +#define H_SET_MODE_RESOURCE_SET_CIABR1
  +#define H_SET_MODE_RESOURCE_SET_DAWR2
  +#define H_SET_MODE_RESOURCE_ADDR_TRANS_MODE3
  +#define H_SET_MODE_RESOURCE_LE4
 
  Much better, but I think you want to make use of these in non-kvm code too,
  no? At least the LE one is definitely already implemented as call :)
  Sure but that's a different patch below.
 
 Ben, how would you like to handle these 2 patches? If you give me an ack 
 I can just put this patch into my kvm queue. Alternatively we could both 
 carry a patch that adds the H_SET_MODE header bits only and whoever hits 
 Linus' tree first wins ;).

No biggie. Worst case it's a trivial conflict.

Cheers,
Ben.

 
 Alex
 
 
  Mikey
 
 
  powerpc/pseries: Use new defines when calling h_set_mode
 
  Now that we define these in the KVM code, use these defines when we call
  h_set_mode.  No functional change.
 
  Signed-off-by: Michael Neuling mi...@neuling.org
  --
  This depends on the KVM h_set_mode patches.
 
  diff --git a/arch/powerpc/include/asm/plpar_wrappers.h 
  b/arch/powerpc/include/asm/plpar_wrappers.h
  index 12c32c5..67859ed 100644
  --- a/arch/powerpc/include/asm/plpar_wrappers.h
  +++ b/arch/powerpc/include/asm/plpar_wrappers.h
  @@ -273,7 +273,7 @@ static inline long plpar_set_mode(unsigned long mflags, 
  unsigned long resource,
static inline long enable_reloc_on_exceptions(void)
{
  /* mflags = 3: Exceptions at 0xC0004000 */
  -   return plpar_set_mode(3, 3, 0, 0);
  +   return plpar_set_mode(3, H_SET_MODE_RESOURCE_ADDR_TRANS_MODE, 0, 0);
}

/*
  @@ -284,7 +284,7 @@ static inline long enable_reloc_on_exceptions(void)
 * returns H_SUCCESS.
 */
static inline long disable_reloc_on_exceptions(void) {
  -   return plpar_set_mode(0, 3, 0, 0);
  +   return plpar_set_mode(0, H_SET_MODE_RESOURCE_ADDR_TRANS_MODE, 0, 0);
}

/*
  @@ -297,7 +297,7 @@ static inline long disable_reloc_on_exceptions(void) {
static inline long enable_big_endian_exceptions(void)
{
  /* mflags = 0: big endian exceptions */
  -   return plpar_set_mode(0, 4, 0, 0);
  +   return plpar_set_mode(0, H_SET_MODE_RESOURCE_LE, 0, 0);
}

/*
  @@ -310,17 +310,17 @@ static inline long enable_big_endian_exceptions(void)
static inline long enable_little_endian_exceptions(void)
{
  /* mflags = 1: little endian exceptions */
  -   return plpar_set_mode(1, 4, 0, 0);
  +   return plpar_set_mode(1, H_SET_MODE_RESOURCE_LE, 0, 0);
}

static inline long plapr_set_ciabr(unsigned long ciabr)
{
  -   return plpar_set_mode(0, 1, ciabr, 0);
  +   return plpar_set_mode(0, H_SET_MODE_RESOURCE_SET_CIABR, ciabr, 0);
}

static inline long plapr_set_watchpoint0(unsigned long dawr0, unsigned 
  long dawrx0)
{
  -   return plpar_set_mode(0, 2, dawr0, dawrx0);
  +   return plpar_set_mode(0, H_SET_MODE_RESOURCE_SET_DAWR, dawr0, dawrx0);
}

#endif /* _ASM_POWERPC_PLPAR_WRAPPERS_H */
 


___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev