Message ID | 1401349547.4116.19.camel@ale.ozlabs.ibm.com |
---|---|
State | New, archived |
Headers | show |
On 29.05.14 09:45, Michael Neuling wrote: >>> +/* Values for 2nd argument to H_SET_MODE */ >>> +#define H_SET_MODE_RESOURCE_SET_CIABR 1 >>> +#define H_SET_MODE_RESOURCE_SET_DAWR 2 >>> +#define H_SET_MODE_RESOURCE_ADDR_TRANS_MODE 3 >>> +#define H_SET_MODE_RESOURCE_LE 4 >> >> 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 <mikey@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 0xC000000000004000 */ > - 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 */ > -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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_CIABR 1 > >>> +#define H_SET_MODE_RESOURCE_SET_DAWR 2 > >>> +#define H_SET_MODE_RESOURCE_ADDR_TRANS_MODE 3 > >>> +#define H_SET_MODE_RESOURCE_LE 4 > >> > >> 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 <mikey@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 0xC000000000004000 */ > > - 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 */ > > -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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_CIABR 1 >>>>> +#define H_SET_MODE_RESOURCE_SET_DAWR 2 >>>>> +#define H_SET_MODE_RESOURCE_ADDR_TRANS_MODE 3 >>>>> +#define H_SET_MODE_RESOURCE_LE 4 >>>> 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 -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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_CIABR 1 > > > +#define H_SET_MODE_RESOURCE_SET_DAWR 2 > > > +#define H_SET_MODE_RESOURCE_ADDR_TRANS_MODE 3 > > > +#define H_SET_MODE_RESOURCE_LE 4 > > > > 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 <mikey@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 0xC000000000004000 */ > - 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 -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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_CIABR 1 > > > > +#define H_SET_MODE_RESOURCE_SET_DAWR 2 > > > > +#define H_SET_MODE_RESOURCE_ADDR_TRANS_MODE 3 > > > > +#define H_SET_MODE_RESOURCE_LE 4 > > > > > > 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 <mikey@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 0xC000000000004000 */ > > - 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 -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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_CIABR 1 >>>>> +#define H_SET_MODE_RESOURCE_SET_DAWR 2 >>>>> +#define H_SET_MODE_RESOURCE_ADDR_TRANS_MODE 3 >>>>> +#define H_SET_MODE_RESOURCE_LE 4 >>>> 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 <mikey@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 0xC000000000004000 */ >>> - 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 -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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 -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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 0xC000000000004000 */ - 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 */